共用方式為


連線到安全性與合規性 PowerShell

本文提供如何使用 Exchange Online PowerShell 模組(含多重驗證 (多重驗證) MFA )連接安全 & 與合規 PowerShell 的教學。

Exchange Online PowerShell 模組使用現代認證連接 PowerShell Exchange Online 安全 & 合規 PowerShell。 欲了解更多關於 Exchange Online PowerShell 模組的資訊,請參閱「關於 Exchange Online PowerShell 模組」。

若要連接安全 & 合規 PowerShell 進行自動化,請參見 應用程式僅認證無人看管腳本

開始之前有哪些須知?

步驟 1:載入 Exchange Online PowerShell 模組

注意事項

如果模組已經安裝好,通常可以跳過這個步驟,直接執行 Connect-IPPSSession ,不用手動載入模組。

安裝模組後,開啟 PowerShell 視窗並執行以下指令載入模組:

Import-Module ExchangeOnlineManagement

步驟 2:連結並驗證

注意事項

如果你用來連接的帳號設定檔路徑包含特殊 PowerShell 字元,例如) ,連接指令很可能會失敗 ($ 。 解決方法是用一個沒有特殊字元的帳號連線。

您需要執行的命令會使用下列語法:

Connect-IPPSSession -UserPrincipalName <UPN> [-ConnectionUri <URL>] [-AzureADAuthorizationEndpointUri <URL>] [-DelegatedOrganization <String>] [-PSSessionOption $ProxyOptions]

如需詳細的語法和參數資訊,請參閱 Connect-IPPSSession

  • <UPN> 是你的帳號, (navin@contoso.onmicrosoft.com) 的使用者主體名稱格式。

  • 所需的 ConnectionUriAzureADAuthorizationEndpointUri 值取決於您 Microsoft 365 組織的性質。 常見數值如下列表:

    • Microsoft 365 或 Microsoft 365 GCC
      • ConnectionUri:沒有。 所需值 https://ps.compliance.protection.outlook.com/powershell-liveid/ 同時也是預設值,因此在 Microsoft 365 或 Microsoft 365 GCC 環境中,你不需要使用 ConnectionUri 參數。
      • AzureADAuthorizationEndpointUri: None. 這是所需的值 https://login.microsoftonline.com/organizations,但它同時也是預設值,所以在 Microsoft 365 或 Microsoft 365 GCC 環境中,你不需要使用 AzureADAuthorizationEndpointUri 參數。
    • Microsoft 365 GCC High
      • ConnectionUrihttps://ps.compliance.protection.office365.us/powershell-liveid/
      • AzureADAuthorizationEndpointUrihttps://login.microsoftonline.us/organizations*
    • Microsoft 365 國防部
      • ConnectionUrihttps://l5.ps.compliance.protection.office365.us/powershell-liveid/
      • AzureADAuthorizationEndpointUrihttps://login.microsoftonline.us/organizations*
    • Office 365 由 21Vianet 營運
      • ConnectionUrihttps://ps.compliance.protection.partner.outlook.cn/powershell-liveid
      • AzureADAuthorizationEndpointUrihttps://login.chinacloudapi.cn/organizations*

    * AzureADAuthorizationEndpointUri 的值,結尾/organizations的值只允許工作或學校帳號。 舊的 URI 值以 URI 結尾 /common 仍然有效,但可能會讓你在個人帳號和工作或學校帳號之間做選擇。 我們建議在企業情境下使用 /organizations URI 值,因為消費者帳戶應被排除。

  • 如果你在代理伺服器後面,可以在連線指令中使用 PSSessionOption 參數。 首先,執行此指令: $ProxyOptions = New-PSSessionOption -ProxyAccessType <Value>,其中 <值> 為 IEConfigWinHttpConfigAutoDetect或 。 接著,使用PSSessionOption參數的值$ProxyOptions。 如需詳細資訊,請參閱 New-PSSessionOption

  • 根據組織的性質,您可以在下一個步驟略過 UserPrincipalName 參數。 相反地,執行 Connect-IPPSSession 命令之後,請輸入使用者名稱和密碼,或選取儲存的認證。 如果無法執行,則需要使用 UserPrincipalName 參數。

  • 如果您未使用 MFA,您應該可以使用 Credential 參數,而非 UserPrincipalName 參數。 首先,執行命令 $Credential = Get-Credential,輸入您的使用者名稱和密碼,然後使用 Credential 參數的變數名稱 (-Credential $Credential)。 如果無法執行,則需要使用 UserPrincipalName 參數。

透過互動式登入提示連接安全 & 合規 PowerShell

  1. 以下範例可在 Windows PowerShell 5.1 和 PowerShell 7 中運作,適用於有無 MFA 的帳號:

    • 此範例會連線至 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
      
  2. 在開啟的登入視窗中輸入密碼,然後選擇 登入

    在 [登入您的帳戶] 視窗中輸入您的密碼。

    注意事項

    在 PowerShell 7 中,預設使用瀏覽器單點登入 (SSO) ,因此登入提示會在預設網頁瀏覽器中開啟,而非獨立對話框。

  3. 僅限多重驗證:驗證碼會根據您帳戶設定的回應選項產生並傳送,例如簡訊或裝置) Microsoft驗證器應用程式 (。

    在打開的驗證視窗中,輸入驗證碼,然後選擇 「驗證」。

    在 [登入您的帳戶] 視窗中輸入您的驗證碼。

連接安全 & 合規 PowerShell (無人值守) 腳本

完整說明請參閱 PowerShell 及安全合規 PowerShell 中無人值守腳本的應用程式Exchange Online認證 & PowerShell。

連接客戶組織中的安全 & 合規 PowerShell

本節的程序需要模組版本 3.0.0 或更新版本。

在 Security & Compliance PowerShell 中,你需要使用 AzureADAuthorizationEndpointUri 搭配 DelegatedOrganization 參數。

欲了解更多關於合作夥伴與客戶組織的資訊,請參閱以下文章:

此範例可連結至以下情境下的客戶組織:

  • 使用 CSP 帳號連接客戶組織。

  • 使用 GDAP 連接客戶組織。

  • 以客人身份與客戶組織建立聯繫。

    Connect-IPPSSession -UserPrincipalName navin@contoso.onmicrosoft.com -DelegatedOrganization adatum.onmicrosoft.com -AzureADAuthorizationEndpointUri https://login.microsoftonline.com/adatum.onmicrosoft.com
    

步驟三:完成後斷線

結束後務必斷開連線。 如果你關閉 PowerShell 視窗卻沒有斷開連線,可能會用完所有可用的工作階段,並且需要等待工作階段到期。 要斷開會話,請執行以下指令:

Disconnect-ExchangeOnline

若要在沒有確認提示的情況下靜悄悄斷開連線,請執行以下指令:

Disconnect-ExchangeOnline -Confirm:$false

注意事項

如果你用來連接的帳號設定檔路徑包含特殊的 PowerShell 字元 (,例如) $ ,斷開指令很可能失敗。 解決方法是用一個沒有特殊字元的帳號連線。

你怎麼知道你成功連結了?

安全性與合規性 PowerShell Cmdlet 會匯入到本機 Windows PowerShell 工作階段中,並透過進度列進行追蹤。 如果您未收到任何錯誤,便已順利連線。 快速測試方式就是執行安全性與合規性 PowerShell Cmdlet,例如 Get-RetentionCompliancePolicy,並查看結果。

如果出現錯誤,請檢查下列需求:

  • 密碼錯誤是常見的問題。 再次執行這三個步驟,並特別留意您使用的使用者名稱和密碼。

  • 你用來連接的帳號必須啟用 PowerShell。 如需詳細資訊,請參閱啟用或停用 Exchange Online 的封存權

  • 必須在本機電腦與 Microsoft 365 之間開啟 TCP 連接埠 80 流量。 該連接埠可能已開啟,但必須考量您的組織是否有限制性網際網路存取原則。

  • 基於 REST 的 Security & Compliance PowerShell 連線需要 PowerShellGet 模組。 依相依性而言,PowerShellGet 模組需要 PackageManagement 模組。 如果你嘗試連接時沒有安裝兩個模組,會收到錯誤。 例如,你可能會看到以下錯誤:

    「Update-ModuleManifest」一詞並不被識別為 cmdlet、函式、腳本檔案或可操作程式的名稱。 請檢查名稱的拼寫,或者如果包含路徑,請確認路徑是否正確,然後再試一次。

    欲了解更多關於 PowerShellGet 與 PackageManagement 模組需求的資訊,請參閱 Windows 中基於 REST 的 PowerShellGet

  • 如果您的用戶端 IP 位址在連線要求其間變更,則您可能會無法連線。 如果貴組織使用帶有多個 IP 位址 (SNAT) 池的來源網路位址轉譯,就會發生故障。 連線錯誤看起來會像這樣:

    對帶有 ShellId <ID 的> Windows 遠端 Shell 的請求失敗,因為該 shell 在伺服器上找不到。 可能的原因如下:指定的 ShellId 不正確,或者伺服器上已不存在 Shell。 提供正確的 ShellId 或建立新的 Shell,然後重試操作。

    要解決這個問題,請採取以下任一步驟:

    • 使用包含單一 IP 位址的 SNAT 池。
    • 強制使用特定 IP 位址連接安全 & 合規 PowerShell 端點。