Exchange Online PowerShell に接続する

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

Important

多要素認証 (MFA) を使って Exchange Online PowerShell に接続する場合は、Exchange Online リモート PowerShell モジュールをダウンロードして使用する必要があります。 詳細については、「多要素認証を使用して Exchange Online PowerShell に接続する」を参照してください。

スタンドアロンの Exchange Online Protection (EOP) カスタマーの場合 (たとえば、オンプレミスのメール環境を保護するために EOP を使用している場合) は、「Exchange Online Protection の PowerShell への接続」に記載されている接続手順を実行してください。 スタンドアロンの EOP サブスクリプションが Exchange Enterprise CAL with Services (Web サービスを使用したデータ損失防止 (DLP) とレポート機能を含む) の場合は、このトピックの接続手順を使用してください。

始める前に把握しておくべき情報

  • 予想所要時間 : 5 分

  • 次の 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 の場合は、Microsoft.NET Framework 4.5 以降をインストールしてから、更新バージョンの Windows Management Framework (3.0、4.0、5.1 のいずれか 1 つ) をインストールする必要があります。詳細については、「.NET Framework のインストール」、「Windows Management Framework 3.0」、「Windows Management Framework 4.0」、「Windows Management Framework 5.1」を参照してください。

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

    Files cannot be loaded because running scripts is disabled on this system. Provide a valid certificate with which to sign the files.

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

    Set-ExecutionPolicy RemoteSigned
    

    この設定は、コンピューターで一度だけ構成すれば、接続ごとに行う必要はありません。

  • コンピューターの Windows リモート管理 (WinRM) では、基本認証を有効にする必要があります (既定では有効です)。 基本認証が有効になっていることを確認するには、コマンド プロンプトで次のコマンドを実行します。

    winrm get winrm/config/client/auth
    

    Basic = true の値が表示されない場合は、次のコマンドを実行して WinRM の基本認証を有効にする必要があります。

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

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

    The WinRM client cannot process the request. Basic authentication is currently disabled in the client configuration. Change the client configuration and try the request again.

Tip

問題がある場合は、 Exchange のフォーラムで質問してください。 次のフォーラムにアクセスしてください: Exchange Online または Exchange Online Protection

Important

2020 年 10 月 13 日に、Exchange Online のリモート PowerShell の基本認証 (RPS) を廃止します。

Exchange Online に接続する

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

    $UserCredential = Get-Credential
    

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

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

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

    :

    • 21 vianet が運営する Office 365 には、次の ConnectionUri 値を使用してください: https://partner.outlook.cn/PowerShell

    • Office 365 Germany には、次の ConnectionUri 値を使用してください: https://outlook.office.de/powershell-liveid/

    • Office 365 Government Community Cloud High (GCC High) には、次の ConnectionUri 値を使用してください: https://outlook.office365.us/powershell-liveid/

    • プロキシ サーバーの背後にある場合は、まずこのコマンドを実行してください: $ProxyOptions = New-PSSessionOption -ProxyAccessType <Value>ProxyAccessType 値は IEConfigWinHttpConfigAutoDetect のいずれかです。

      次に、$Session = ... コマンドの最後に次のパラメーターと値を追加してください: -SessionOption $ProxyOptions

      詳細については、「New-PSSessionOption」を参照してください。

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

    Import-PSSession $Session -DisableNameChecking
    

Note

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

Remove-PSSession $Session

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

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

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

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

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

  • Exchange Online への接続に使うアカウントは、リモート PowerShell に対して有効になっている必要があります。詳しくは、「Exchange Online でリモート PowerShell アクセスを管理する」をご覧ください。

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

  • 組織でフェデレーション認証を使用していて、ID プロバイダー (IDP) またはセキュリティ トークン サービス (STS) へのパブリック アクセスができない場合は、フェデレーション アカウントを使用して Exchange Online PowerShell に接続することはできません。 代わりに、Office 365 で非フェデレーション アカウントを作成し、それを使用して Exchange Online PowerShell に接続します。

関連項目

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

Office 365 の管理の詳細については、「Office 365 の管理」をご覧ください。