Exchange Online Protection の PowerShell への接続

Exchange Online PowerShell V2 モジュール (EXO V2 モジュールと省略されています) は、先進認証を使用し、Microsoft 365 のすべての Exchange 関連 PowerShell 環境 (Exchange Online PowerShell、セキュリティ/コンプライアンス PowerShell、およびスタンドアロン型 Exchange Online Protection (EOP) PowerShell) に接続するために多要素認証 (MFA) と連携します。 EXO V2モジュールの詳細については、「Exchange Online PowerShell V2 モジュールについて」をご覧ください。

この記事では、MFA を使用するかどうかにかかわらず、EXO V2 モジュールを使用して、Exchange Online Protection PowerShell に接続する方法について説明します。

最終的に廃止される、以前の、安全性の低いリモート PowerShell の接続手順を使用するには、「基本認証 - Exchange Online Protection PowerShell に接続する」を参照してください。

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

  • この記事の手順は、Exchange Online メールボックスを持たない Microsoft 365 組織のみを対象としています。 たとえば、オンプレミスのメール環境を保護するためのスタンドアロンの EOP サブスクリプションがあります。 Microsoft 365 サブスクリプションに Exchange Online メールボックスが含まれている場合は、EOP PowerShell に接続できません。代わりに、Exchange Online PowerShell に接続します

    組織がオンプレミスの Exchange を使用していて、EOP のサービス ライセンスの Exchange Enterprise CAL を所有している場合は、EOP PowerShell 接続の手順は Exchange Online PowerShell と同じです。 この記事の手順の代わりに、「Exchange Online PowerShell への接続」の Exchange Online PowerShell 接続手順を使用してください。

  • EXO V2 モジュールをインストールして使用するための要件は、「EXO V2 モジュールをインストールして維持する」に記載されています。 記事の残りの手順では、モジュールがすでにインストールされていることを前提としています。

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

ヒント

問題が発生する場合 Exchange Online Protection フォーラムでサポートをご依頼ください。

MFA と先進認証を使用して Exchange Online Protection PowerShell に接続する

ご利用のアカウントで多要素認証を使用している場合は、このセクションの手順を使用します。 それ以外の場合は、「先進認証を使用して Exchange Online Protection PowerShell に接続する」セクションにスキップします。

  1. Windows PowerShell ウィンドウで、次のコマンドを実行して EXO V2 モジュールを読み込みます。

    Import-Module ExchangeOnlineManagement
    

    : すでに、EXO V2 モジュールをインストール している場合は、前のコマンドは表示のとおり機能します。

  2. 実行する必要があるコマンドでは、次の構文を使用します。

    Connect-IPPSSession -UserPrincipalName <UPN> [-ConnectionUri <URL>] [-AzureADAuthorizationEndPointUri <URL>] [-PSSessionOption $ProxyOptions]
    
    • <UPN> は、ユーザー プリンシパル名の形式 (navin@contoso.comなど) のアカウントです。
    • 必須の ConnectionUri および AzureADAuthorizationEndPointUri の値は、Microsoft 365 組織の種類によって異なります。 詳細については、Connect-IPPSSession のパラメーターの説明をご覧ください。
    • プロキシ サーバーを使用している場合は、最初に次のコマンドを実行します。$ProxyOptions = New-PSSessionOption -ProxyAccessType <Value>: このコマンドの <Value> は、IEConfigWinHttpConfigAutoDetect のいずれかです。 次に、値 $ProxyOptions を指定して、PSSessionOption パラメーターを使用します。 詳細については、「New-PSSessionOption」を参照してください。

    この例では、以下の Microsoft 365 組織で、Exchange Online Protection PowerShell に接続します

    Connect-IPPSSession -UserPrincipalName navin@contoso.com -ConnectionUri https://ps.protection.outlook.com/powershell-liveid/
    

    この例では、以下の Office 365 Germany 組織で、Exchange Online Protection PowerShell に接続します

    Connect-IPPSSession -UserPrincipalName lukas@fabrikam.com -ConnectionUri https://ps.protection.outlook.de/powershell-liveid/ -AzureADAuthorizationEndPointUri https://login.microsoftonline.de/common
    

詳細な構文とパラメーターについては、「Connectt-IPPSSession」を参照してください。

注意

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

Disconnect-ExchangeOnline

先進認証を使用して Exchange Online Protection PowerShell に接続する

アカウントが多要素認証を使用していない場合は、このセクションの手順を使用します。

  1. Windows PowerShell ウィンドウで、次のコマンドを実行して EXO V2 モジュールを読み込みます。

    Import-Module ExchangeOnlineManagement
    

    : すでに、EXO V2 モジュールをインストール している場合は、前のコマンドは表示のとおり機能します。

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

    注意

    この手順は省略できます。Connect-IPPSSession コマンドを実行した後にユーザー名とパスワードの入力を求めるメッセージが表示されるようにするには、次の手順で Credential パラメーターを省略します。 次の手順で Credential パラメーターを省略し、UserPrincipalName パラメーターを含めると、Connect-IPPSSession コマンドの実行後に、パスワードの入力を求めるメッセージのみが表示されます。

    $UserCredential = Get-Credential
    

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

  3. 実行する必要がある最後のコマンドでは、次の構文を使用します。

    Connect-IPPSSession [-Credential $UserCredential] -ConnectionUri <URL> [-PSSessionOption $ProxyOptions]
    
    • 必須の ConnectionUri の値は、Microsoft 365 組織の種類によって異なります。 詳細については、Connect-IPPSSession パラメーターの説明をご覧ください。
    • プロキシ サーバーを使用している場合は、New-PSSessionOption コマンドレットの出力を変数 ($ProxyOptions = New-PSSessionOption -ProxyAccessType <Value> [-ProxyAuthentication <Value>] [-ProxyCredential <Value>] など) に格納します。 次に、PSSessionOption パラメーターの値としてその変数 ($ProxyOptions) を使用します。

    この例では、以下の Microsoft 365 組織で、Exchange Online Protection PowerShell に接続します

    Connect-IPPSSession -Credential $UserCredential -ConnectionUri https://ps.protection.outlook.com/powershell-liveid/
    

    この例では、以下の Office 365 Germany 組織で、Exchange Online Protection PowerShell に接続します

    Connect-IPPSSession -Credential $UserCredential -ConnectionUri https://ps.protection.outlook.de/powershell-liveid/
    

詳細な構文とパラメーターについては、「Connectt-IPPSSession」を参照してください。

注意

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

Disconnect-ExchangeOnline

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

Exchange Online Protection コマンドレットがローカル Windows PowerShell セッションにインポートされ、プログレスバーに表示されます。 何もエラーが表示されなければ、正常に接続されています。 簡単に確かめるには、Exchange Online Protection コマンドレット (Get-TransportRule など) を実行して結果を確認します。

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

  • 一般的な問題はパスワードの入力ミスです。もう一度 3 つのステップを実行し、使用するユーザー名とパスワードを慎重に入力します。

  • サービス拒否 (DoS) 攻撃を防止するために、Exchange Online Protection に対して開かれるリモート PowerShell 接続は 5 つまでに制限されます。

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

  • Exchange Online Protection PowerShell に接続するために使用するアカウントは、EOP のメール ユーザー (手動またはディレクトリ同期によって作成されたもの) として表示される必要があります。 アカウントが Exchange 管理センター (EAC) で 受信者 > 連絡先 のメールユーザーとして表示されていない場合は、接続しようとするときに次のエラーが表示されます。

    Import-PSSession: リモートセッションで Get-Command コマンドを実行すると、次のエラーが報告されました。次のエラーメッセージが表示され、リモート コマンドのデータ処理に失敗しました。ShellId を使用した Windows リモート シェルの要求が失敗しました。サーバーにシェルが見つかりませんでした。 考えられる原因としては、指定された ShellId が正しくないか、サーバーにシェルが存在しなくなったことが考えられます。 正しい ShellId を提供するか、新しいシェルを作成して操作をやり直してください。

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

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

    この問題を解決するには、単一の IP アドレスを含む SNAT プールを使用するか、Exchange Online Protection PowerShell エンドポイントへの接続に特定の IP アドレスを強制的に使用します。