Connect-ExchangeOnline

此 Cmdlet 僅適用于 Exchange Online PowerShell 模組。 如需詳細資訊,請參閱關於 Exchange Online PowerShell 模組

使用 Exchange Online PowerShell 模組中的 Connect-ExchangeOnline Cmdlet,使用新式驗證連線到 Exchange Online PowerShell 或獨立Exchange Online Protection PowerShell。 此 Cmdlet 適用于具有或不使用多重要素驗證 (MFA) 的帳戶。

若要連線到安全 & 性合規性 PowerShell,請使用 Connect-IPPSSession Cmdlet。

如需下方<語法>一節中參數集的詳細資訊,請參閱 Exchange Cmdlet 語法

Syntax

Connect-ExchangeOnline
       [[-ConnectionUri] <String>]
       [[-AzureADAuthorizationEndpointUri] <String>]
       [[-ExchangeEnvironmentName] <ExchangeEnvironment>]
       [[-PSSessionOption] <PSSessionOption>]
       [[-DelegatedOrganization] <String>]
       [[-Prefix] <String>]
       [[-CommandName] <String[]>]
       [[-FormatTypeName] <String[]>]
       [-AccessToken <String>]
       [-AppId <String>]
       [-BypassMailboxAnchoring]
       [-Certificate <X509Certificate2>]
       [-CertificateFilePath <String>]
       [-CertificatePassword <SecureString>]
       [-CertificateThumbprint <String>]
       [-Credential <PSCredential>]
       [-Device]
       [-EnableErrorReporting]
       [-InlineCredential]
       [-LogDirectoryPath <String>]
       [-LogLevel <LogLevel>]
       [-ManagedIdentity]
       [-ManagedIdentityAccountId <String>]
       [-Organization <String>]
       [-PageSize <UInt32>]
       [-ShowBanner]
       [-ShowProgress <Boolean>]
       [-SigningCertificate <X509Certificate2>]
       [-SkipLoadingFormatData]
       [-TrackPerformance <Boolean>]
       [-UseMultithreading <Boolean>]
       [-UserPrincipalName <String>]
       [-UseRPSSession]
       [<CommonParameters>]

Description

此 Cmdlet 會建立與您Exchange Online組織的 PowerShell 連線。 您可以使用此 Cmdlet 在 Exchange Online PowerShell V3 模組中驗證 REST API 支援的 Cmdlet,也可以針對遠端 PowerShell Cmdlet (遠端 PowerShell Cmdlet) 的所有現有Exchange Online PowerShell Cmdlet 進行驗證。

如果您用來連線之帳戶的設定檔路徑包含特殊 PowerShell 字元 (例如,) , $ 則連線命令可能會失敗。 因應措施是使用設定檔路徑中沒有特殊字元的不同帳戶進行連線。

範例

範例 1

Connect-ExchangeOnline -UserPrincipalName chris@contoso.com

此範例會使用新式驗證連線到 Exchange Online PowerShell,無論 MFA) (是否使用多重要素驗證。 我們不會使用 UseRPSSession 參數,因此連線會使用 REST,而且不需要在本機電腦的 WinRM 中啟用基本驗證。

範例 2

Connect-ExchangeOnline -UserPrincipalName chris@contoso.com -UseRPSSession

此範例會使用新式驗證連線到 Exchange Online PowerShell,無論是否使用 MFA。 我們使用 UseRPSSession 參數,因此連線需要在本機電腦的 WinRM 中啟用基本驗證。

範例 3

Connect-ExchangeOnline -AppId <%App_id%> -CertificateThumbprint <%Thumbprint string of certificate%> -Organization "contoso.onmicrosoft.com"

此範例會使用憑證指紋連線到自動腳本案例中的 Exchange Online PowerShell。

範例 4

Connect-ExchangeOnline -AppId <%App_id%> -Certificate <%X509Certificate2 object%> -Organization "contoso.onmicrosoft.com"

此範例會使用憑證檔案連線到自動腳本案例中Exchange Online PowerShell。 此方法最適合在遠端電腦中儲存憑證並在執行時間擷取的案例。 例如,憑證會儲存在 Azure 金鑰保存庫中。

範例 5

Connect-ExchangeOnline -Device

在使用模組 2.0.4 版或更新版本的 PowerShell 7.0.3 或更新版本中,此範例會在沒有網頁瀏覽器的電腦上,于互動式腳本案例中連線到 Exchange Online PowerShell。

命令會傳回與工作階段綁定的 URL 和唯一代碼。 您需要在任何電腦上的瀏覽器中開啟該 URL,然後輸入唯一代碼。 當您在網頁瀏覽器中完成登入後,Powershell 7 視窗中的工作階段會透過一般 Azure AD 驗證流程進行驗證,而 Exchange Online Cmdlet 會在幾秒後匯入。

範例 6

Connect-ExchangeOnline -InlineCredential

在使用模組 2.0.4 版或更新版本的 PowerShell 7.0.3 或更新版本中,此範例會直接在 PowerShell 視窗中傳遞認證,以連線到互動式腳本案例中的 Exchange Online PowerShell。

參數

-AccessToken

注意:此參數可在模組的 3.1.0 版或更新版本中使用。

AccessToken 參數會指定用來連線至 ExchangeOnline 的 OAuth JSON Web 權杖 (JWT) 。

視存取權杖的類型而定,您必須搭配組織、DelegatedOrganization 或 UserPrincipalName 參數使用此參數。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-AppId

AppId 參數會指定服務主體的應用程式識別碼,該服務主體用於憑證式驗證 (CBA) 。 有效的值是應用程式識別碼的 GUID (服務主體) 。 例如,36ee4c6c-0812-40a2-b820-b22ebd02bce3

如需詳細資訊,請參閱Exchange Online PowerShell 模組中自動腳本的僅限應用程式驗證

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-AzureADAuthorizationEndpointUri

注意:如果您使用 ExchangeEnvironmentName 參數,則不需要使用 AzureADAuthorizationEndpointUri 或 ConnectionUri 參數。

AzureADAuthorizationEndpointUri 參數會指定可發出 OAuth2 存取權杖的 Azure AD 授權端點。 支援下列Exchange Online PowerShell 環境和相關值:

  • Microsoft 365 或 Microsoft 365 GCC:請勿使用此參數。 必要的值是 https://login.microsoftonline.com/common ,但這也是預設值,因此您不需要使用此參數。
  • Office 365德國:https://login.microsoftonline.de/common
  • Microsoft 365 GCC High 或 Microsoft 365 DoD: https://login.microsoftonline.us/common

如果您使用 UserPrincipalName 參數,則不需要在通常需要 AzureADAuthorizationEndpointUri 的環境中,針對 MFA 或同盟使用者使用 AzureADAuthorizationEndpointUri 參數, (需要 UserPrincipalName 或 AzureADAuthorizationEndpointUri;確定使用這兩個) 。

注意:MFA 驗證或同盟驗證不適用於由 21Vianet 運作Office 365。

Type:String
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-BypassMailboxAnchoring

BypassMailboxAnchoring 參數會略過信箱錨定提示的使用。 您不需要使用此參數指定值。

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-Certificate

Certificate 參數會指定用於憑證式驗證的憑證 (CBA) 。 有效的值是憑證的 X509Certificate2 物件值。

請勿將此參數與 CertificateFilePath 或 CertificateThumbprint 參數搭配使用。

如需 CBA 的詳細資訊,請參閱Exchange Online PowerShell 模組中自動腳本的僅限應用程式驗證

Type:X509Certificate2
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-CertificateFilePath

CertificateFilePath 參數會指定用於 CBA 的憑證。 有效的值是憑證檔案的完整公用路徑。 使用 CertificatePassword 參數搭配此參數。

請勿將此參數與 Certificate 或 CertificateThumbprint 參數搭配使用。

如需 CBA 的詳細資訊,請參閱Exchange Online PowerShell 模組中自動腳本的僅限應用程式驗證

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-CertificatePassword

當您使用 CertificateFilePath 參數來識別用於 CBA 的憑證時,CertificatePassword 參數會指定開啟憑證檔案所需的密碼。

您可以使用下列方法作為此參數的值:

  • (ConvertTo-SecureString -String '<password>' -AsPlainText -Force).
  • 執行此命令之前,請先將密碼儲存為變數 (例如 $password = Read-Host "Enter password" -AsSecureString ,) ,然後使用變數 ($password) 值。
  • (Get-Credential).password 當您執行此命令時,系統會提示您安全地輸入密碼。

如需 CBA 的詳細資訊,請參閱Exchange Online PowerShell 模組中自動腳本的僅限應用程式驗證

注意:使用 ConvertTo-SecureString 命令在本機儲存憑證的密碼,會使自動化案例的安全連線方法目的失敗。 使用 Get-Credential 命令來提示您安全地輸入憑證密碼,並不適用于自動化案例。 換句話說,實際上沒有自動化 安全的方式可以使用本機憑證進行連線。

Type:SecureString
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-CertificateThumbprint

CertificateThumbprint 參數會指定用於 CBA 的憑證。 有效的值是憑證的指紋值。 例如,83213AEAC56D61C97AEE5C1528F4AC5EBA7321C1

請勿將此參數與 Certificate 或 CertificateFilePath 參數搭配使用。

注意:只有 Microsoft Windows 才支援 CertificateThumbprint 參數。

如需 CBA 的詳細資訊,請參閱Exchange Online PowerShell 模組中自動腳本的僅限應用程式驗證

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-CommandName

CommandName 參數會指定要匯入會話的以逗號分隔的命令清單。 針對使用一組特定 Cmdlet 的應用程式或腳本,請使用此參數。 減少會話中的 Cmdlet 數目有助於改善效能,並減少應用程式或腳本的記憶體使用量。

Type:String[]
Position:6
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-ConnectionUri

注意:如果您使用 ExchangeEnvironmentName 參數,則不需要使用 AzureADAuthorizationEndpointUri 或 ConnectionUri 參數。

ConnectionUri 參數會指定遠端Exchange Online PowerShell 會話的連線端點。 支援下列Exchange Online PowerShell 環境和相關值:

  • Microsoft 365 或 Microsoft 365 GCC:請勿使用此參數。 必要的值是 https://outlook.office365.com/powershell-liveid/ ,但這也是預設值,因此您不需要使用此參數。
  • Office 365德國:https://outlook.office.de/PowerShell-LiveID
  • Office 365由 21Vianet 運作:https://partner.outlook.cn/PowerShell
  • Microsoft 365 GCC High: https://outlook.office365.us/powershell-liveID
  • Microsoft 365 DoD: https://webmail.apps.mil/powershell-liveID
Type:String
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-Credential

Credential 參數會指定用來連線到 Exchange Online PowerShell 的使用者名稱和密碼。 通常您會在指令碼中使用此參數,或在您必須提供具有必要權限的其他認證時使用此參數。 請勿針對使用多重要素驗證 (MFA) 的帳戶使用此參數。

執行 Connect-ExchangeOnline 命令之前,請先將使用者名稱和密碼儲存在變數 (例如 $UserCredential = Get-Credential ,) 。 然後,使用此參數的變數名稱 ($UserCredential) 。

Connect-ExchangeOnline命令完成之後,就會清空變數中的密碼金鑰。

若要指定憑證檔案的密碼,請勿使用此參數;請改用 CertificatePassword 參數。

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-DelegatedOrganization

DelegatedOrganization 參數會指定您想要管理的客戶組織 (例如,contosoelectronics.onmicrosoft.com) 。 只有在客戶組織已透過 CSP 計畫同意您委派的管理時,此參數才能運作。

成功驗證之後,此會話中的 Cmdlet 會對應至客戶組織,而此會話中的所有作業都會在客戶組織上完成。

注意:使用委派組織的主要 .onmicrosoft.com 網域作為此參數的值。

Type:String
Position:4
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-Device

注意:此參數僅適用于模組 2.0.4 版或更新版本,且僅適用于 PowerShell 7。

裝置交換器通常用於沒有網頁瀏覽器的電腦上。 您不需要使用此參數指定值。

使用此參數會產生包含 URL https://microsoft.com/devicelogin 和唯一程式碼的螢幕上訊息。 在具有網頁瀏覽器和網際網路存取權的任何其他裝置上,開啟 URL,輸入唯一的程式碼,然後在後續頁面中輸入您的認證。

如果您的登入成功,PowerShell 連線會繼續。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-EnableErrorReporting

EnableErrorReporting 參數會指定是否啟用錯誤報表。 您不需要使用此參數指定值。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-ExchangeEnvironmentName

ExchangeEnvironmentName 會指定Exchange Online環境,而不需要使用 AzureADAuthorizationEndpointUri 和 ConnectionUri 參數。 支援下列Exchange Online PowerShell 環境:

  • Microsoft 365 或 Microsoft 365 GCC:請勿使用此參數。 必要的值是 O365Default ,但這也是預設值,因此您不需要使用此參數。
  • Office 365德國:O365GermanyCloud
  • Office 365由 21Vianet 運作:O365China
  • Microsoft 365 GCC High: O365USGovGCCHigh
  • Microsoft 365 DoD: O365USGovDoD
Type:ExchangeEnvironment
Position:2
Default value:O365Default
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-FormatTypeName

FormatTypeName 參數會指定 Cmdlet 的輸出格式。

Type:String[]
Position:7
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-InlineCredential

注意:此參數僅適用于模組 2.0.4 版或更新版本,且僅適用于 PowerShell 7。

InlineCredential 參數會指定是否要直接在Windows PowerShell視窗中傳遞認證。 您不需要使用此參數指定值。

此參數類似于 Credential 參數,但已新增安全性。 InlineCredential 參數不需要您將認證儲存在本機腳本中,而且您可以直接在互動式 PowerShell 會話中輸入認證。

此參數不適用於使用 MFA 的帳戶。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-LogDirectoryPath

LogDirectoryPath 參數會指定記錄檔的位置。 預設位置是 %TMP%\EXOCmdletTelemetry\EXOCmdletTelemetry-yyyymmdd-hhmmss.csv

如果您指定包含空格的自訂位置和檔案名,請將值括在引號 (「) 。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-LogLevel

LogLevel 參數會指定記錄層級。 有效值為 Default 和 All。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-ManagedIdentity

ManagedIdentity 參數會指定您使用受控識別進行連線。 您不需要使用此參數指定值。

受控識別連線目前支援下列類型的 Azure 資源:

  • Azure 自動化 Runbook
  • Azure 虛擬機器
  • Azure 虛擬機器擴展集
  • Azure Functions

您必須搭配 Organization 參數使用此參數。

針對使用者指派的受控識別,您也必須搭配 ManagedIdentityAccountId 參數使用此參數。

如需使用受控識別連線的詳細資訊,請參閱使用 Azure 受控識別連線到 Exchange Online PowerShell

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-ManagedIdentityAccountId

ManagedIdentityAccountId 參數會指定您用來連線的使用者指派受控識別。 此參數的有效值是服務主體的應用程式識別碼 (GUID) ,對應至 Azure 中使用者指派的受控識別。

您必須搭配組織參數和 ManagedIdentity 參數使用此參數。

如需使用受控識別連線的詳細資訊,請參閱使用 Azure 受控識別連線到 Exchange Online PowerShell

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-Organization

當您使用 CBA 或受控識別連線時,Organization 參數會指定組織。 您必須使用組織的主要 .onmicrosoft.com 網域作為此參數的值。

如需使用 CBA 連線的詳細資訊,請參閱Exchange Online PowerShell 模組中自動腳本的僅限應用程式驗證

如需使用受控識別連線的詳細資訊,請參閱使用 Azure 受控識別連線到 Exchange Online PowerShell

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-PageSize

PageSize 參數會指定每頁的顯示項目數上限。 此參數的有效輸入是 1 與 1000 之間的整數。 預設值為 1000。

Type:UInt32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-Prefix

Prefix 參數會指定文字值,以在您連線時加入Exchange Online PowerShell Cmdlet 的名稱。 例如,當您針對這個參數使用 Contoso 值時,Get-InboundConnector會變成Get-ContosoInboundConnector。

  • 前置詞值不能包含空格或特殊字元,例如底線或星號。
  • 您無法使用前置詞值 EXO。 該值會保留給模組內建的九個獨佔 Get-EXO* Cmdlet。
  • Prefix 參數只會影響匯入Exchange Online Cmdlet 名稱。 它不會影響模組內建的 Cmdlet 名稱 (例如 Disconnect-ExchangeOnline) 。
Type:String
Position:5
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-PSSessionOption

PSSessionOption 參數會指定要在連線中用來Exchange Online的 PowerShell 會話選項。 只有當您在相同的命令中也使用 UseRPSSession 參數時,此參數才能運作。

New-PSSessionOption 命令的輸出儲存在變數 (例如 $PSOptions = New-PSSessionOption <Settings> ,) ,並使用變數名稱作為此參數的值 (例如 $PSOptions ,) 。

Type:PSSessionOption
Position:3
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-ShowBanner

ShowBanner 參數會顯示或隱藏您執行 Connect-ExchangeOnline 時顯示的橫幅訊息。 您不需要使用此參數指定值。

  • 若要顯示橫幅,您不需要使用此參數 (預設會顯示橫幅) 。
  • 若要隱藏橫幅,請使用下列確切語法: -ShowBanner:$false
Type:SwitchParameter
Position:Named
Default value:$true
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-ShowProgress

ShowProgress 參數會指定當您連接時,是否要顯示或隱藏已匯入 Cmdlet 的進度列。 有效值為:

  • $true:顯示進度列。 這是預設值。
  • $false:目前,此值沒有任何作用。
Type:Boolean
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-SigningCertificate

注意:此參數可在模組的 3.2.0 版或更新版本中使用。

SigningCertificate 參數會指定用來簽署格式檔案 (*的用戶端憑證。format.ps1xml) 或腳本模組檔案 (.psm1) Connect-ExchangeOnline建立的暫存模組中。

這個參數的有效值是包含憑證的變數,或是取得憑證的命令或運算式。

若要尋找憑證,請使用 Microsoft.PowerShell.Security 模組中的 Get-PfxCertificate Cmdlet,或在憑證 (Cert:) 磁片磁碟機中使用 Get-ChildItem Cmdlet。 如果憑證無效或沒有足夠的授權,命令將會失敗。

Type:X509Certificate2
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-SkipLoadingFormatData

SkipLoadingFormatData 參數可避免下載 REST API 連線的格式資料。 您不需要使用此參數指定值。

當您使用此參數時,任何 Exchange Cmdlet 的輸出都會未格式化。

此參數不適用於 UseRPSSession 參數。

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-TrackPerformance

TrackPerformance 參數會測量其他事件 (例如 CPU 負載和) 取用的記憶體。 有效值為:

  • $true:已啟用效能追蹤。
  • $false:已停用效能追蹤。 這是預設值。

只有在啟用記錄時才可使用這個參數。

Type:Boolean
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-UseMultithreading

UseMultithreading 參數會指定要在 Exchange Online PowerShell 模組中停用或啟用多執行緒處理。 有效值為:

  • $true:啟用多執行緒。 這是預設值。
  • $false:停用多執行緒。 此值會降低模組中九個獨佔 Get-EXO* Cmdlet 的效能。
Type:Boolean
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-UserPrincipalName

UserPrincipalName 參數會指定您要用來連線 (的帳戶, navin@contoso.onmicrosoft.com 例如,) 。 使用此參數可讓您在系統提示您輸入密碼) (,略過在新式驗證認證提示中輸入使用者名稱。

如果您使用 UserPrincipalName 參數,則不需要在通常需要 AzureADAuthorizationEndpointUri 的環境中,針對 MFA 或同盟使用者使用 AzureADAuthorizationEndpointUri 參數, (需要 UserPrincipalName 或 AzureADAuthorizationEndpointUri;確定使用這兩個) 。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online

-UseRPSSession

UseRPSSession 參數可讓您使用傳統遠端 PowerShell 存取所有 Cmdlet 來連線到 Exchange Online PowerShell。 您不需要使用此參數指定值。

此參數需要在本機電腦的 WinRM 中啟用基本驗證。 如需詳細資訊, 請參閱在 WinRM 中開啟基本驗證

如果您未使用此參數,就不需要 WinRM 中的基本驗證。

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Online