基本身份验证 - 连接到 Exchange Online PowerShell

备注

由于基本身份验证方面的安全问题,本文中的连接说明最终将被弃用。 相反,应使用 Exchange Online PowerShell V2 模块(EXO V2 模块)连接到 Exchange Online PowerShell。 有关说明,请参阅连接 PowerShell Exchange Online

使用 Exchange Online PowerShell,可以从命令行管理 Exchange Online 设置。可以使用本地计算机上的 Windows PowerShell 创建到 Exchange Online 的远程 PowerShell 会话。只需执行简单的三个步骤:输入 Microsoft 365 凭据、提供所需的连接设置,然后将 Exchange Online cmdlet 导入本地 Windows PowerShell 会话。接下来,就可以开始使用了。

下面的介绍性视频介绍了如何连接到并使用 Exchange Online PowerShell:

使用 Exchange Online PowerShell

注意: 此视频适用于 Exchange Online PowerShell 和 EOP PowerShell。 当你连接到组织时,请务必指定正确的 URL(ConnectionUri 值)。 Exchange Online 和独立 EOP 组织所需的 URL 不同。

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

  • 估计完成时间:5 分钟

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

  • 如果你的本地 Exchange 组织具有 Exchange 企业 CAL(含服务)许可证,则你可以使用本文中的说明连接到 EOP 组织。

  • 可以使用下列 Windows 版本:

    • Windows 10
    • Windows 8.1
    • Windows Server 2019
    • Windows Server 2016
    • Windows Server 2012 或 Windows Server 2012 R2
    • Windows 7 Service Pack 1 (SP1)*
    • Windows Server 2008 R2 SP1*

    *此版本的 Windows 已进入终止支持阶段,现在只有在 Azure 虚拟机中运行时才能得到支持。 若要使用此版本 Windows,必须先安装 Microsoft .NET Framework 4.5 或更高版本,然后再安装更新版本的 Windows Management Framework:3.0、4.0 或 5.1(仅限一个)。 有关更多信息,请参阅安装 .NET Framework Windows Management Framework 3.0Windows Management Framework 4.0Windows Management Framework 5.1

  • Windows PowerShell 需要进行相关配置,才能运行脚本。默认情况下,它并没有进行配置。你会在尝试连接时看到以下错误消息:

    无法加载文件,因为在此系统上已禁用运行脚本。 提供有效的证书,以便对文件进行签名。

    为了使从 Internet 下载的所有 PowerShell 脚本能够由受信任的发布者签名,请在提升的 Windows PowerShell 窗口(通过选择“以管理员身份运行”打开的 Windows PowerShell 窗口)中运行以下命令。

    Set-ExecutionPolicy RemoteSigned
    

    有关执行策略的详细信息,请参阅关于执行策略

  • WinRMB 需要允许基本身份验证(默认为启用)。我们不会发送用户名和密码组合,但发送会话的 OAuth 令牌需要使用基本身份验证标头,因为客户端 WinRM 实现不支持 OAuth。

    请注意:必须暂时启用 WinRM 才能运行以下命令。 可运行 winrm quickconfig 命令来启用它。

    若要验证是否已为 WinRM 启用基本身份验证,请 在命令提示符中(不是在 Windows PowerShell 中)运行此命令:

    winrm get winrm/config/client/auth
    

    如果未看到值 Basic = true,则需要 在命令提示符中(不是在 Windows PowerShell 中)运行此命令来启用 WinRM 的基本身份验证:

    winrm set winrm/config/client/auth @{Basic="true"}
    

    请注意:如果要在 Windows PowerShell 中运行命令,请将命令的 '@{Basic="true"}' 部分用括号括起来。

    如果 WinRM 的基本身份验证处于禁用状态,则当你尝试连接时会收到此错误:

    WinRM 客户端无法处理该请求。 客户端配置中当前已禁用基本身份验证。 更改客户端配置,然后重试请求。

提示

是否有任何疑问? 在 Exchange 论坛中寻求帮助。 请访问以下论坛:Exchange OnlineExchange Online Protection

连接 Exchange Online PowerShell

  1. 在本地计算机上,打开 Windows PowerShell 并运行以下命令。

    $UserCredential = Get-Credential
    

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

  2. 运行以下命令:

    $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
    

    注意

    • 对于 Office 365 世纪互联运营,请使用 ConnectionUri 值:https://partner.outlook.cn/PowerShell

    • 对于 Office 365 Germany,请使用 ConnectionUri 值:https://outlook.office.de/powershell-liveid/

    • 对于 Microsoft 365 GCC High,请使用 ConnectionUri 值:https://outlook.office365.us/powershell-liveid/

    • 对于 Microsoft 365 DoD,请使用 ConnectionUri 值:https://webmail.apps.mil/powershell-liveid

    • 如果你使用代理服务器,请先运行此命令:$ProxyOptions = New-PSSessionOption -ProxyAccessType <Value>,其中 <Value> 是 IEConfigWinHttpConfigAutoDetect

      然后,将以下参数和值添加到 $Session = ... command: -SessionOption $ProxyOptions 的结尾处。

      有关详细信息,请参阅 New-PSSessionOption

  3. 运行以下命令:

    Import-PSSession $Session -DisableNameChecking
    

备注

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

Remove-PSSession $Session

如何知道操作成功?

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

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

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

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

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

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

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

另请参阅

你在本文中使用的 cmdlet 是 Windows PowerShell cmdlet。有关这些 cmdlet 的详细信息,请参阅以下文章。

有关管理 Microsoft 365 的详细信息,请参阅管理 Microsoft 365 和 Office 365