本文提供如何使用 Exchange Online PowerShell 模組(含多重驗證 (多重驗證) MFA )連接安全 & 與合規 PowerShell 的教學。
Exchange Online PowerShell 模組使用現代認證連接 PowerShell Exchange Online 安全 & 合規 PowerShell。 欲了解更多關於 Exchange Online PowerShell 模組的資訊,請參閱「關於 Exchange Online PowerShell 模組」。
若要連接安全 & 合規 PowerShell 進行自動化,請參見 應用程式僅認證無人看管腳本。
開始之前有哪些須知?
安裝與使用該模組的要求詳述於「安裝與維護 Exchange Online PowerShell 模組」。
Exchange Online PowerShell V3 模組中的 REST API 連線需要 PowerShellGet 和 PackageManagement 模組。 欲了解更多資訊,請參閱 PowerShellGet 以支援 Windows 中基於 REST 的連線。
連線後,基於角色的存取控制 (RBAC) 會控制你有或沒有權限的指令匣和參數。 欲了解更多資訊,請參閱 Microsoft Defender 入口網站的權限及 Microsoft Purview 入口網站的權限。
步驟 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) 的使用者主體名稱格式。所需的 ConnectionUri 與 AzureADAuthorizationEndpointUri 值取決於您 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 參數。
-
ConnectionUri:沒有。 所需值
-
Microsoft 365 GCC High:
-
ConnectionUri:
https://ps.compliance.protection.office365.us/powershell-liveid/ -
AzureADAuthorizationEndpointUri:
https://login.microsoftonline.us/organizations*
-
ConnectionUri:
-
Microsoft 365 國防部:
-
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:
* AzureADAuthorizationEndpointUri 的值,結尾
/organizations的值只允許工作或學校帳號。 舊的 URI 值以 URI 結尾/common仍然有效,但可能會讓你在個人帳號和工作或學校帳號之間做選擇。 我們建議在企業情境下使用/organizationsURI 值,因為消費者帳戶應被排除。-
Microsoft 365 或 Microsoft 365 GCC:
如果你在代理伺服器後面,可以在連線指令中使用 PSSessionOption 參數。 首先,執行此指令:
$ProxyOptions = New-PSSessionOption -ProxyAccessType <Value>,其中 <值> 為IEConfig、WinHttpConfig、AutoDetect或 。 接著,使用PSSessionOption參數的值$ProxyOptions。 如需詳細資訊,請參閱 New-PSSessionOption。根據組織的性質,您可以在下一個步驟略過 UserPrincipalName 參數。 相反地,執行 Connect-IPPSSession 命令之後,請輸入使用者名稱和密碼,或選取儲存的認證。 如果無法執行,則需要使用 UserPrincipalName 參數。
如果您未使用 MFA,您應該可以使用 Credential 參數,而非 UserPrincipalName 參數。 首先,執行命令
$Credential = Get-Credential,輸入您的使用者名稱和密碼,然後使用 Credential 參數的變數名稱 (-Credential $Credential)。 如果無法執行,則需要使用 UserPrincipalName 參數。
透過互動式登入提示連接安全 & 合規 PowerShell
以下範例可在 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
在開啟的登入視窗中輸入密碼,然後選擇 登入。
注意事項
在 PowerShell 7 中,預設使用瀏覽器單點登入 (SSO) ,因此登入提示會在預設網頁瀏覽器中開啟,而非獨立對話框。
僅限多重驗證:驗證碼會根據您帳戶設定的回應選項產生並傳送,例如簡訊或裝置) 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 端點。