WinRM+Exchange Onlineによる接続時のトラブル

前回の投稿でExchange OnlineをPowerShellから管理する方法として、
WinRMを利用してExchange Onlineに接続し、PowerShellコマンドレットを実行する方法があることを紹介しました。

先日のトレーニングの中で、実際にこのパターンを試していただく実習があったのですが、
今まで見たこともないトラブルがあったので、備忘録がわりに記しておきます。

■ ■ ■

WinRMを利用してExchange Onlineに接続するときには、以下のコマンドレットを実行する必要があります。

Set-ExecutionPolicy RemoteSigned
$cred = Get-Credential
Connect-MsolService -Credential $cred

$Session=New-PSSession -ConfigurationName Microsoft.Exchange ‘
-ConnectionUri https://ps.outlook.com/powershell/ -Credential $cred ‘
-Authentication Basic –AllowRedirection

ところが、最後の行を実行すると、以下のエラーが表示されました。

Connecting to remote server failed with the following error message :
The WS-Management service cannot process the request.
This user is allowed a maximum number of 3 concurrent shells, which has been exceeded.
Close existing shells or raise the quota for this user.
For more information, see the about_Remote_Troubleshooting Help topic.
+ CategoryInfo : OpenError: (System.Manageme….RemoteRunspace:RemoteRunspace) [],
PSRemotingTransportException + FullyQualifiedErrorId : PSSessionOpenFailed

エラーメッセージはps.outlook.comからsin*****.outlook.comへのリダイレクトが行われた後で
表示されたので、接続そのものに問題があるわけではないことが確認できました。

そこで、セッションが問題があるのでは?と思い、一度PowerShellウィンドウを閉じて、
もう一度ウィンドウを開きなおし、同じ操作を繰り返したら、今度はうまく接続できるようになりました。

セッションに問題があるときには、一度セッションをクローズし、
もう一度接続しなおせば良いってことですね。

それにしても、どうしてこのようなことが起こるのか?
追加情報がありましたら、改めてお伝えしたいと思います。