次の方法で共有


Microsoft 365 の RPS の InvalidShellID エラー

元の KB 番号: 3090768

現象

スクリプトが長時間実行されている場合、または Microsoft 365 のリモート PowerShell (RPS) で管理コマンドレットを実行すると、次のようなエラー メッセージが断続的に表示されます。

リモート コマンドのデータ処理が失敗し、次のエラー メッセージが表示されました。
[ClientAccessServer=Server1,BackEndServer=Server2,RequestId=<>,TimeStamp=DateTime] [FailureCategory=WSMan-InvalidShellID] ShellId <> を持つ Windows リモート シェルの要求は、サーバー上にシェルが見つからなかったため失敗しました。 考えられる原因としては、指定された ShellId が正しくないか、サーバーにシェルが存在しなくなったことが考えられます。 正しい ShellId を提供するか、新しいシェルを作成して操作をやり直してください。 詳細については、「about_Remote_Troubleshooting ヘルプ」トピックを参照してください。

+ CategoryInfo : OperationStopped: (mail.contoso.com:String) [], PSRemotingTransportException

+ 完全修飾ErrorId : JobFailure

+ PSComputerName : mail。 contoso.com

原因

この問題は、以下の条件に該当する場合に発生します。

  • 複数リージョン環境でメールが有効なユーザー (MEU) に関連付けられているアカウントを使用しています。
  • Connectionsは、ユーザーのリージョンとは異なるリージョンを介してルーティングされます。

このエラーは、アップグレードするバックエンド サーバーがローテーションから削除されたときに発生する可能性があります。 さらに、この問題はまれに発生します。

解決方法

シナリオ 1 - スクリプトの実行時間が長い場合、または自動化されたワークフローが停止した場合

このシナリオでは、実行中にサーバーがローテーションから削除された場合に、スクリプトを自動的に再接続するように変更する必要がある場合があります。 これを行うには、スクリプトの適切なエラー処理を使用してエラーをキャッチします。 次に、プロセスを再接続して再起動します。

シナリオ 2 - RPS で管理コマンドレットを実行する場合

このシナリオでは、コマンドレットを再実行する必要があります。 別のバックエンド サーバーに接続し、コマンドレットを正常に実行する必要があります。

注:

複数リージョンExchange Online展開では、メールボックスが有効な管理アカウントを使用することをお勧めします。 これにより、RPS 接続が現在の環境を介して行われます。 管理アカウントが MEU に関連付けられている場合、接続は他のリージョンを経由してルーティングされる可能性があります。 この動作により、接続が遅れたり、エラーがトリガーされたりする可能性があります。

Microsoft では、この問題を調査するために Fiddler トレースが必要になる場合があります。 これが必要な場合、サポート エンジニアはサポート診断パッケージを送信して、この情報を安全にキャプチャしてアップロードします。 Fiddler トレースでこの情報をキャプチャするには、パラメーターが IEConfig に設定された PowerShell セッション オプションをProxyAccessType追加する必要があります。 例:

Import-PSSession (New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://mail.contoso.com/powershell -Credential (Get-Credential) -Authentication Basic -AllowRedirection -SessionOption (New-PSSessionOption -ProxyAccessType IEConfig))

詳細

エラー処理の詳細については、「 Weekend Scripter: Using Try, Catch, Finally block for PowerShell error handling」を参照してください。