连接到安全与合规中心 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 连接到安全与合规中心 PowerShell 的说明。

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

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

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

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

使用 MFA 和新式身份验证连接到安全与合规 PowerShell

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

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

    Import-Module ExchangeOnlineManagement
    

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

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

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

    此示例连接到 Microsoft 365 或 Microsoft 365 GCC 组织中的安全与合规中心 PowerShell

    Connect-IPPSSession -UserPrincipalName navin@contoso.com
    

    此示例连接到 Office 365 Germany 组织中的安全与合规中心 PowerShell

    Connect-IPPSSession -UserPrincipalName lukas@fabrikam.de -ConnectionUri https://ps.compliance.protection.outlook.de/PowerShell-LiveID
    

    此示例连接到 Microsoft GCC High 组织中的安全与合规中心 PowerShell

    Connect-IPPSSession -UserPrincipalName -ConnectionUri https://ps.compliance.protection.office365.us/powershell-liveid/
    

    此示例连接到 Microsoft 365 DoD 组织中的安全与合规中心 PowerShell

    Connect-IPPSSession -UserPrincipalName -ConnectionUri https://l5.ps.compliance.protection.office365.us/powershell-liveid/
    

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

备注

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

Disconnect-ExchangeOnline

使用新式身份验证连接到安全与合规中心 PowerShell

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

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

    Import-Module ExchangeOnlineManagement
    

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

  2. 运行以下命令:

    备注

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

    $UserCredential = Get-Credential
    

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

    注意: 完成 Connect-IPPSSession 命令后,将清空 $UserCredential 中的密码密钥。

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

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

    此示例连接到 Microsoft 365 或 Microsoft 365 GCC 组织中的安全与合规中心 PowerShell

    Connect-IPPSSession -Credential $UserCredential
    

    此示例连接到 Office 365 Germany 组织中的安全与合规中心 PowerShell

    Connect-IPPSSession -Credential $UserCredential -ConnectionUri https://ps.compliance.protection.outlook.de/ -AzureADAuthorizationEndpointUri https://login.microsoftonline.de/common
    

    此示例连接到 Microsoft GCC High 组织中的安全与合规中心 PowerShell

    Connect-IPPSSession -Credential $UserCredential -ConnectionUri https://ps.compliance.protection.office365.us/powershell-liveid/ -AzureADAuthorizationEndpointUri https://login.microsoftonline.us/common
    

    此示例连接到 Microsoft 365 DoD 组织中的安全与合规中心 PowerShell

    Connect-IPPSSession -Credential $UserCredential -ConnectionUri https://l5.ps.compliance.protection.office365.us/powershell-liveid/ -AzureADAuthorizationEndpointUri https://login.microsoftonline.us/common
    

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

备注

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

Disconnect-ExchangeOnline

如何判断是否生效?

安全与合规中心 cmdlet 现已导入到你的本地 Windows PowerShell 会话并由进度条跟踪。 如果未收到任何错误,说明连接成功。 快速测试就是运行安全与合规中心 cmdlet(例如 Get-RetentionCompliancePolicy),然后查看结果。

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

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

  • 为有助于防止拒绝服务攻击 (DoS),你最多只能拥有5次机会与安全与合规中心的开放远程 PowerShell 连接。

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

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

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

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

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