Exchange Online 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 PowerShell に接続する方法について説明します。

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

以前の Exchange Online リモート PowerShell モジュールを使用して、MFA を使用する Exchange Online PowerShell に接続するには、「V1 モジュール - MFA を使用して Exchange Online PowerShell に接続する」を参照してください。 この以前のバージョンのモジュールは最終的に廃止されることにご注意ください。

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

  • EXO V2 モジュールをインストールして使用するための要件は、「EXO V2 モジュールをインストールして維持する」に記載されています。

    注意

    記事の残りの手順では、モジュールがすでにインストールされていることを前提としています。

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

    特定の Exchange Online コマンドレットを実行するために必要なアクセス許可を調べるには、「Exchange コマンドレットを実行するために必要なアクセス許可を検索する」を参照してください。

  • 組織がオンプレミスの Exchange を使用していて、Exchange Online Protection (EOP) 用のサービス ライセンスの Exchange Enterprise CAL を所有している場合は、この記事で説明されているように、EOP PowerShell 接続の手順は Exchange Online PowerShell と同じです。

ヒント

問題が発生する場合 Exchange Online フォーラムに質問してください。

MFA を利用または利用しない先進認証を使用して Exchange Online PowerShell に接続する

これらの接続手順では、最新の認証を使用し、多要素認証 (MFA) の有無にかかわらず動作します。

PowerShell 7 で使用可能なその他のサインイン方法については、このトピック後半の「PowerShell 7 のログイン エクスペリエンス」セクションを参照してください。

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

    Import-Module ExchangeOnlineManagement
    

    注意:

    • すでに、EXO V2 モジュールをインストールしている場合は、前のコマンドは表示のとおり機能します。
    • モジュールを最初に読み込まずに、この手順を省略して Connect-ExchangeOnline を実行できる場合があります。
  2. 実行する必要があるコマンドでは、次の構文を使用します。

    Connect-ExchangeOnline -UserPrincipalName <UPN> [-ShowBanner:$false] [-ExchangeEnvironmentName <Value>] [-DelegatedOrganization <String>] [-PSSessionOption $ProxyOptions]
    
    • <UPN> は、ユーザー プリンシパル名の形式 (navin@contoso.comなど) のアカウントです。
    • ExchangeEnvironmentName パラメーターを使用する場合、ConnectionUri もしくは AzureADAuthorizationEndPointUrl パラメーターを使う必要はありません。 詳細については、Connect-ExchangeOnline のパラメーターの説明をご覧ください。
    • DelegatedOrganization パラメーターは、承認された Microsoft パートナーとして管理する顧客組織を指定します。 詳細については、「パートナー」を参照してください。
    • プロキシ サーバーを使用している場合は、最初に次のコマンドを実行します。$ProxyOptions = New-PSSessionOption -ProxyAccessType <Value>: このコマンドの <Value> は、IEConfigWinHttpConfigAutoDetect のいずれかです。 次に、値 $ProxyOptions を指定して、PSSessionOption パラメーターを使用します。 詳細については、「New-PSSessionOption」を参照してください。
    • Connect-ExchangeOnline コマンドを実行した後、ユーザー名とパスワードの両方を入力するには、次の手順で UserPrincipalName パラメーターを省略できる場合がしばしばあります。 機能しない場合は、UserPrincipalName パラメーターを使用する必要があります。
    • MFA を使用していない場合は、多くの場合、UserPrincipalName パラメーターではなく Credential パラメーターを使用できます。 まず、コマンド $Credential = Get-Credentialを実行し、ユーザー名とパスワードを入力し、 Credential パラメーター (-Credential $Credential) に変数名を使用します。 機能しない場合は、UserPrincipalName パラメーターを使用する必要があります。

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

    Connect-ExchangeOnline -UserPrincipalName navin@contoso.com
    

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

    Connect-ExchangeOnline -UserPrincipalName lukas@fabrikam.de -ExchangeEnvironmentName O365GermanyCloud
    

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

    Connect-ExchangeOnline -UserPrincipalName laura@blueyonderairlines.us -ExchangeEnvironmentName O365USGovGCCHigh
    

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

    Connect-ExchangeOnline -UserPrincipalName julia@adatum.mil -ExchangeEnvironmentName O365USGovDoD
    

    この例では、Exchange Online PowerShell に接続して、以下のような別のテナントを管理します

    Connect-ExchangeOnline -UserPrincipalName navin@contoso.com -DelegatedOrganization adatum.onmicrosoft.com
    
  3. 表示されるサインイン ウィンドウで、パスワードを入力し、[サインイン] をクリックします。

    [アカウントへのサインイン] ウィンドウでパスワードを入力する

  4. MFA のみ: 確認コードが生成され、アカウントに対して構成されている応答オプション (テキスト メッセージまたはお持ちのデバイスの Microsoft Authenticator アプリなど) に基づいて配信されます。

    表示される確認ウィンドウで、確認コードを入力して、[検証する] をクリックします。

    [アカウントへのサインイン] ウィンドウで確認コードを入力する

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

注意

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

Disconnect-ExchangeOnline

PowerShell 7 のログイン エクスペリエンス

このセクションでは、PowerShell 7 のバージョン 2.0.4 以降の EXO V2 モジュールで使用できるログイン エクスペリエンスについて説明します。

PowerShell 7 の EXO V2 モジュールでサポートされているオペレーティング システムの詳細については、「EXO V2 モジュール用にサポートされているオペレーティング システム」を参照してください。

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

ブラウザーベースのシングル サインオンを使用した対話型スクリプト

ブラウザーベースのシングル サインオン (SSO) は、PowerShell 7 の既定のログイン方法です。 Connect-ExchangeOnline コマンドを実行すると、既定のブラウザーで Azure AD ログイン ページが開きます。 資格情報を入力した後、以前の Exchange Online コマンドレットと EXO V2 モジュールのコマンドレットが、PowerShell セッションで使用できるようになります。

コマンドで UserPrincipalName パラメーターを使用している場合は、ブラウザーのログイン ページで UPN 値が使用されます。

Connect-ExchangeOnline -UserPrincipalName navin@contoso.onmicrosoft.com

デバイスベースのログイン

使用できるブラウザーがない場合は、デバイスベースのログインを使用します (よって、ログイン ページは表示されません)。

Connect-ExchangeOnline -Device

このコマンドは、セッションに関連付けられている URL と一意のコードを返します。 任意のコンピューターのブラウザーでその URL を開き、一意のコードを入力する必要があります。 Web ブラウザーでのログインが完了すると、Powershell 7 ウィンドウのセッションが通常の Azure AD 認証フローを介して認証され、数秒後に Exchange Online コマンドレットがインポートされます。

インラインの資格情報

SSO のためにブラウザーに移動する必要はなく、PowerShell ウィンドウで資格情報を直接入力できます。

注意

この方法は、多要素認証を使用するアカウントでは機能しません。

この方法は、資格情報をローカルに手書きで保存する必要はありません。また、interactive PowerShell セッションで直接資格情報を入力できるため、 Credential パラメーターの改善と言えます。

Connect-ExchangeOnline -InlineCredential

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

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

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

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

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

  • 接続に使用するアカウントは、リモート PowerShell に対して有効になっている必要があります。 詳細については、「Exchange Online PowerShell へのアクセスを有効または無効にする」を参照してください。

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

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