Я пытаюсь заставить две машины рабочей группы (обе с Windows 2012 R2) разговаривать друг с другом с помощью PowerShell через WinRM. Назовем их ServerA и ServerB. На обеих машинах я выполнил следующие команды:
Enable-PSRemoting -Force
Set-Item WsMan:\localhost\client\trustedhosts Server[A|B]
Restart-Service WinRM
С ServerB я могу удаленно подключиться к ServerA, используя Enter-PSSession ServerA
команда. Однако я не могу подключиться в другом направлении. ServerA не может подключиться к ServerB. Я получаю следующее сообщение об ошибке:
enter-pssession: не удалось подключиться к удаленному серверу ServerB со следующим сообщением об ошибке: клиент не может подключиться к месту назначения, указанному в запросе. Убедитесь, что служба в пункте назначения работает и принимает запросы. См. Журналы и документацию для службы WS-Management, работающей в месте назначения, чаще всего IIS или WinRM. Если местом назначения является служба WinRM, выполните следующую команду в месте назначения, чтобы проанализировать и настроить службу WinRM: «winrm quickconfig». Для получения дополнительных сведений см. Раздел справки about_Remote_Troubleshooting. В строке: 1 символ: 1 + enter-pssession ServerB + ~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: InvalidArgument: (ServerB: String) [Enter -PSSesion], PSRemotingTransportException + FullyQualifiedErrorId: CreateRemoteRunspaceFailed
Я также пробовал подключить удаленный сеанс к самому серверу. I.E. с ServerB Enter-PSSession ServerB
. Я получаю ту же ошибку, что и выше. Я попытался полностью отключить оба брандмауэра, и это тоже не помогло. Я также пробовал делать Test-NetConnection ServerB -port 5985
и это дает мне предупреждение:
ВНИМАНИЕ: TCP-соединение с ServerB: ошибка 5985
Имя компьютера: ServerB
RemoteAddress: ip
RemotePort: 5985
ИнтерфейсAlias: Ethernet
SourceAddress: ip
PingSucceeded: True
PingReplyDetails (RTT): 0 мс
TcpTestSucceeded: ложь
Используя Test-NetConnection
Я вижу запись в журнале событий PowerShell, которая гласит:
Сообщение об ошибке = исключение, вызывающее ".ctor" с аргументом (ами) "2": "Невозможно установить соединение, поскольку целевая машина активно отказалась от него ip: 5985" ...
Какие еще шаги я могу предпринять для устранения этой проблемы с подключением?
Кажется, проблема в сети. Если TCP-соединение с портом 5985 не работает, нет возможности заставить входящий PSRemoting работать.
Можете ли вы проверить профили подключения (Get-NetConnectionProfile) на ServerB? В общедоступной сети прослушиватель по умолчанию будет использовать только локальную сеть, что приведет к проблемам при попытке подключения с машины в другой подсети. Вы можете легко убедиться в этом, посмотрев на правило входящего брандмауэра:
$rule = Get-NetFirewallRule -Name WINRM-HTTP-In-TCP
Get-NetFirewallAddressFilter -AssociatedNetFirewallRule $rule
Вы можете проверить, исправит ли это обновление правила, разрешающего любой удаленный адрес:
Set-NetFirewallRule -Name WINRM-HTTP-In-TCP -RemoteAddress Any
Очевидный вопрос: почему работает в обратном направлении. Я подозреваю, что на другом сервере сеть помечена как «частная». В частных сетях AFAIR connect
Команда winrm quickconfig (или сокращенная версия winrm qc) выполняет следующие операции: Запускает службу WinRM и устанавливает тип запуска службы на автоматический запуск. Настраивает прослушиватель для портов, которые отправляют и получают сообщения протокола WS-Management с использованием HTTP или HTTPS на любом IP-адресе.
winrm quickconfig