Ошибка Invoke-Command: WinRM не может завершить операцию

Используя 2 машины, локальную и удаленную (с адресом, помеченным как remoteAddress), я пытаюсь запустить это на локальном компьютере:

Invoke-Command -ComputerName remoteAddress -ScriptBlock { dir c:\ }

но я получаю эту ошибку:

[remoteAddress] Connecting to remote server remoteAddress failed with the
following error message : WinRM cannot complete the operation. Verify that
the specified computer name is valid, that the computer is accessible over
the network, and that a firewall exception for the WinRM service is enabled
and allows access from this computer. By default, the WinRM firewall exception
for public profiles limits access to remote computers within the same local
subnet.
For more information, see the about_Remote_Troubleshooting Help topic.
    + CategoryInfo          : OpenError: (remoteAddress:String) [], PSRemotingTransportException
    + FullyQualifiedErrorId : WinRMOperationTimeout,PSSessionStateBroken

Я следил за исправлениями в похожих ситуациях. Что я проверил:

  • Пинг на удаленный адрес прошел успешно.

  • На обеих машинах Enable-PSRemoting -Force вернули

    WinRM is already set up to receive requests on this computer.
    WinRM is already set up for remote management on this computer.
  • на обеих машинах Set-WSManQuickConfig вернули

    WinRM is already set up to receive requests on this computer.
    WinRM is already set up for remote management on this computer.

Но все же я получаю эту ошибку, пытаясь подключиться к удаленному компьютеру.


Я запустил test-wsman -ComputerName _remote-machine_ -Port 5985 со своей локальной машины и получил эту ошибку:

test-wsman : WinRM cannot complete the operation. Verify that the specified computer
name is valid, that the computer is accessible over the network, and that a firewall exception for the WinRM service
is enabled and allows access from this computer. By default, the WinRM firewall exception for public profiles limits
access to remote computers within the same local subnet. 
At line:1 char:1
+ test-wsman -ComputerName _remote_ -Port 5985
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (_remote-machine_:String) [Test-WSMan], InvalidOperationExcept
   ion
    + FullyQualifiedErrorId : WsManError,Microsoft.WSMan.Management.TestWSManCommand

person rotemp    schedule 20.11.2016    source источник
comment
Сообщение об ошибке указывает вам на Get-Help about_Remote_Troubleshooting. Вы следовали инструкциям, данным там?   -  person Ansgar Wiechers    schedule 20.11.2016
comment
Да, я изменил настройки политики и включил следующее: Конфигурация компьютера ›Административные шаблоны› Компоненты Windows ›Удаленное управление Windows (WinRM)› Служба WinRM -Разрешить удаленное управление сервером через WinRM -Разрешить аутентификацию CredSSP -Включить совместимость HTTP Listener -Включить Совместимость Прослушиватель HTTPS Удаленная оболочка Windows -Разрешить удаленный доступ к оболочке сети ›Сетевые подключения› Брандмауэр Windows ›Профиль домена -Брандмауэр Windows: разрешить исключения ICMP -Брандмауэр Windows: разрешить исключения локального порта Но, к сожалению, ни один из этих шагов не решил мою проблему.   -  person rotemp    schedule 21.11.2016
comment
Находятся ли компьютеры в домене или в среде рабочей группы? Можете ли вы использовать telnet-порт 5985 на удаленном хосте?   -  person Ansgar Wiechers    schedule 21.11.2016
comment
Компьютеры находятся в одном домене, telnet remote-ip 5985 работает.   -  person rotemp    schedule 21.11.2016
comment
Проверьте вывод winrm get winrm/config на обоих хостах.   -  person Ansgar Wiechers    schedule 21.11.2016
comment
Я отметил красным цветом изменения между выводом «winrm get winrm / config» на обеих машинах ссылка   -  person rotemp    schedule 21.11.2016
comment
Похоже, что сервер настроен на использование CredSSP, а клиент - нет.   -  person Ansgar Wiechers    schedule 21.11.2016
comment
Не думаю, что в этом проблема. Я изменил значения CredSSP на обеих машинах, чтобы они были истинными и ложными вместе, но ошибка осталась той же. Что вы думаете о [source = ”GPO”]?   -  person rotemp    schedule 21.11.2016
comment
AFAICT это просто указывает на то, что настройка была применена через GPO.   -  person Ansgar Wiechers    schedule 21.11.2016


Ответы (2)


Вы добавили пульты в свой список доверенных хостов? Если нет, вы можете добавить их через

winrm s winrm/config/client '@{TrustedHosts="RemoteComputer"}'
person Moerwald    schedule 20.11.2016
comment
Спасибо за ваш ответ! Я запустил его, и вот результат: Client NetworkDelayms = 5000 URLPrefix = wsman AllowUnencrypted = false Auth Basic = true Digest = true Kerberos = true Negotiate = true Certificate = true CredSSP = true DefaultPorts HTTP = 5985 HTTPS = 5986 TrustedHosts = * Но это все еще не работает ... - person rotemp; 21.11.2016
comment
Это для компьютеров в среде рабочей группы. Не используйте его для членов домена. - person Ansgar Wiechers; 21.11.2016
comment
Могут ли порты 5985, 5986 быть заняты другим процессом? Вы также можете попробовать test-wsman, может быть, он даст несколько полезных советов. - person Moerwald; 21.11.2016

Есть ли у вас активный удаленный сеанс связи с компьютером, например удаленный рабочий стол?

Я испытал, что это может быть единственной причиной отказа Invoke-Command.

person Smorkster    schedule 05.12.2020