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ウィンドウを閉じて、
もう一度ウィンドウを開きなおし、同じ操作を繰り返したら、今度はうまく接続できるようになりました。

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

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

コメント

  1. arumumu より:

    すでに解決済みかもしれませんが、上記のエラーは接続している PSSession が最大数の3に達しているために、それ以上接続できない状態になっていることが原因で発生するエラーだと思います。
    一度 Get-PSSession で接続されているセッションを確認し、Remove-PSSession で不要なセッションを削除することで対応できます。

  2. genkiw より:

    Exchange Onlineに接続後、Get-ThrottlingPolicy | select *concurrencyなどで見ると、サービスディスクリプションには掲載されていない最大同時接続数が表示されます。PowerShellはユーザーで3、テナントで9に設定されているようです。

    • sophiakunii より:

      @genkiwさん、ありがとうございます!
      ユーザーの最大同時接続とテナントの最大同時接続がそれぞれ定義されているのは面白いですね。

コメントをどうぞ

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください