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