現象
Microsoft Exchange Server 2019、2016、または 2013 の 2021 年 4 月のセキュリティ更新プログラム(またはそれ以降の更新プログラム)をインストールすると、アプリケーションが次のいずれかのエラー メッセージを返すようになります。
メッセージ 1
この構文は、この実行空間ではサポートされていません。 これは、実行空間が非言語モードであることが原因である可能性があります。
メッセージ 2
例外が発生しました System.Management.Automation.RemoteException: この構文は、この実行空間ではサポートされていません。 これは、実行空間が非言語モードであることが原因である可能性があります。 at System.Management.Automation.Runspaces.AsyncResult.EndInvoke() at System.Management.Automation.PowerShell.CoreInvokeRemoteHelper[TInput,TOutput](PSDataCollection`1 input, PSDataCollection`1 output,
この状況では、アプリケーションは、Exchange Server を実行しているサーバーからリモート PowerShell を介して情報を取得しません。 場合によっては、アプリケーションが応答しなくなることがあります。
原因
Exchange ベースのサーバー上の Exchange 管理コンソール エンドポイントが、FullLanguage モードから NoLanguage モードに変更されました。 リモート PowerShell の FullLanguage モード機能を使用するアプリケーションで、リモート PowerShell 呼び出しを処理するときに、「現象」セクションで説明されているエラーが発生するようになりました。
解決方法
この問題を解決するには、アプリケーション開発者は、Exchange シェルのより制限的な新しい状態で動作するようにアプリケーションを更新する必要があります。
さらに、次の解決策のいずれかを使用することをお勧めします。
-
.invoke() を使用するすべての呼び出しが、.AddScript() ではなく .AddCommand() も使用していることを確認してください。 詳細については、about_Language_Modes - PowerShell | Microsoft Docs を確認してください。
-
.invoke() を使用する代わりに、インポートされたセッションを実装します。 詳細については、GitHub の David-Barrett-MS/ExchangePowerShellAutomationSample を参照してください。 この Web ページでは、Exchange Remote PowerShell に接続してプログラムでコマンドレットを実行する方法を示すサンプル アプリケーションを提供しています。
詳細情報
2021 年 4 月のセキュリティ更新プログラムの詳細については、次の Exchange チームのブログ記事を参照してください。