连接 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 模块的要求。

    备注

    本文中的其余说明均假设你已安装该模块。

  • 连接后,你有权或无权访问的 cmdlet 和参数都将由基于角色的访问控制 (RBAC) 进行控制。 有关详细信息,请参阅 Exchange Online 中权限

    要查找运行特定 Exchange Online cmdlet 所需的权限,请参阅 查找运行任何 Exchange cmdlet 所需的权限

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

提示

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

使用带或不带 MFA 的新式验证连接到 Exchange Online PowerShell

这些连接说明使用新式验证,并处理或不使用多重身份验证 (MFA)。

注意:关于 PowerShell 7 中可用的其他登录方法,请参阅本主题后的 PowerShell 7 登录体验 部分。

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

    Import-Module ExchangeOnlineManagement
    

    注意:

    • 如果已安装 EXO V2 模块,则上一个命令将按书面工作。
    • 可以跳过此步骤,在没有先加载模块的情况下 Connect-ExchangeOnline 运行它。
  2. 需要运行的命令使用以下语法:

    Connect-ExchangeOnline -UserPrincipalName <UPN> [-ShowBanner:$false] [-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
    • 运行 Connect-ExchangeOnline 命令后,经常可以省略下一步中的 UserPrincipalName 参数,输入用户名和密码。 如果不起作用,则需要使用参数 UserPrincipalName 参数。
    • 如果不使用 MFA,则通常可以使用 凭据参数 而不是 UserPrincipalName 参数。 首先,运行命令 $Credential = Get-Credential,输入用户名和密码,然后使用 凭据参数 ( ) 的变量-Credential $Credential。 如果不起作用,则需要使用参数 UserPrincipalName 参数。

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

    Connect-ExchangeOnline -UserPrincipalName navin@contoso.com
    

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

    Connect-ExchangeOnline -UserPrincipalName lukas@fabrikam.de -ExchangeEnvironmentName O365GermanyCloud
    

    此示例连接到 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
    

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

    Connect-ExchangeOnline -UserPrincipalName navin@contoso.com -DelegatedOrganization adatum.onmicrosoft.com
    
  3. 在打开的登录窗口中,输入密码,然后单击“登录”。

    在“登录您的帐户”窗口中输入密码。

  4. 仅 MFA:根据为帐户配置的回复选项(例如,你的设备上短信或 Microsoft Authenticator 应用)生成并传递验证码。

    在打开的验证窗口中,输入验证码,然后单击 验证

    在“登录您的账户”窗口中输入验证码。

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

备注

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

Disconnect-ExchangeOnline

PowerShell 7 登录体验

本部分介绍 PowerShell 7 中 EXO V2 模块 2.0.4 或更高版本中所提供的登录体验。

有关 PowerShell 7 中 EXO V2 模块支持的操作系统详细信息,请参阅 EXO V2 模块支持的操作系统

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

使用基于浏览器的单一登录的交互式脚本

基于浏览器的单一登录 (SSO) 是 PowerShell 7 中的默认登录方法。 Connect-ExchangeOnline 命令将在默认浏览器中打开 Azure AD 登录页面。 输入凭据后,较旧的 Exchange Online cmdlet 和 EXO V2 模块 cmdlets 可在生成的 PowerShell 会话中使用。

如果在命令中使用 UserPrincipalName 参数,则在浏览器的登录页面上使用 UPN 值。

Connect-ExchangeOnline -UserPrincipalName navin@contoso.onmicrosoft.com

基于设备的登录

当没有浏览器时,使用基于设备的登录(因此,无法看到登录页面):

Connect-ExchangeOnline -Device

命令返回一个与会话绑定的URL和唯一代码。 需要在任意计算机上的浏览器中打开 URL,然后输入唯一代码。 在 Web 浏览器中完成登录后,Powershell 7 窗口中的会话通过常规 Azure AD 身份验证流程进行身份验证,并在数秒钟后导入 Exchange Online cmdlet。

内嵌式证书

可以直接在 PowerShell 窗口中输入凭证,而不需要转到浏览器进行SSO。

备注

此方法不适用于使用多重身份验证的账户。

此运营商改进了 凭据 参数,因为你不需要在脚本中本地存储凭据,并且你可以直接在交互式 PowerShell 会话中输入凭据。

Connect-ExchangeOnline -InlineCredential

如何判断是否生效?

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

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

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

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

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

  • TCP 端口 80 流量需在你的本地计算机和 Microsoft 365 之间打开。它可能打开,但是如果你的组织具有限制性 Internet 访问策略,则需考虑。

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