この記事では、多要素認証 (MFA) の有無にかかわらず、Exchange Online PowerShell モジュールを使用して Security & Compliance PowerShell に接続する方法について説明します。
Exchange Online PowerShell モジュールでは、PowerShell とセキュリティ & コンプライアンス PowerShell への接続に最新の認証Exchange Online使用します。 Exchange Online PowerShell モジュールの詳細については、「Exchange Online PowerShell モジュールについて」を参照してください。
自動化のために Security & Compliance PowerShell に接続するには、「 無人スクリプトのアプリ専用認証」を参照してください。
はじめに把握しておくべき情報
モジュールをインストールして使用するための要件については、「Exchange Online PowerShell モジュールの前提条件」および「Exchange Online PowerShell モジュールでサポートされているオペレーティング システム」を参照してください。
接続後、ロールベースのアクセス制御 (RBAC) は、アクセス権を持っている、またはアクセスできないコマンドレットとパラメーターを制御します。 詳細については、「Microsoft Defender ポータルのアクセス許可」と「Microsoft Purview ポータルのアクセス許可」を参照してください。
手順 1: Exchange Online PowerShell モジュールを読み込む
注:
モジュールが既にインストールされている場合は、通常、この手順をスキップし、最初にモジュールを手動で読み込まずに Connect-IPPSSession を実行できます。
モジュールをインストールしたら、PowerShell ウィンドウを開き、次のコマンドを実行してモジュールを読み込みます。
Import-Module ExchangeOnlineManagement
手順 2: 接続して認証する
注:
接続に使用したアカウントのプロファイル パスに特殊な PowerShell 文字 (たとえば、
$) が含まれている場合、接続コマンドは失敗する可能性があります。 回避策は、プロファイル パスに特殊文字を含まない別のアカウントを使用して接続することです。電子情報開示コマンドレット (*-ComplianceSearch または New-ComplianceSearchAction) の実行を計画している場合、接続は次の要件を満たす必要があります。
バージョン 3.9.0 (2025 年 8 月) 以降の Exchange Online PowerShell モジュール。
connect コマンドには 、EnableSearchOnlySession スイッチが 含まれている必要があります。
セキュリティ & コンプライアンス PowerShell 接続がこれらの要件を満たしていない場合は、電子情報開示コマンドレットを実行しようとすると、次のエラーが表示されます。
Please close the current PowerShell session and open a new session using Connect-IPPSSession with the -EnableSearchOnlySession flag. This requires using ExchangeOnlineManagement v3.9.0 or higher.
実行する必要があるコマンドでは、次の構文を使用します。
Connect-IPPSSession -UserPrincipalName <UPN> [-ConnectionUri <URL>] [-AzureADAuthorizationEndpointUri <URL>] [-DelegatedOrganization <String>] [-PSSessionOption $ProxyOptions] [-EnableSearchOnlySession]
詳細な構文とパラメーターについては、「Connectt-IPPSSession」を参照してください。
<UPN> は、ユーザー プリンシパル名の形式 (たとえば、
navin@contoso.onmicrosoft.com) のアカウントです。必要な ConnectionUri と AzureADAuthorizationEndpointUri の値は、Microsoft 365 organizationの性質によって異なります。 一般的な値については、次の一覧を参照してください。
-
Microsoft 365 または Microsoft 365 GCC:
-
ConnectionUri: なし。
https://ps.compliance.protection.outlook.com/powershell-liveid/必要な値も既定値であるため、Microsoft 365 または Microsoft 365 GCC 環境で ConnectionUri パラメーターを使用する必要はありません。 -
AzureADAuthorizationEndpointUri: なし。 必要な値
https://login.microsoftonline.com/organizationsが既定値でもあるため、Microsoft 365 または Microsoft 365 GCC 環境で AzureADAuthorizationEndpointUri パラメーターを使用する必要はありません。
-
ConnectionUri: なし。
-
Microsoft 365 GCC High:
-
ConnectionUri:
https://ps.compliance.protection.office365.us/powershell-liveid/ -
AzureADAuthorizationEndpointUri:
https://login.microsoftonline.us/organizations*
-
ConnectionUri:
-
Microsoft 365 DoD:
-
ConnectionUri:
https://l5.ps.compliance.protection.office365.us/powershell-liveid/ -
AzureADAuthorizationEndpointUri:
https://login.microsoftonline.us/organizations*
-
ConnectionUri:
-
Office 365 21Vianet が運営しています。
-
ConnectionUri:
https://ps.compliance.protection.partner.outlook.cn/powershell-liveid -
AzureADAuthorizationEndpointUri:
https://login.chinacloudapi.cn/organizations*
-
ConnectionUri:
*
/organizationsで終わる AzureADAuthorizationEndpointUri 値では、職場または学校のアカウントのみを許可します。/commonで終わる古い URI 値は引き続き機能しますが、個人用アカウントと職場または学校アカウントのどちらかを選択するように求められる場合があります。 コンシューマー アカウントを除外する必要があるエンタープライズ シナリオでは、/organizationsURI 値をお勧めします。-
Microsoft 365 または Microsoft 365 GCC:
プロキシ サーバーの背後にいる場合は、接続コマンドで PSSessionOption パラメーターを使用できます。 最初に、次のコマンドを実行します。
$ProxyOptions = New-PSSessionOption -ProxyAccessType <Value>。ここで、 <Value> はIEConfig、WinHttpConfig、またはAutoDetectです。 次に、PSSessionOption パラメーターに$ProxyOptions値を使用します。 詳細については、「New-PSSessionOption」を参照してください。組織の性質によっては、次の手順で UserPrincipalName パラメーターを省略できる場合があります。 代わりに、ユーザー名とパスワードを入力するか、Connect-IPPSSession コマンドを実行した後に保存されている資格情報を選択します。 機能しない場合は、UserPrincipalName パラメーターを使用する必要があります。
MFA を使用していない場合は、多くの場合、UserPrincipalName パラメーターではなく Credential パラメーターを使用できます。 まず、コマンド
$Credential = Get-Credentialを実行し、ユーザー名とパスワードを入力し、 Credential パラメーター (-Credential $Credential) に変数名を使用します。 機能しない場合は、UserPrincipalName パラメーターを使用する必要があります。
対話型サインイン プロンプトを使用してセキュリティ & コンプライアンス PowerShell に接続する
次の例は、MFA の有無にかかわらず、Windows PowerShell 5.1 および PowerShell 7 で動作します。
この例では、Microsoft 365 または Microsoft 365 GCC 組織でセキュリティ/コンプライアンス PowerShell に接続します。
Connect-IPPSSession -UserPrincipalName navin@contoso.onmicrosoft.comこの例では、Microsoft GCC High 組織でセキュリティ/コンプライアンス PowerShell に接続します。
Connect-IPPSSession -UserPrincipalName chris@govt.us -ConnectionUri https://ps.compliance.protection.office365.us/powershell-liveid/ -AzureADAuthorizationEndpointUri https://login.microsoftonline.us/organizationsこの例では、Microsoft 365 DoD 組織でセキュリティ/コンプライアンス PowerShell に接続します。
Connect-IPPSSession -UserPrincipalName michelle@govt.mil -ConnectionUri https://l5.ps.compliance.protection.office365.us/powershell-liveid/ -AzureADAuthorizationEndpointUri https://login.microsoftonline.us/organizationsこの例では、21Vianet 組織によって操作される Office 365 でセキュリティ/コンプライアンス PowerShell に接続します。
Connect-IPPSSession -UserPrincipalName li@fabrikam.cn -ConnectionUri https://ps.compliance.protection.partner.outlook.cn/powershell-liveid -AzureADAuthorizationEndpointUri https://login.chinacloudapi.cn/organizations
開いたサインイン ウィンドウで、パスワードを入力し、[サインイン] を選択 します。
注:
PowerShell 7 では、ブラウザー ベースのシングル サインオン (SSO) が既定で使用されるため、スタンドアロン ダイアログではなく既定の Web ブラウザーでサインイン プロンプトが開きます。
MFA のみ: 確認コードが生成され、アカウント用に構成された応答オプション (デバイス上のテキスト メッセージや Microsoft Authenticator アプリなど) に基づいて配信されます。
開いた確認ウィンドウで、確認コードを入力し、[ 確認] を選択します。
サインイン プロンプトなしでセキュリティ & コンプライアンス PowerShell に接続する (無人スクリプト)
完全な手順については、「Exchange Online PowerShell と Security & Compliance PowerShell の無人スクリプトのアプリ専用認証」を参照してください。
顧客組織のセキュリティ & コンプライアンス PowerShell に接続する
このセクションの手順では、モジュールのバージョン 3.0.0 以降が必要です。
Security & Compliance PowerShell では、DelegatedOrganization パラメーターで AzureADAuthorizationEndpointUri を使用する必要があります。
パートナーと顧客組織の詳細については、次の記事を参照してください。
この例では、次のシナリオで顧客組織に接続します。
CSP アカウントを使用して顧客organizationに接続します。
GDAP を使用して顧客organizationに接続します。
ゲストとして顧客organizationに接続します。
Connect-IPPSSession -UserPrincipalName navin@contoso.onmicrosoft.com -DelegatedOrganization adatum.onmicrosoft.com -AzureADAuthorizationEndpointUri https://login.microsoftonline.com/adatum.onmicrosoft.com
手順 3: 完了したら切断する
完了したら、必ずセッションを切断してください。 セッションを切断せずに PowerShell ウィンドウを閉じると、使用可能なすべてのセッションを使い切ることができ、セッションの有効期限が切れるのを待つ必要があります。 セッションを切断するには、次のコマンドを実行します。
Disconnect-ExchangeOnline
確認プロンプトなしでサイレント切断するには、次のコマンドを実行します。
Disconnect-ExchangeOnline -Confirm:$false
注:
接続に使用したアカウントのプロファイル パスに特殊な PowerShell 文字 (たとえば、 $) が含まれている場合、切断コマンドは失敗する可能性があります。 回避策は、プロファイル パスに特殊文字を含まない別のアカウントを使用して接続することです。
正常に接続されたことを知る方法を教えてください。
セキュリティ/コンプライアンス PowerShell コマンドレットがローカル Windows PowerShell セッションにインポートされ、進行状況バーで追跡されます。 何もエラーが表示されなければ、正常に接続されています。 簡単にテストするには、Get-Ret-RentionCompliancePolicy などの、セキュリティ/コンプライアンス PowerShell コマンドレットを実行して、結果を確認します。
エラーが表示された場合は、次の要件を確認します。
よく起きる問題はパスワードの入力ミスです。 もう一度 3 つの手順を実行します。特に、ユーザー名とパスワードは慎重に入力します。
接続に使用するアカウントは、PowerShell で有効にする必要があります。 詳細については、「Exchange Online PowerShell へのアクセスを有効または無効にする」を参照してください。
ローカル コンピューターと Microsoft 365 の間に TCP ポート 80 のトラフィックを開く必要があります。 組織で厳格なインターネット アクセス ポリシーが使用されている場合は、開いている可能性がありますが、確認する必要があります。
セキュリティ & コンプライアンス PowerShell への REST ベースの接続には、PowerShellGet モジュールが必要です。 依存関係によって、PowerShellGet モジュールには PackageManagement モジュールが必要です。 両方のモジュールをインストールせずに接続しようとすると、エラーが発生します。 たとえば、次のエラーが表示される場合があります。
"Update-ModuleManifest" という用語は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。 名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。
PowerShellGet モジュールと PackageManagement モジュールの要件の詳細については、「 Windows での REST ベースの接続用 PowerShellGet」を参照してください。
接続要求中にクライアントの IP アドレスが変更された場合、接続に失敗する場合があります。 このエラーは、organizationが複数の IP アドレスを持つソース ネットワーク アドレス変換 (SNAT) プールを使用している場合に発生します。 この接続エラーは次のようになります。
ShellId <ID を持つ Windows リモート シェルの要求> 、シェルがサーバー上に見つからなかったため失敗しました。 考えられる原因としては、指定された ShellId が正しくないか、サーバーにシェルが存在しなくなったことが考えられます。 正しい ShellId を提供するか、新しいシェルを作成して操作をやり直してください。
この問題を解決するには、次のいずれかの手順を実行します。
- 1 つの IP アドレスを含む SNAT プールを使用します。
- Security & Compliance PowerShell エンドポイントへの接続に特定の IP アドレスを強制的に使用します。