基本認証で Exchange Online PowerShell に接続する

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

Note

  • 最終的には Exchange Online で基本認証を無効にしますが、このトピックで説明する接続方法では基本認証を使用します。 すべてのシナリオで最新の認証を使用するため、Exchange Online PowerShell V2 モジュールを使用して Exchange Online PowerShell に接続することをお勧めします。

  • Exchange Online PowerShell V2 モジュールは、多要素認証 (MFA) で動作します。 以前のExchange Online Remote PowerShell Module を使用したMFA接続手順については、「多要素認証を使用してExchange Online PowerShellに接続する」を参照してください。

  • スタンドアロンの Exchange Online Protection (EOP) カスタマーの場合 (たとえば、オンプレミスのメール環境を保護するために EOP を使用している場合) は、「Exchange Online Protection の PowerShell への接続」に記載されている接続手順を実行してください。 オンプレミスの Exchange 組織で Exchange Enterprise CAL とサービス ライセンスがある場合は、EOP が含まれるサービスの 1 つであり、このトピックの接続手順が役立ちます。

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

  • 予想所要時間 : 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 ではサポートが終了しており、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 を構成する必要があります。既定では、そのように構成されていないため、接続を試行すると、次に示すエラーが発生します。

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

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

    Note

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

    winrm get winrm/config/client/auth
    

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

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

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

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

Tip

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

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/

    • Microsoft 365 GCC High の場合は、次の ConnectionUri 値を使用してください: https://outlook.office365.us/powershell-liveid/

    • Microsoft 365 DoD の場合は、次の ConnectionUri 値を使用してください: https://webmail.apps.mil/powershell-liveid

    • プロキシサーバーを使用している場合は、最初に次のコマンドを実行します: $ProxyOptions = New-PSSessionOption -ProxyAccessType <Value>, where <Value> is IEConfig, WinHttpConfig, or AutoDetect.

      次に、$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 アクセスを管理する」をご覧ください。

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

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

関連項目

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

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