几乎默认的 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 名称。cmdletTest-WSMan
返回 WSMan 并运行。我还应该测试什么来找出此行为的根源?
答案1
解决此特定问题的方法是,如果您在所有接口上禁用 IPv6,但不在系统上禁用 IPv6,它仍会::1
为 localhost 注册 IPv6 地址。这是用于连接到 IIS 服务器以建立远程 Powershell 会话的地址。但是,如果只有 IPv4 地址可用,IIS 服务器不会监听 IPv6 地址。在我的情况下,IPv6 绑定完全不存在。因此,可以通过两种方式解决此问题:
首先,在系统上禁用 IPv6,然后确保 IIS 默认网站绑定到 127.0.0.1:80 或 local_IP:80。
其次,按照此处的说明更改 IPv6 前缀优先级https://technet.microsoft.com/library/bb877985.aspx:
netsh int ipv6 set prefixpolicy ::ffff:0:0/96 60 4
。此命令将 IPv4 前缀优先级更改为 60(任意值应高于前缀报告的值netsh int ipv6 show prefixpolicies
)::1/128
。这使得任何尝试连接到 localhost 的东西都使用您 localhost 的 IPv4 地址(甚至不是 127.0.0.1!)。