連線至 Exchange Online PowerShell
本文包含如何使用 Exchange Online PowerShell 模組連線到 Exchange Online PowerShell 的指示,其中包含或不使用多重要素驗證 (MFA) 。
Exchange Online PowerShell 模組會使用新式驗證來連線到 Microsoft 365 中所有與 Exchange 相關的 PowerShell 環境:Exchange Online PowerShell、安全 & 性合規性 PowerShell,以及獨立Exchange Online Protection (EOP) PowerShell。 如需 Exchange Online PowerShell 模組的詳細資訊,請參閱關於 Exchange Online PowerShell 模組。
注意事項
2.0.5 版和更早版本稱為 Exchange Online PowerShell V2 模組 (縮寫為 EXO V2 模組) 。 3.0.0 版和更新版本稱為 Exchange Online PowerShell V3 模組 (縮寫為 EXO V3 模組) 。
若要連線到 Exchange Online PowerShell 以進行自動化,請參閱自動腳本的僅限應用程式驗證和使用 Azure 受控識別連線到 Exchange Online PowerShell。
若要從 C# 連線到 Exchange Online PowerShell,請參閱使用 C# 連線到 Exchange Online PowerShell。
開始之前有哪些須知?
安裝和使用模組的需求會在安裝和維護Exchange Online PowerShell 模組中說明。
注意事項
如果您使用 EXO V3 模組 (v3.0.0 或更新版本) ,而且您未在Connect-ExchangeOnline命令中使用UseRPSSession參數,則只能存取 REST API Cmdlet。 如需詳細資訊,請參閱) 的 EXO V3 模組更新。
Exchange Online PowerShell 中的遠端 PowerShell 支援將會過時。 如需詳細資訊,請參閱在 Exchange Online PowerShell 中宣佈淘汰遠端 PowerShell (RPS) 通訊協定。
連線後,您有權或無權存取的 cmdlet 和參數由角色型存取控制 (RBAC) 控制。 如需詳細資訊,請參閱 Exchange Online 中的權限。
若要尋找在組織中執行特定的 Exchange Online cmdlet 權限,請參閱 尋找執行任何 Exchange 指令程式所需的權限。
提示
有問題嗎? 在 Exchange Online 討論區中提問。
步驟 1:載入 Exchange Online PowerShell 模組
注意事項
如果模組已安裝,您通常可以略過此步驟並執行 Connect-ExchangeOnline, 而不需要先手動載入模組。
安裝模組之後,請開啟 PowerShell 視窗,然後執行下列命令來載入模組:
Import-Module ExchangeOnlineManagement
步驟 2:連線和驗證
注意事項
如果您用來連線之帳戶的設定檔路徑包含特殊 PowerShell 字元 (例如,) , $
則連線命令可能會失敗。 因應措施是使用設定檔路徑中沒有特殊字元的不同帳戶進行連線。
您需要執行的命令會使用下列語法:
Connect-ExchangeOnline -UserPrincipalName <UPN> [-UseRPSSession] [-ExchangeEnvironmentName <Value>] [-ShowBanner:$false] [-DelegatedOrganization <String>] [-PSSessionOption $ProxyOptions]
如需詳細的語法和參數資訊,請參閱 Connect-ExchangeOnline。
附註:
< UPN >是使用者主體名稱格式的帳戶, (例如,
navin@contoso.onmicrosoft.com
) 。使用 (v3.0.0 或更新版本的 EXO V3 模組) ,如果您不使用 UseRPSSession 參數,則只會使用 REST API Cmdlet。 如需詳細資訊,請參閱) 的 EXO V3 模組更新。
當您使用 ExchangeEnvironmentName 參數時,不需要使用 ConnectionUri 或 AzureADAuthorizationEndPointUrl 參數。 下表說明 ExchangeEnvironmentName 參數的一般值:
環境 值 Microsoft 365 或 Microsoft 365 GCC 不適用* Microsoft 365 GCC High O365USGovGCCHigh
Microsoft 365 DoD O365USGovDoD
Office 365 Germany O365GermanyCloud
由 21Vianet 運作的 Office 365 O365China
* 必要的值
O365Default
也是預設值,因此您不需要在 Microsoft 365 或 Microsoft 365 GCC 環境中使用 ExchangeEnvironmentName 參數。DelegatedOrganization 參數指定您要以授權的 Microsoft 合作夥伴的身份來管理的客戶組織。 如需詳細資訊,請參閱 本文稍後的連線範例。
如果您位於 Proxy 伺服器後方,您可以在連線命令中使用 PSSessionOption 參數,但前提是您也使用 UseRPSSession 參數。 首先,執行此命令:
$ProxyOptions = New-PSSessionOption -ProxyAccessType <Value>
,其中 < Value > 為IEConfig
、WinHttpConfig
或AutoDetect
。 然後,使用PSSessionOption參數的值$ProxyOptions
。 如需詳細資訊,請參閱 New-PSSessionOption。視組織的性質而定,您可能可以在連線命令中省略 UserPrincipalName 參數。 相反地,執行 Connect-ExchangeOnline 命令之後,請輸入使用者名稱和密碼,或選取儲存的認證。 如果無法執行,則需要使用 UserPrincipalName 參數。
如果您未使用 MFA,您應該可以使用 Credential 參數,而非 UserPrincipalName 參數。 首先,執行命令
$Credential = Get-Credential
,輸入您的使用者名稱和密碼,然後使用 Credential 參數的變數名稱 (-Credential $Credential
)。 如果無法執行,則需要使用 UserPrincipalName 參數。在 PowerShell 7 中使用模組需要 2.0.4 版或更新版本。
下列各節中的連線範例使用新式驗證,而且無法使用基本驗證。
使用互動式登入提示連線到 Exchange Online PowerShell
下列範例適用于具有或不含 MFA 的帳戶Windows PowerShell 5.1 和 PowerShell 7:
此範例會連線至 Microsoft 365 或 Microsoft 365 GCC 組織中的 Exchange Online PowerShell:
Connect-ExchangeOnline -UserPrincipalName navin@contoso.onmicrosoft.com
此範例會連線至 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
此範例會連線至Office 365 德國組織中的 Exchange Online PowerShell:
Connect-ExchangeOnline -UserPrincipalName lukas@fabrikam.de -ExchangeEnvironmentName O365GermanyCloud
在開啟的登入視窗中,輸入您的密碼,然後按一下 [登入]。
注意事項
在 PowerShell 7 中,預設會使用瀏覽器型單一登入 (SSO) ,因此登入提示會在您的預設網頁瀏覽器中開啟,而不是在獨立對話方塊中開啟。
僅限 MFA:系統會產生驗證碼並根據針對您的帳戶設定的回應選項 (例如,您的裝置上的簡訊或 Microsoft Authenticator 應用程式) 傳送。
在開啟的驗證視窗中,輸入驗證碼,然後按一下 [驗證]。
PowerShell 7 獨佔連線方法
在 PowerShell 7 中, 針對沒有 MFA 的帳戶,此範例會在 PowerShell 視窗內提示輸入認證:
Connect-ExchangeOnline -UserPrincipalName navin@contoso.onmicrosoft.com -InlineCredential
在具有或不含 MFA 之帳戶的 PowerShell 7 中,此範例會使用另一部電腦來驗證並完成連線。 一般而言,您會在沒有網頁瀏覽器的電腦上使用此方法, (使用者無法在 PowerShell 7 中輸入其認證) :
在您要連線的電腦上執行下列命令:
Connect-ExchangeOnline -Device
連線命令會在下列輸出等候:
若要登入,請使用網頁瀏覽器開啟頁面 https://microsoft.com/devicelogin ,並輸入程式碼 < XXXXXXXXX > 進行驗證。
<請注意 XXXXXXXXX 程式 > 代碼值。
在具有網頁瀏覽器和網際網路存取的任何其他裝置上,開 https://microsoft.com/devicelogin 啟並輸入 < 上一個步驟中的 XXXXXXXXX 代碼 > 值。
在產生的頁面上輸入您的認證。
在確認提示中,按一下 [ 繼續]。 下一則訊息應該表示成功,而且您可以關閉瀏覽器或索引標籤。
步驟 1 中的命令會繼續將您連線至 Exchange Online PowerShell。
連線到 Exchange Online PowerShell,而不需要登入提示 (自動腳本)
如需完整指示,請參閱PowerShell 和安全 & 性合規性 PowerShell 中自動腳本的僅限應用程式驗證Exchange Online。
在客戶組織中連線到 Exchange Online PowerShell
如需合作夥伴和客戶組織的詳細資訊,請參閱下列主題:
此範例會在下列案例中連線到客戶組織:
使用 CSP 帳戶連線到客戶組織。
使用 GDAP 連線到客戶組織。
以來賓使用者身分連線到客戶組織。
Connect-ExchangeOnline -UserPrincipalName navin@contoso.onmicrosoft.com -DelegatedOrganization adatum.onmicrosoft.com
使用受控識別連線到 Exchange Online PowerShell
如需詳細資訊,請參閱使用 Azure 受控識別連線到 Exchange Online PowerShell。
系統指派的受控識別:
Connect-ExchangeOnline -ManagedIdentity -Organization "cohovinyard.onmicrosoft.com"
使用者指派的受控識別:
Connect-ExchangeOnline -ManagedIdentity -Organization "constoso.onmicrosoft.com" -ManagedIdentityAccountId <ManagedIdentityAccountIdGuid>
步驟 3:當您完成時中斷連線
完成時,請務必中斷會話的連線。 如果您關閉 PowerShell 視窗而不中斷會話的連線,您可以用掉所有可供您使用的會話,而且您必須等候會話過期。 若要中斷會話的連線,請執行下列命令。
Disconnect-ExchangeOnline
若要在沒有確認提示的情況下以無訊息方式中斷連線,請執行下列命令:
Disconnect-ExchangeOnline -Confirm:$false
注意事項
如果您用來連線之帳戶的設定檔路徑包含特殊 PowerShell 字元,例如 $
(,) ,則中斷連線命令可能會失敗。 因應措施是使用設定檔路徑中沒有特殊字元的不同帳戶進行連線。
如何知道您已成功連線?
如果您未收到任何錯誤,表示您已成功連線。 快速測試是執行 Exchange Online PowerShell Cmdlet,例如Get-AcceptedDomain,並查看結果。
如果出現錯誤,請檢查下列需求:
密碼錯誤是常見的問題。 再次執行連線步驟,並密切注意您使用的使用者名稱和密碼。
為了協助防止拒絕服務 (DoS) 攻擊,當您使用UseRPSSession參數進行連線時,只能有五個開啟的連線Exchange Online PowerShell。
用來連接到的帳戶必須能夠使用遠端 PowerShell。 如需詳細資訊,請參閱啟用或停用 Exchange Online 的封存權。
必須在本機電腦與 Microsoft 365 之間開啟 TCP 連接埠 80 流量。 該連接埠可能已開啟,但必須考量您的組織是否有限制性網際網路存取原則。
如果組織使用同盟驗證,而您的身分識別提供者 (IDP) 和/或安全性權杖服務 (STS) 並未公開提供,您就無法使用同盟帳戶連線到 Exchange Online PowerShell。 請改為在 Microsoft 365 中建立並使用非同盟帳戶以連線至 Exchange Online PowerShell。
附錄:新舊連線方法的比較
本節會嘗試比較已由 Exchange Online PowerShell 模組取代的舊版連線方法。 基本驗證和 OAuth 權杖程式僅包含在歷程記錄參考中,不再支援。
不使用多重要素驗證進行連線
Exchange Online具有互動式認證提示的 PowerShell 模組:
Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.com
Exchange Online沒有互動式認證提示的 PowerShell 模組:
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) Connect-ExchangeOnline -Credential $o365cred
基本驗證:
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/ -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
具有 OAuth 權杖的 New-PSSession:
$oauthTokenAsPassword = ConvertTo-SecureString '<EncodedOAuthToken>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $oauthTokenAsPassword) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?BasicAuthToOAuthConversion=true -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
使用多重要素驗證進行連線
Exchange Online具有互動式認證提示的 PowerShell 模組:
Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.com
基本驗證:無法使用。
具有 OAuth 權杖的 New-PSSession:無法使用。
使用 CSP 帳戶連線到客戶組織
Exchange Online PowerShell 模組:
Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.com -DelegatedOrganization delegated.onmicrosoft.com
基本驗證:
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?DelegatedOrg=delegated.onmicrosoft.com&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
具有 OAuth 權杖的 New-PSSession:
$oauthTokenAsPassword = ConvertTo-SecureString '<EncodedOAuthToken>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $oauthTokenAsPassword) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/? DelegatedOrg=delegated.onmicrosoft.com&BasicAuthToOAuthConversion=true&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
使用 GDAP 連線到客戶組織
Exchange Online PowerShell 模組:
Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.com -DelegatedOrganization delegated.onmicrosoft.com
基本驗證:
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?DelegatedOrg=delegated.onmicrosoft.com&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
具有 OAuth 權杖的 New-PSSession:
$oauthTokenAsPassword = ConvertTo-SecureString '<EncodedOAuthToken>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $oauthTokenAsPassword) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/? DelegatedOrg=delegated.onmicrosoft.com&BasicAuthToOAuthConversion=true&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
以來賓使用者身分連線到客戶組織
Exchange Online PowerShell 模組:
Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.com -DelegatedOrganization delegated.onmicrosoft.com
基本驗證:
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?DelegatedOrg=delegated.onmicrosoft.com&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
具有 OAuth 權杖的 New-PSSession:
$oauthTokenAsPassword = ConvertTo-SecureString "<EncodedOAuthToken>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $oauthTokenAsPassword) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?DelegatedOrg=delegated.onmicrosoft.com&BasicAuthToOAuthConversion=true&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
連線以執行自動腳本
Exchange Online PowerShell 模組:
憑證指紋:
Connect-ExchangeOnline -CertificateThumbPrint "012THISISADEMOTHUMBPRINT" -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contoso.onmicrosoft.com"
Certificate 物件:
Connect-ExchangeOnline -Certificate <%X509Certificate2Object%> -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contoso.onmicrosoft.com"
憑證檔案:
Connect-ExchangeOnline -CertificateFilePath "C:\Users\navin\Desktop\automation-cert.pfx" -CertificatePassword (ConvertTo-SecureString -String "<Password>" -AsPlainText -Force) -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contoso.onmicrosoft.com"
如需詳細資訊,請參閱PowerShell 和安全 & 性合規性 PowerShell 中自動腳本的僅限應用程式驗證Exchange Online。
基本驗證:
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/ -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
具有 OAuth 權杖的 New-PSSession:
$oauthTokenAsPassword = ConvertTo-SecureString '<EncodedOAuthToken>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $oauthTokenAsPassword) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?BasicAuthToOAuthConversion=true&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@contoso.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
使用受控識別進行連線
Exchange Online PowerShell 模組:
系統指派的受控識別:
Connect-ExchangeOnline -ManagedIdentity -Organization "contoso.onmicrosoft.com"
使用者指派的受控識別:
Connect-ExchangeOnline -ManagedIdentity -Organization "contoso.onmicrosoft.com" -ManagedIdentityAccountId <UserAssignedManagedIdentityPrincipalIdValue>
基本驗證:無法使用。
具有 OAuth 權杖的 New-PSSession:無法使用。