Я пытаюсь подключиться к серверу Exchange через соединение wsman с помощью PowerShell. Рассматриваемый клиентский сервер находится в рабочей группе, тогда как сервер Exchange находится в собственном домене.
Я использую следующую команду, чтобы попытаться подключиться к серверу:
connect-wsman -connectionuri http://servername/PowerShell -credential domain\administrator
Затем я получаю полную ошибку:
Не удалось подключиться к удаленному серверу, появляется следующее сообщение об ошибке: Клиент WinRM не может обработать запрос. Он не может определить тип содержимого ответа HTTP от конечного компьютера. Тип содержимого отсутствует или недействителен. Для получения дополнительных сведений см. Раздел справки about_Remote_Troubleshooting.
Раньше это работало, когда рассматриваемый клиентский сервер находился в том же домене, что и сервер Exchange. Брандмауэры отключены, все серверы являются TrustedHosts по отношению к WinRM.
Интересно, когда я использую:
connect-wsman -computername servername -credential domain\administrator
Я не получаю ошибок. Однако мне нужно иметь возможность использовать URI вместо имени компьютера.
Любые идеи?
Я считаю, что вы подключаетесь не к тому порту. Вероятно, на порту 80 работает какая-то другая служба (не wsman), но в вашем URI вы не указали порт, поэтому предполагается, что порт 80
http://servername
Если вы действительно не используете порт 80 для wsman на сервере Exchange, вы должны указать порт (например, с использованием порта 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
Мне удалось обойти проблему, поместив моего клиента в тот же домен, что и цель. Раньше это было невозможно из-за некоторых внешних проблем, но они были решены.