V1 モジュール - MFA を使用して powerShell Exchange Onlineに接続する
重要
この記事で説明する古いExchange Onlineリモート PowerShell モジュールのサポートは、2022 年 8 月 31 日に終了します。 このバージョンのモジュールを使用して powerShell Exchange Onlineに接続する機能は、2022 年 12 月 31 日に終了します。
Exchange Online PowerShell V2 モジュール (EXO V2 モジュール) を使用することをお勧めします。これは最新の認証のみを使用し、MFA の有無にかかわらずアカウントをサポートします。 インストールと接続の手順については、「EXO V2 モジュールのインストールと保守」と「PowerShell への接続Exchange Online参照してください。 Exchange Online PowerShell モジュールのさまざまなバージョンの詳細については、「PowerShell モジュールと Basic Auth の異なるバージョンExchange Online理解する」を参照してください。
多要素認証 (MFA) を使用して Exchange Online PowerShell に接続する場合は、「Basic auth - Exchange Online PowerShell に接続してリモート PowerShell を使用してExchange Onlineに接続する」の手順を使用できません。 MFA では、Exchange Onlineリモート PowerShell モジュールをインストールし、Connect-EXOPSSession コマンドレットを使用して接続する必要があります。
はじめに把握しておくべき情報
予想所要時間 : 5 分
接続後、アクセスできるまたはアクセスできないコマンドレットとパラメーターは、役割ベースのアクセス制御 (RBAC) によって制御されます。詳細については、「Exchange Online のアクセス許可」を参照してください。
次の 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 Framework、Windows Management Framework 3.0、Windows Management Framework 4.0、および Windows Management Framework 5.1をインストールする」を参照してください。
WinRM は基本認証を許可する必要があります (既定で有効になっています)。ユーザー名とパスワードの組み合わせは送信しませんが、クライアント側の WinRM 実装は OAuth をサポートしていないため、セッションの OAuth トークンを転送するには基本認証ヘッダーが必要です。
注:次のコマンドを実行するには、WinRM を一時的に有効にする必要があります。 次のコマンドを実行して有効にできます
winrm quickconfig。WinRM で基本認証が有効になっていることを確認するには、コマンド プロンプトで(Windows PowerShell ではなく)、次のコマンドを実行します:
winrm get winrm/config/client/authBasic = trueの値が表示されない場合は、コマンド プロンプトで(Windows PowerShell ではなく)、次のコマンドを実行して WinRM の基本認証を有効にする必要があります:winrm set winrm/config/client/auth @{Basic="true"}注: Windows PowerShell でコマンドを実行する場合は、コマンドのこの部分を引用符で囲みます:
'@{Basic="true"}'。WinRM で基本認証が無効になっている状態で接続しようとすると、次のエラーが表示されます。
WinRM クライアントは要求を処理できません。 現在、基本認証はクライアント構成で無効になっています。 クライアント構成を変更して、要求を再試行してください。
Exchange Online リモート PowerShell モジュールをインストールする
注意
Exchange Onlineリモート PowerShell モジュールは、PowerShell Core (macOS、Linux、または Windows Nano Server) ではサポートされていません。 回避策として、サポートされているバージョンの Windows (物理または仮想) を実行しているコンピューターにモジュールをインストールし、リモート デスクトップ ソフトウェアを使用して接続できます。
ClickOnce をサポートするブラウザー (Internet Explorer や Edge など) で次の手順を実行する必要があります。
注: ClickOnce のサポートは、Chromium ベースのバージョンの Edge でedge://flags/#edge-click-once使用でき、既定では有効になっていない可能性があります。
Exchange Online組織の Exchange 管理センター (EAC) を開きます。 手順については、Exchange Onlineの Exchange 管理センターに関する記事を参照してください。
EAC で ハイブリッド > セットアップ に移動し、適切な [構成] ボタンをクリックして、多要素認証用のExchange Onlineリモート PowerShell モジュールをダウンロードします。
![EAC の [ハイブリッド] タブからExchange Online PowerShell モジュールをダウンロードします。](../docs-conceptual/media/24645e56-8b11-4c0f-ace4-09bdb2703562.png?view=exchange-ps)
表示される [アプリケーションのインストール] ウィンドウで、[インストール] をクリックします。
![[Exchange Online PowerShell モジュール] ウィンドウで [インストール] をクリックします。](../docs-conceptual/media/0fd389a1-a32d-4e2f-bf5f-78e9b6407d4c.png?view=exchange-ps)
- Exchange Onlineリモート PowerShell モジュールを使用すると、セッションは 1 時間後に終了します。これは、実行時間の長いスクリプトやプロセスでは問題になる可能性があります。 この問題を回避するには、 信頼できる IP を 使用して、イントラネットからの接続に対して MFA をバイパスします。 信頼できる IP を使用すると、「Basic auth - Exchange Online PowerShell に接続する」の古い手順を使用して、イントラネットから powerShell Exchange Onlineに接続できます。 また、データセンターにサーバーがある場合は、 ここで説明するように、必ずパブリック IP アドレスを信頼できる IP に追加してください。
ヒント
問題がある場合は、 Exchange のフォーラムで質問してください。 Exchange OnlineまたはExchange Online Protectionのフォーラムにアクセスします。
MFA を使用して PowerShell Exchange Onlineに接続する
ローカル コンピューターで、Exchange Onlineリモート PowerShell モジュール (Microsoft Corporation > Microsoft Exchange Online Remote PowerShell モジュール) を開きます。
実行する必要があるコマンドでは、次の構文を使用します。
Connect-EXOPSSession [-UserPrincipalName -ConnectionUri <ConnectionUri> -AzureADAuthorizationEndPointUri <AzureADUri> -DelegatedOrganization <String>]<UPN> は Microsoft 365 の職場または学校アカウントです。
値と <AzureADUri> 値は <ConnectionUri>、次の表に示すように、Microsoft 365 組織の性質によって異なります。
Microsoft 365 のサービス ConnectionUri パラメーター値 AzureADAuthorizationEndPointUri パラメーター値 Microsoft 365 不使用 不使用 Office 365 Germany https://outlook.office.de/PowerShell-LiveIDhttps://login.microsoftonline.de/commonMicrosoft 365 GCC High https://outlook.office365.us/powershell-liveidhttps://login.microsoftonline.us/commonMicrosoft 365 DoD https://webmail.apps.mil/powershell-liveidhttps://login.microsoftonline.us/commonこの例では、アカウント chris@contoso.com を使用して Microsoft 365 のExchange Onlineに接続します。
Connect-EXOPSSession -UserPrincipalName chris@contoso.comこの例では、アカウント lukas@fabrikam.com を使用してドイツExchange Onlineに接続します。
Connect-EXOPSSession -UserPrincipalName lukas@fabrikam.com -ConnectionUri https://outlook.office.de/PowerShell-LiveID -AzureADAuthorizationEndPointUri https://login.microsoftonline.de/commonこの例では、別のテナントを管理するためにExchange Onlineに接続します。
Connect-EXOPSSession -UserPrincipalName chris@contoso.com -DelegatedOrganization fabrikam.onmicrosoft.com表示されるサインイン ウィンドウで、パスワードを入力し、[サインイン] をクリックします。

確認コードは、アカウント用に構成された検証応答オプション (たとえば、携帯電話のテキスト メッセージや Azure Authenticator アプリ) に基づいて生成され、配信されます。
表示される確認ウィンドウで、確認コードを入力して、[サインイン] をクリックします。

注意
完了した時点でリモート PowerShell セッションを切断してください。 セッションを切断せずにExchange Onlineリモート PowerShell モジュール ウィンドウを閉じると、使用可能なすべてのリモート PowerShell セッションを使い切ることができ、セッションの有効期限が切れるのを待つ必要があります。 現在開いている PowerShell セッションをすべて現在のウィンドウで切断するには、次のコマンドを実行します。
Get-PSSession | Remove-PSSession
シングル サインオン
組織でシングル サインオン (SSO) が有効になっていて、SSO ドメインのユーザーとしてコンピューターにログオンしている場合、 Connect-EXOPSSession は次のエラーで失敗する可能性があります。
New-EXOPSSession: サービスによって返されるユーザー 'loggedonuser@contoso.com' は、要求のユーザー 'userprincipalname@contoso.com' と一致しません。
このエラーは、シングル サインオンによって指定されたユーザー プリンシパル名 (UPN) がオーバーライドされるために発生します。 回避策として、-UserPrincipalName パラメーターを指定せずにConnect-EXOPSSessionを使用するか、代わりに -Credential パラメーターを使用します。
正常な動作を確認する方法
手順 4 の後、Exchange Online コマンドレットはExchange Onlineリモート PowerShell モジュール セッションにインポートされ、進行状況バーによって追跡されます。 何もエラーが表示されなければ、正常に接続されています。 簡単に確かめるには、Exchange Online コマンドレット (Get-Mailbox など) を実行して結果を確認します。
エラーが表示された場合は、次の要件を確認します。
サービス拒否 (DoS) 攻撃を防止するため、Exchange Online に対して開かれるリモート PowerShell 接続は 5 つまでに制限されます。
Exchange Online への接続に使うアカウントは、リモート PowerShell に対して有効になっている必要があります。詳しくは、「Exchange Online でリモート PowerShell アクセスを管理する」をご覧ください。
ローカル コンピューターと Microsoft 365 の間に TCP ポート 80 トラフィックを開く必要があります。このポートは多くの場合開いているはずですが、組織で厳格なインターネット アクセス ポリシーが使用されている場合は、念のために確認する必要があります。