今回は、PowershellでConnect-IPPSSessionを実行しセキュリティコンプライアンスセンターに接続する際に以下のエラーが発生した事例についてご紹介したいと思います。
エラー内容
New-PSSession : [ps.compliance.protection.outlook.com] リモート サーバー ps.compliance.protection.outlook.com への接続に失敗し、次のエラー メッセ
ージが返されました: WinRM は処理を完了できません。 指定したコンピューター名が有効であること、コンピューターにネットワーク経由でアクセスできること、および WinRM サービスのファイアウォールの例外が有効になっていてこのコンピュー
ターからアクセスできることを確認してください。既定では、パブリック プロファイルの WinRM ファイウォールの例外によって、同一のローカル サブネット内のリモートコンピューターへのアクセスは制限されます。
"リモート サーバー <URL> への接続に失敗" のエラーは、Exchange Online PowerShell モジュールのバージョンが "3.1.0" の環境では発生しますが、バージョン "3.2.0"以上 では再現しないことを確認しています。
バージョン "3.1.0" と "3.2.0" の違いとしては、"3.1.0" ではセキュリティ/コンプライアンスへ接続を行う際に RPS (Remote Powershell Session) プロトコルを利用しており、"3.2.0" 以降のバージョンでは REST プロトコルを使用しています。
RPS プロトコルに関しては廃止されており、2023 年 7 月 15 日以降順次、RPS プロトコルの無効化が展開されている状況です。
そのため、REST プロトコルによる接続が必要となることから、本件の回避策としては Exchange Online PowerShell モジュールのバージョンアップすることで回避できます。
以下の手順で最新のモジュールをインストールし、Connect-IPPSSession コマンドレットにてセキュリティ/コンプライアンスに接続することが可能となるかお試しください。
最新の V3 モジュールを利用する方法
1. 現在インストールされているモジュールのバージョンを確認する
[構文]
Import-Module ExchangeOnlineManagement; Get-Module ExchangeOnlineManagement
[実行結果例]
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Script 3.1.0 ExchangeOnlineManagement {Get-ConnectionInformation, Get-EXOCasMailbox, Get-EXOMail...
Versionの値に現在のモジュールのバージョンが表示されます。
2. 管理者権限にて PowerShell を起動し、ExchangeOnline Management のアンインストールを実施します。
<実行コマンド>
Uninstall-Module -Name ExchangeOnlineManagement
3. 最新のモジュールをインストール、インポートします。
<実行コマンド 1>
Install-Module -Name ExchangeOnlineManagement
<実行コマンド 2>
Import-Module ExchangeOnlineManagement
上記手順を実行後、再度、 "現在インストールされているモジュールのバージョンを確認する" を実行し、Version が "3.2.0" 以上になっていることをご確認ください。