连接 Exchange Online PowerShell

Exchange Online PowerShell V2 模块(缩写为 EXO V2 模块)使用新式验证,并与新式验证 (MFA) 一起用于连接到 Microsoft 365 中的所有与 Exchange 相关的 PowerShell 环境:Exchange Online PowerShell、安全与合规 PowerShell 和独立的 Exchange Online Protection (EOP) PowerShell。 有关 EXO V2 模块的详细信息,请参阅关于 Exchange Online PowerShell V2 模块

本主题包含有关如何使用 EXO V2 模块通过或不通过 MFA 连接到 Exchange Online PowerShell 的说明。

若要使用最终将弃用的较旧、安全性较低的远程 PowerShell 连接说明,请参阅基本身份验证 - 连接到 Exchange Online PowerShell

若要使用较旧的 Exchange Online 远程 PowerShell 模块通过 MFA 连接到 Exchange Online PowerShell,请参阅 V1 模块 - 使用 MFA 连接到 Exchange Online PowerShell。 请注意,模块的此旧版本最终将被停用。

开始前,有必要了解什么?

  • 安装和维护 EXO V2 模块中介绍了安装和使用 EXO V2 模块的要求。 本主题中的其余说明均假设你已安装该模块。

  • 如果你的组织是本地 Exchange,并且你有适用于 Exchange Online Protection (EOP) 的 Exchange 企业 CAL 服务许可证,则 EOP PowerShell 连接说明与本主题所述的 Exchange Online PowerShell 相同。

Tip

是否有任何疑问? 请在 Exchange Online 论坛中提问。

使用 MFA 和新式身份验证连接到 Exchange Online PowerShell

如果你的帐户使用多重身份验证,请使用本节中的步骤。 否则,请跳转到使用新式身份验证连接到 Exchange Online PowerShell一节。

  1. 在 Windows PowerShell 窗口中,通过运行以下命令加载 EXO V2 模块:

    Import-Module ExchangeOnlineManagement
    

    注意:如果已 安装 EXO V2 模块,则上一个命令将按写明的方式工作。

  2. 需要运行的命令使用以下语法:

    Connect-ExchangeOnline -UserPrincipalName <UPN> -ShowProgress $true [-ExchangeEnvironmentName <Value>] [-DelegatedOrganization <String>] [-PSSessionOption $ProxyOptions]
    
    • <UPN> 是采用用户主体名称格式的帐户(例如 navin@contoso.com)。
    • 如果使用 ExchangeEnvironmentName 参数,则无需使用 ConnectionUriAzureADAuthorizationEndPointUrl 参数。 有关详细信息,请参阅 Connect-ExchangeOnline 中的参数说明。
    • DelegatedOrganization 参数指定要作为授权的 Microsoft 合作伙伴管理的客户组织。 有关详细信息,请参阅合作伙伴
    • 如果你使用代理服务器,请先运行此命令:$ProxyOptions = New-PSSessionOption -ProxyAccessType <Value>,其中 <Value> 是 IEConfigWinHttpConfigAutoDetect。 然后,使用 PSSessionOption 参数和值 $ProxyOptions。 有关详细信息,请参阅 New-PSSessionOption

    此示例连接到 Microsoft 365 或 Microsoft 365 GCC 组织中的 Exchange Online PowerShell

    Connect-ExchangeOnline -UserPrincipalName navin@contoso.com -ShowProgress $true
    

    此示例连接到 Office 365 Germany 组织中的 Exchange Online PowerShell

    Connect-ExchangeOnline -UserPrincipalName lukas@fabrikam.de -ShowProgress $true -ExchangeEnvironmentName O365GermanyCloud
    

    此示例连接到 Microsoft GCC High 组织中的 Exchange Online PowerShell

    Connect-ExchangeOnline -UserPrincipalName laura@blueyonderairlines.us -ShowProgress $true -ExchangeEnvironmentName O365USGovGCCHigh
    

    此示例连接到 Microsoft 365 DoD 组织中的 Exchange Online PowerShell

    Connect-ExchangeOnline -UserPrincipalName julia@adatum.mil -ShowProgress $true -ExchangeEnvironmentName O365USGovDoD
    

    此示例连接到 Exchange Online PowerShell 以管理另一个租户

    Connect-ExchangeOnline -UserPrincipalName navin@contoso.com -ShowProgress $true -DelegatedOrganization adatum.onmicrosoft.com
    

有关详细的语法和参数信息,请参阅 Connect-ExchangeOnline

Note

确保在完成后断开与远程 PowerShell 会话的连接。如果没有断开会话就关闭 Windows PowerShell 窗口,可能会用完您可用的所有远程 PowerShell 会话,并且将需要等待会话过期。若要断开远程 PowerShell 会话,请运行以下命令。

Disconnect-ExchangeOnline

使用新式身份验证连接到 Exchange Online PowerShell

如果你的帐户未使用多重身份验证,请使用本节中的步骤。

  1. 在 Windows PowerShell 窗口中,通过运行以下命令加载 EXO V2 模块:

    Import-Module ExchangeOnlineManagement
    

    注意:如果已 安装 EXO V2 模块,则上一个命令将按写明的方式工作。

  2. 运行以下命令:

    Note

    可跳过此步骤,并忽略下一步中 凭据 参数,在运行 Connect-ExchangeOnline 命令后,系统会提示你输入用户名和密码。 如果忽略 凭据 参数,并在下一步中包括 UserPrincipalName 参数,则在运行 Connect- ExchangeOnline 命令后,系统将只提示你输入密码。

    $UserCredential = Get-Credential
    

    在出现的 Windows PowerShell 凭据请求 对话框中,键入工作或学校帐户用户名和密码,再单击 确定

  3. 需要运行的最后一个命令使用以下语法:

    Connect-ExchangeOnline [-Credential $UserCredential] -ShowProgress $true [-ShowBanner:$false] [-ExchangeEnvironmentName <Value>] [-DelegatedOrganization <String>] [-PSSessionOption $ProxyOptions]
    
    • 如果使用 ExchangeEnvironmentName 参数,则无需使用 ConnectionUriAzureADAuthorizationEndPointUrl 参数。 有关详细信息,请参阅 Connect-ExchangeOnline 中的参数说明。
    • DelegatedOrganization 参数指定要作为授权的 Microsoft 合作伙伴管理的客户组织。 有关详细信息,请参阅合作伙伴
    • 如果你在代理服务器后面,则将 New-PSSessionOption cmdlet 的输出存储在一个变量中(例如$ProxyOptions = New-PSSessionOption -ProxyAccessType <Value> [-ProxyAuthentication <Value>] [-ProxyCredential <Value>])。 然后,将 PSSessionOption 参数的值设为变量($ProxyOptions)。

    连接到 Microsoft 365 或 Microsoft 365 GCC 组织中的 Exchange Online PowerShell

    Connect-ExchangeOnline -Credential $UserCredential -ShowProgress $true
    

    连接到 Office 365 Germany 组织中的 Exchange Online PowerShell

    Connect-ExchangeOnline -Credential $UserCredential -ShowProgress $true -ExchangeEnvironmentName O365GermanyCloud
    

    连接到由世纪互联运营的 Office 365 组织中的 Exchange Online PowerShell

    Connect-ExchangeOnline -Credential $UserCredential -ShowProgress $true -ExchangeEnvironmentName O365China
    

    连接到 Microsoft 365 GCC High 组织中的 Exchange Online PowerShell

    Connect-ExchangeOnline -Credential $UserCredential -ShowProgress $true -ExchangeEnvironmentName O365USGovGCCHigh
    

    连接到 Microsoft 365 DoD 组织中的 Exchange Online PowerShell

    Connect-ExchangeOnline -Credential $UserCredential -ShowProgress $true -ExchangeEnvironmentName O365USGovDoD
    

有关详细的语法和参数信息,请参阅 Connect-ExchangeOnline

Note

确保在完成后断开与远程 PowerShell 会话的连接。 如果在不断开会话连接的情况下关闭 Windows PowerShell 窗口,您可能会用完可用的所有远程 PowerShell 会话,然后您需要等待这些会话过期。 要断开远程 PowerShell 会话,请运行以下命令:

Disconnect-ExchangeOnline

如何判断是否生效?

Exchange Online cmdlet 将导入到你的本地 Windows PowerShell 会话,并通过进度条进行跟踪。 如果未收到任何错误,说明连接成功。 一个快速测试是运行 Exchange Online PowerShell cmdlet(例如 Get-Mailbox),然后查看结果。

如果收到错误,请查看以下要求:

  • 常见问题是密码错误。 重新运行上述三个步骤,并仔细查看所使用的用户名和密码。

  • 为有助于防止拒绝服务攻击 (DoS),你最多只能享受五次与Exchange Online 的开放远程 PowerShell 连接。

  • 必须为远程 PowerShell 启用用于连接的帐户。 有关详细信息,请参阅启用或禁用对 Exchange Online PowerShell 的访问

  • 需要在本地计算机和 Microsoft 365 之间打开 TCP 端口 80 通信。 它可能已经打开了,但是要考虑您的组织是否存在严格的 Internet 访问政策。

  • 如果你的组织使用联合身份验证,并且标识提供者 (IDP) 和/或安全令牌服务 (STS) 未公开提供,则无法使用联合帐户连接到 Exchange Online PowerShell。 而是应该在 Microsoft 365 中创建并使用非联合帐户来连接到 Exchange Online PowerShell。