连接到 Exchange Online Protection 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 Protection PowerShell 的说明。

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

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

  • 本文中的过程仅适用于没有 Exchange Online 邮箱的 Microsoft 365 组织。 例如,你有保护你的本地电子邮件环境的独立 EOP 订阅。 如果你的 Microsoft 365 订阅包含 Exchange Online 邮箱,则无法连接到 EOP PowerShell;相反,你将连接到 Exchange Online PowerShell

    如果你的组织是本地 Exchange,并且你有适用于 EOP 的 Exchange 企业 CAL 服务许可证,则 EOP PowerShell 连接说明与 Exchange Online PowerShell 相同。 使用连接到 Exchange Online PowerShell 中的 Exchange Online PowerShell 连接说明,而不使用本文中的说明。

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

  • 连接后,你有权或无权访问的 cmdlet 和参数由基于角色的访问控制 (RBAC) 来控制。有关详细信息,请参阅 独立 EOP 中的权限

提示

遇到问题?请在 Exchange Online Protection 论坛中寻求帮助。

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

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

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

    Import-Module ExchangeOnlineManagement
    

    备注

    如果已安装 EXO V2 模块,则上一个命令将按书面工作。

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

    Connect-IPPSSession -UserPrincipalName <UPN> [-ConnectionUri <URL>] [-AzureADAuthorizationEndPointUri <URL>] [-PSSessionOption $ProxyOptions]
    
    • <UPN> 是采用用户主体名称格式的帐户(例如 navin@contoso.com)。
    • 所需的 ConnectionUriAzureADAuthorizationEndPointUrl 值取决于 Microsoft 365 组织的特性。 有关详细信息,请参阅 Connect-IPPSSession 中的参数说明。
    • 如果你使用代理服务器,请先运行此命令:$ProxyOptions = New-PSSessionOption -ProxyAccessType <Value>,其中 <Value> 是 IEConfigWinHttpConfigAutoDetect。 然后,使用 PSSessionOption 参数和值 $ProxyOptions。 有关详细信息,请参阅 New-PSSessionOption

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

    Connect-IPPSSession -UserPrincipalName navin@contoso.com -ConnectionUri https://ps.protection.outlook.com/powershell-liveid/
    

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

备注

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

Disconnect-ExchangeOnline

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

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

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

    Import-Module ExchangeOnlineManagement
    

    备注

    如果已安装 EXO V2 模块,则上一个命令将按书面工作。

  2. 运行以下命令:

    备注

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

    $UserCredential = Get-Credential
    

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

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

    Connect-IPPSSession [-Credential $UserCredential] -ConnectionUri <URL> [-PSSessionOption $ProxyOptions]
    
    • 所需的 ConnectionUri 值取决于 Microsoft 365 组织的特性。 有关详细信息,请参阅 Connect-IPPSSession 中的参数说明。
    • 如果你在代理服务器后面,则将 New-PSSessionOption cmdlet 的输出存储在一个变量中(例如$ProxyOptions = New-PSSessionOption -ProxyAccessType <Value> [-ProxyAuthentication <Value>] [-ProxyCredential <Value>])。 然后,将 PSSessionOption 参数的值设为变量($ProxyOptions)。

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

    Connect-IPPSSession -Credential $UserCredential -ConnectionUri https://ps.protection.outlook.com/powershell-liveid/
    

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

备注

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

Disconnect-ExchangeOnline

如何知道操作成功?

将 Exchange Online Protection cmdlet 导入到本地 Windows PowerShell 会话,并通过进度栏对其进行跟踪。如果没有收到任何错误,即表示连接成功。要进行快速测试,可运行一个 Exchange Online Protection cmdlet(例如 Get-TransportRule),然后查看结果。

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

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

  • 为帮助防止拒绝服务攻击 (DoS),你最多只有五次机会来建立与 Exchange Online Protection 的开放远程 PowerShell 连接。

  • 你的本地计算机和 Microsoft 365 之间需要开放 TCP 端口 80 流量。它可能是开放的,但如果组织有限制性的互联网访问策略,则需要考虑到这一点。

  • 用于连接到 Exchange Online Protection PowerShell 的帐户必须表示为 EOP 邮件用户(手动创建或通过目录同步创建)。 如果该帐户在 Exchange 管理中心 (EAC) 的“收件人”>“联系人”上未显示为邮件用户,则你在尝试连接时会出现以下错误:

    Import-PSSession:在远程会话中运行 Get-Command 命令报告了以下错误:处理远程命令的数据失败,并显示以下错误消息:ShellId 为 <GUID> 的 Windows 远程 Shell 的请求失败,因为在服务器上找不到该 Shell。 可能的原因包括:指定的 ShellId 不正确或 shell 在服务器上不再存在。 提供正确的 ShellId 或创建新的 shell,然后重试操作。

  • 如果客户端 IP 地址在连接请求期间发生更改,则可能无法连接。 如果你的组织使用包含多个 IP 地址的源网络地址转换 (SNAT) 池,则可能会发生这种情况。 连接错误如下所示:

    ShellId 为 <ID> 的 Windows 远程 Shell 的请求失败,因为在服务器上找不到该 Shell。 可能的原因包括:指定的 ShellId 不正确或 shell 在服务器上不再存在。 提供正确的 ShellId 或创建新的 shell,然后重试操作。

    若要解决此问题,请使用包含单个 IP 地址的 SNAT 池,或强制使用特定 IP 地址连接到 Exchange Online Protection PowerShell 终结点。