Basic 認証 - セキュリティ & コンプライアンス PowerShell に接続する

注意

この記事の接続手順は、基本認証 に関するセキュリティ上の懸念から、2022 年 10 月 1 日から非推奨になります 。 代わりに、Exchange Online PowerShell V2 モジュール (EXO V2 モジュール) を使用して、Security & Compliance PowerShell に接続する必要があります。 手順については、「 セキュリティ & コンプライアンス PowerShell への接続」を参照してください。

Security & Compliance PowerShell を使用すると、Microsoft 365 Defender ポータルとMicrosoft Purview コンプライアンス ポータル設定をコマンド ラインから管理できます。 ローカル コンピューターでWindows PowerShellを使用して、Security & Compliance PowerShell へのリモート PowerShell セッションを作成します。 これは、Microsoft 365 資格情報を入力し、必要な接続設定を指定し、Security & Compliance PowerShell コマンドレットをローカル Windows PowerShell セッションにインポートして、それらを使用できるようにする簡単な 3 段階のプロセスです。

注意

次の場合、この記事の手順は機能しません。

  • アカウントでは、多要素認証 (MFA) が使用されます。

  • 組織ではフェデレーション認証が使用されます。

  • Azure Active Directory 条件付きアクセス ポリシーの場所条件により、信頼できる IP へのアクセスが制限されます。

これらのシナリオでは、Exchange Online PowerShell V2 モジュール (EXO V2 モジュール) をダウンロードして使用して、Security & Compliance PowerShell に接続する必要があります。 手順については、「 EXO V2 モジュールを使用してセキュリティ & コンプライアンス PowerShell に接続する」を参照してください。

Microsoft 365 Defender ポータルとMicrosoft Purview コンプライアンス ポータルの一部の機能 (メールボックスのアーカイブなど) は、Exchange Onlineの既存の機能にリンクします。 これらの機能で PowerShell を使用するには、セキュリティ&コンプライアンス PowerShell ではなく、Exchange Online PowerShell に接続する必要があります。 手順については、「Exchange Online PowerShell に接続する」を参照してください。

はじめに把握しておくべき情報

  • 予想所要時間 : 5 分

  • 接続後、アクセスできるまたはアクセスできないコマンドレットとパラメーターは、役割ベースのアクセス制御 (RBAC) によって制御されます。 詳細については、「Microsoft 365 Defender ポータルのアクセス許可」 および 「Microsoft Purview コンプライアンス ポータルのアクセス許可」 を参照してください。

  • 次の Windows のバージョンを使用できます。

    • Windows 10
    • Windows 8.1
    • Windows Server 2019
    • Windows Server 2016
    • Windows Server 2012 または Windows Server 2012 R2
    • Windows 7 Service Pack 1 (SP1)*
    • Windows Server 2008 R2 SP1*

    * このバージョンの Windows はサポートが終了しており、Azure 仮想マシンでのみサポートされます。 このバージョンの Windows を使用するには、Microsoft .NET Framework 4.5 以降をインストールしてから、Windows Management Framework の更新されたバージョン (3.0、4.0、5.1 のいずれか 1 つ) をインストールする必要があります。 詳細については、「.NET FrameworkWindows Management Framework 3.0Windows Management Framework 4.0、および Windows Management Framework 5.1をインストールする」を参照してください。

  • スクリプトを実行するように Windows PowerShell を構成する必要があります。既定では、そのように構成されていないため、接続を試行すると、次に示すエラーが発生します。

    このシステムでスクリプトの実行が無効になっているため、ファイルを読み込めません。 ファイルの署名に使用する有効な証明書を指定します。

    インターネットからダウンロードしたすべての PowerShell スクリプトが信頼された発行元によって署名されていることを要求するには、管理者特権の Windows PowerShell ウィンドウ ([管理者として実行] を選択したときに開く Windows PowerShell ウィンドウ) で次のコマンドを実行します。

    Set-ExecutionPolicy RemoteSigned
    

    実行ポリシーの詳細については、「実行ポリシーについて」を参照してください。

  • WinRM は基本認証を許可する必要があります (既定で有効になっています)。ユーザー名とパスワードの組み合わせは送信しませんが、クライアント側の WinRM 実装は OAuth をサポートしていないため、セッションの OAuth トークンを転送するには基本認証ヘッダーが必要です。

    メモ WinRM を一時的に有効にして、次のコマンドを実行する必要があります。 次のコマンドを実行して有効にできますwinrm quickconfig

    WinRM で基本認証が有効になっていることを確認するには、コマンド プロンプトで(Windows PowerShell ではなく)、次のコマンドを実行します:

    winrm get winrm/config/client/auth
    

    Basic = true の値が表示されない場合は、コマンド プロンプトで(Windows PowerShell ではなく)、次のコマンドを実行して WinRM の基本認証を有効にする必要があります:

    winrm set winrm/config/client/auth @{Basic="true"}
    

    : Windows PowerShell でコマンドを実行する場合は、コマンドのこの部分を引用符で囲みます:'@{Basic="true"}'。  

    WinRM で基本認証が無効になっている状態で接続しようとすると、次のエラーが表示されます。

    WinRM クライアントは要求を処理できません。 現在、基本認証はクライアント構成で無効になっています。 クライアント構成を変更して、要求を再試行してください。

セキュリティ/コンプライアンス PowerShell に接続する

  1. ローカル コンピューターで、Windows PowerShell を開き、次のコマンドを実行します。

    $UserCredential = Get-Credential
    

    [Windows PowerShell 資格情報の要求] ダイアログ ボックスで、職場または学校のアカウントとパスワードを入力してから [OK] をクリックします。

  2. 次のコマンドを実行します。

    $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.compliance.protection.outlook.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
    

    :

    • Office 365 Germany には、次の ConnectionUri 値:https://ps.compliance.protection.outlook.de/powershell-liveid/を使用してください。
    • Microsoft 365 GCC High の場合は、 ConnectionUri 値を使用します https://ps.compliance.protection.office365.us/powershell-liveid/
    • Microsoft 365 DoD の場合は、 ConnectionUri 値を使用します https://l5.ps.compliance.protection.office365.us/powershell-liveid/
  3. 次のコマンドを実行します。

    Import-PSSession $Session -DisableNameChecking
    

    アクティブなExchange Online PowerShell 接続と同じウィンドウで Security & Compliance PowerShell に接続する場合は、コマンドレット名の競合を防ぐために、プレフィックス パラメーターと値 (たとえば、-Prefix "CC") をこのコマンドの末尾に追加する必要があります (両方の環境で同じ名前のコマンドレットが共有されます)。

注意

完了した時点でリモート PowerShell セッションを切断してください。セッションを切断せずに Windows PowerShell ウィンドウを閉じると、使用可能なリモート PowerShell セッションがすべて消費される可能性があり、セッションの有効期限が切れるまで待つ必要があります。リモート PowerShell セッションを切断するには、次のコマンドを実行します。

Remove-PSSession $Session

正常な動作を確認する方法

手順 3 の後、セキュリティ & コンプライアンス PowerShell コマンドレットは、進行状況バーによって追跡されるようにローカル Windows PowerShell セッションにインポートされます。 何もエラーが表示されなければ、正常に接続されています。 簡単にテストするには、Get-Ret-RentionCompliancePolicy などの、セキュリティ/コンプライアンス PowerShell コマンドレットを実行して、結果を確認します。

エラーが表示された場合は、次の要件を確認します。

  • よく起きる問題がパスワードの入力ミスです。もう一度 3 つのステップを実行します。特に、ステップ 1 ではユーザー名とパスワードを慎重に入力します。

  • サービス拒否 (DoS) 攻撃を防ぐため、セキュリティ/コンプライアンス PowerShell に対して開かれるリモート PowerShell 接続は 5 つに制限されます。

  • ローカル コンピューターと Microsoft 365 の間に TCP ポート 80 トラフィックを開く必要があります。このポートは多くの場合開いているはずですが、組織で厳格なインターネット アクセス ポリシーが使用されている場合は、念のために確認する必要があります。

  • 接続要求中にクライアント IP アドレスが変更された場合 、New-PSSession コマンド (手順 2) は接続に失敗することがあります。 これは、組織が複数の IP アドレスを含むソース ネットワーク アドレス変換 (SNAT) プールを使用している場合に発生する可能性があります。 この接続エラーは次のようになります。

    ShellId <ID> を使用した Windows リモート シェルの要求が失敗しました。サーバーにシェルが見つかりませんでした。 考えられる原因としては、指定された ShellId が正しくないか、サーバーにシェルが存在しなくなったことが考えられます。 正しい ShellId を提供するか、新しいシェルを作成して操作をやり直してください。

    この問題を解決するには、単一の IP アドレスを含む SNAT プールを使用するか、セキュリティ/コンプライアンス PowerShell エンドポイントへの接続に特定の IP アドレスを強制的に使用します。

関連項目

この記事で使用するコマンドレットは、Windows PowerShell コマンドレットです。これらのコマンドレットの詳細については、次の記事を参照してください。