一个几乎默认的 Exchange 2013 本地安装,具有两个 CAS 和两个 MBX 服务器,它们都运行 Windows Server 2012R2,Exchange 更新到 CU13。使用默认的 Exchange 命令行管理程序,它在连接到启动它的服务器时总是报告 WSMan 错误,然后它选择同级服务器并成功建立连接。错误如下:
New-PSSession : [cas01.xxxxxxxxx] Connecting to remote server cas01.xxxxxxxxx failed
with the following error message : The WinRM client sent a request to an HTTP server and got
a response saying the requested HTTP URL was not available. This is usually returned by a
HTTP server that does not support the WS-Management protocol.
For more information, see the about_Remote_Troubleshooting Help topic.
最奇怪的是,如果我在 cas01 上运行 EMS,它会尝试连接到 cas01,失败,然后尝试连接到 cas02 并成功。如果我从 cas02 运行它,我会得到相反的结果。两个服务器共享一个 NLB IP 地址,但是该 IP 地址不能解析为 cas01 或 cas02 名称。Test-WSMan
cmdlet 使 WSMan 恢复正常运行。我还应该测试什么来找出这种行为的根源?
此特定问题的解决方案是,如果您在所有接口上禁用 IPv6,但未在系统上禁用 IPv6,它仍会
::1
为 localhost 注册 IPv6 地址。这是用于连接到 IIS 服务器以建立远程 Powershell 会话的地址。但是,如果只有 IPv4 地址可用,IIS 服务器不会侦听 IPv6 地址。在我的情况下,IPv6 绑定完全不存在。所以,这个问题可以通过两种方式解决:首先,在系统上禁用 IPv6,然后确保 IIS 默认网站绑定到 127.0.0.1:80 或 local_IP:80。
其次,按照此处https://technet.microsoft.com/library/bb877985.aspx的说明更改 IPv6 前缀优先级:
netsh int ipv6 set prefixpolicy ::ffff:0:0/96 60 4
。此命令将 IPv4 前缀优先级更改为 60(任意值应高于报告netsh int ipv6 show prefixpolicies
的::1/128
前缀)。这使得任何试图连接到本地主机的东西都使用本地主机的 IPv4 地址(甚至不是 127.0.0.1!)。