使用远程 PowerShell 连接到 Exchange 服务器
如果你尚未安装 Exchange 管理工具,你可以使用本地计算机上的 Windows PowerShell 创建到 Exchange 服务器的远程 Shell 会话。 这是一个简单的三步过程,在其中输入凭据,提供所需的连接设置,然后将 Exchange cmdlet 导入本地Windows PowerShell会话。
注意
我们建议你在用于大量管理 Exchange 服务器的任何计算机上使用 Exchange 命令行管理程序。 你可以通过安装 Exchange 管理工具来获取 Exchange 命令行管理程序。 有关详细信息,请参阅 安装 Exchange Server 管理工具 并 “打开” Exchange 命令行管理程序。 有关 Exchange 命令行管理程序的详细信息,请参阅 Exchange 服务器 PowerShell (Exchange 命令行管理程序)
Get-ExchangeCertificate cmdlet 不完全支持远程 PowerShell。 建议改用 Exchange 命令行管理程序来查看证书对象的所有属性。
开始前,有必要了解什么?
估计完成时间:少于 5 分钟
连接后,你有权或无权访问的 cmdlet 和参数都将由基于角色的访问控制 (RBAC) 进行控制。 有关详细信息,请参阅 Exchange Server 权限。
可以使用下列 Windows 版本:
- Windows 11
- 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.0、Windows Management Framework 4.0 和 Windows Management Framework 5.1。
Windows PowerShell 需要进行相关配置,才能运行脚本。默认情况下,它并没有进行配置。 尝试连接时,会出现以下错误:
无法加载文件,因为在此系统上已禁用运行脚本。 提供有效的证书,以便对文件进行签名。
为了使从 Internet 下载的所有 PowerShell 脚本能够由受信任的发布者签名,请在提升的 Windows PowerShell 窗口(通过选择“以管理员身份运行”打开的 Windows PowerShell 窗口)中运行以下命令。
Set-ExecutionPolicy RemoteSigned
有关执行策略的详细信息,请参阅关于执行策略。
提示
是否有任何疑问? 在 Exchange 服务器 论坛中寻求帮助。
连接远程 Exchange 服务器
在本地计算机上,打开 Windows PowerShell 并运行以下命令:
$UserCredential = Get-Credential
在打开的“Windows PowerShell凭据请求”对话框中, (UPN) (输入用户主体名称,
chris@contoso.com
例如) 和密码,然后选择“确定”。将
<ServerFQDN>
替换为 Exchange 服务器的完全限定域名(例如mailbox01.contoso.com
),然后运行以下命令:$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://<ServerFQDN>/PowerShell/ -Authentication Kerberos -Credential $UserCredential
注意: ConnectionUri 的值是
http
,而不是https
。运行以下命令:
Import-PSSession $Session -DisableNameChecking
注意
确保在完成后断开与远程 PowerShell 会话的连接。 如果在不断开会话连接的情况下关闭 Windows PowerShell 窗口,您可能会用完可用的所有远程 PowerShell 会话,然后您需要等待这些会话过期。 要断开远程 PowerShell 会话,请运行以下命令:
Remove-PSSession $Session
如何知道已成功连接?
执行步骤 3 后,Exchange cmdlet 将导入到你的本地 Windows PowerShell 会话,此时会显示一个进度条以便于跟踪。 如果未收到任何错误,说明连接成功。 一个快速测试是运行 Exchange cmdlet(例如 Get-Mailbox),然后查看结果。
如果收到错误,则查看以下要求:
常见问题是密码错误。 重新运行上述三个步骤,并仔细查看在步骤 1 中输入的用户名和密码。
用于连接到 Exchange 服务器的帐户必须启用远程 PowerShell 访问。 有关详细信息,请参阅 控制 Exchange 服务器的远程 PowerShell 访问。
TCP 端口 80 通信在你的本地计算机和 Exchange 服务器之间必须为打开状态。 它可能已经打开了,但是要考虑你的组织是否存在严格的网络访问政策。
另请参阅
你在本文中使用的 cmdlet 均为 Windows PowerShell cmdlet。 有关这些 cmdlet 的详细信息,请参阅以下文章: