基本認証 - Exchange Online PowerShell に接続します

注意

この記事の接続手順は、基本認証のセキュリティ上の問題が原因で、最終的に廃止される予定です。 代わりに、Exchange Online PowerShell V2 モジュール (EXO V2モジュール)を使用して Exchange Online PowerShell に接続することをお勧めします。 手順については、「Exchange Online PowerShell に接続する」を参照してください。

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

次の紹介ビデオでは、Exchange Online PowerShell に接続して使用する方法について説明します。

Exchange Online PowerShellの使用

注: このビデオはExchange Online PowerShell と EOP PowerShell に適用されます。 組織に接続するときに、正しい URL (ConnectionUri 値) を指定してください。 必要な URL は、Exchange Online とスタンドアロン EOP 組織で異なります。

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

  • 予想所要時間 : 5 分

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

  • オンプレミスの Exchange 組織に Exchange Enterprise CAL とサービス ライセンスがある場合は、この記事の手順を使用して、EOP 組織に接続することができます。

  • 次の 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 クライアントは要求を処理できません。 現在、基本認証はクライアント構成で無効になっています。 クライアント構成を変更して、要求を再試行してください。

ヒント

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

Exchange Online PowerShell に接続する

  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
    

注意

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

Remove-PSSession $Session

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

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

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

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

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

  • 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 の管理」をご覧ください。