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 语法。
语法
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>]
说明
此 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
此示例使用新式身份验证(无论是否使用 MFA)连接到 Exchange Online PowerShell。 我们使用 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
在 PowerShell 7.0.3 或更高版本中使用 2.0.4 或更高版本的模块,此示例在没有 Web 浏览器的计算机上的交互式脚本方案中连接到 Exchange Online PowerShell。
命令返回一个与会话绑定的URL和唯一代码。 需要在任意计算机上的浏览器中打开 URL,然后输入唯一代码。 在 Web 浏览器中完成登录后,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) 。
根据访问令牌的类型,需要将此参数与 Organization、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 参数指定基于证书的身份验证中使用的服务主体的应用程序 ID, (CBA) 。 有效值是应用程序 ID (服务主体) 的 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 参数,则无需在通常需要它的环境中对 MFA 或联合用户使用 AzureADAuthorizationEndpointUri 参数 (UserPrincipalName 或 AzureADAuthorizationEndpointUri;可以使用这两个) 。
注意:世纪互联运营的 Office 365不提供 MFA 身份验证或联合身份验证。
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
CertificatePassword 参数指定使用 CertificateFilePath 参数标识用于 CBA 的证书时打开证书文件所需的密码。
可以使用以下方法作为此参数的值:
(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 参数一起使用。
注意:CertificateThumbprint 参数仅在 Microsoft Windows 中受支持。
有关 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世纪互联运营:
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 参数指定用于连接到 PowerShell Exchange Online 的用户名和密码。 通常情况下,您可以在脚本中或在需要提供具有所需权限的不同凭据时使用此参数。 不要对使用多重身份验证 (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 中可用。
设备开关通常用于没有 Web 浏览器的计算机上。 不必为此开关指定值。
使用此开关可生成包含 URL https://microsoft.com/devicelogin 和唯一代码的屏幕消息。 在具有 Web 浏览器和 Internet 访问的任何其他设备上,打开 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世纪互联运营:
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 参数指定用于连接的用户分配的托管标识。 此参数的有效值是与 Azure 中用户分配的托管标识相对应的服务主体的应用程序 ID (GUID) 。
必须将此参数与 Organization 参数和 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。
- Prefix 值不能包含空格或特殊字符,如下划线或星号。
- 不能使用前缀值 EXO。 此值保留给模块中内置的 9 个独占 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 参数指定要在连接中使用的 PowerShell 会话选项,以Exchange Online。 仅当在同一命令中使用 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,或使用证书中的 Get-ChildItem cmdlet (Cert:) 驱动器。 如果证书无效或没有足够的权限,则命令将失败。
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:禁用多线程处理。 此值将降低模块中 9 个独占 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 参数,则无需在通常需要它的环境中对 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 开关允许使用对所有 cmdlet 的传统远程 PowerShell 访问连接到 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 |