我正在尝试使用 PowerShell 通过 wsman 连接连接到 Exchange 服务器。有问题的客户端服务器位于工作组中,而 Exchange 服务器位于其自己的域中。
我使用以下命令尝试连接到服务器:
connect-wsman -connectionuri http://servername/PowerShell -credential domain\administrator
然后我收到完整的错误:
连接到远程服务器失败,并显示以下错误消息:WinRM 客户端无法处理请求。它无法确定来自目标计算机的 HTTP 响应的内容类型。内容类型缺失或无效。有关详细信息,请参阅 about_Remote_Troubleshooting 帮助主题。
以前,当相关客户端服务器与 Exchange 服务器位于同一域中时,此方法有效。防火墙已关闭,所有服务器都是 WinRM 的 TrustedHosts。
有趣的是,当我使用:
connect-wsman -computername servername -credential domain\administrator
我没有收到任何错误。但是,我需要能够使用 URI 而不是计算机名称。
有任何想法吗?
答案1
我认为您连接的是错误的端口。端口 80 上可能正在运行其他服务(不是 wsman),但在您的 URI 中,您没有指定端口,因此它假定端口为 80
http://servername
除非您确实在 Exchange 服务器上使用端口 80 作为 wsman,否则您应该指定端口(例如使用端口 5985):
http://servername:5985
要找出您需要哪个端口,您应该登录 Exchange 服务器,启动 powershell 并运行以下命令:
Get-WSManInstance -ResourceURI winrm/config/listener -Enumerate
您可以从客户端 powershell 使用一个测试函数(请参阅http://technet.microsoft.com/en-us/library/hh849873.aspx):
test-wsman http://servername:port
答案2
我通过将客户端与目标放在同一个域中解决了这个问题。之前由于一些外部问题,这是不可能的,但这些问题已经解决了。