WinRM и PowerShell Remoting – важная функция при управлении удаленными компьютерами под управлением Windows. Как и другие службы, WinRM прослушивает определенные порты в определенных обстоятельствах. В этом руководстве вы узнаете о портах WinRM и даже о том, как их изменить, если это необходимо.
Связанные: PowerShell Remoting: Полное руководство
Слушатель WinRM
Один из самых важных компонентов WInRM (и портов, на которых он работает), это слушатель WinRM.
Слушатель WinRM в своей основе является веб-сервером. Он общается с HTTP и HTTPS, и в дни до Windows 7 он даже использовался по умолчанию теми же портами 80 и 443, которые используют большинство веб-серверов.
Слушатель работает как служба на вашем компьютере, ожидая установления соединений, так же как обычный веб-сервер.
A WinRm listener can listen two different ways; HTTP or HTTPS. The WinRM port for HTTP is 5985 while the WinRm port for HTTPS is 5986, by default.
- HTTP – порт 5985
- HTTPS – порт 5986
Связанные: PowerShell Remoting: Полное руководство
Ошибки при подключении к неправильным портам
И если вы не добавите правило брандмауэра при изменении порта, вы получите ту же самую ошибку, даже указывая порт таким образом.
Изменение портов WinRM
Хотя Microsoft рекомендует оставаться на портах прослушивания по умолчанию для совместимости и удобства использования, вы можете их изменить. Это может быть полезно в случаях конфликта с портами по умолчанию или ограничения брандмауэра, блокирующего использование этих портов.
Возможно, у вас настроена система, которая настроена на подключение к WinRM через пользовательские порты. Когда вы пытаетесь подключиться как обычно, вы получаете следующее сообщение об ошибке:

Если это так, пришло время изменить порт WinRM на стороне сервера!
Чтобы изменить порты WinRM, сначала вам нужно определить, есть ли уже служба, прослушивающая эти порты.
Отслеживание существующих подключений
Самый простой способ узнать, какие порты используются на компьютере под управлением Windows, – использовать инструмент netstat
. Netstat проверяет все активные порты на вашей системе и, если они активны, возвращает используемый исходный и конечный IP-адрес и порт.
Чтобы отследить прослушивающие порты до изменения постов WinRm, выполните netstat -aon
. Переключатели -aon
:
- показывают все активные подключения (
a
) - показывают идентификатор процесса для процесса, который открыл соединение (
o
) - не пытайтесь разрешать имена DNS конечных IP-адресов (
n
)

Если веб-сервер прослушивает порт 80, например, вы увидите строку, где локальный адрес заканчивается на :80
в столбце Local Address
. Эта строка – это то место, где вы увидите PID
или идентификатор процесса, который использует соединение.
Как только у вас есть PID, вы можете использовать его для нахождения имени процесса с помощью чего-то вроде cmdlet Get-Process
в PowerShell.

В данном случае видно, что имя процесса – просто System. Это означает, что процесс тесно интегрирован в ОС и, вероятно, встроен в Windows.
Настройка портов совместимости для WinRM
У WinRM есть функция, называемая порты совместимости. Они существуют для обеспечения обратной совместимости с некоторыми устаревшими системами, которые работают только на портах 80 для HTTP и 443 для HTTPS. Если вам нужно изменить WinRM для прослушивания этих портов, включите соответствующие слушатели.
Как только вы убедитесь, что на портах 80 и 443 ничего больше не работает, установите слушателя WSMan для использования портов совместимости (80 для HTTP и 443 для HTTPS).
Настройка WinRM для прослушивания любого порта
Если по какой-то причине вам нужно настроить WinRM для прослушивания нестандартного порта, вы можете сделать это следующим образом:
- Найдите имя слушателя. Вы можете сделать это, перечислив все слушатели WinRM с помощью cmdlet
Get-Item
. Приведенная ниже команда перечисляет все (*
) установленные слушатели.

Затем, используя показанное выше имя слушателя, настройте каждого слушателя с помощью Set-Item
, указав путь слушателя и номер порта для его изменения.
3. В данный момент слушатели WinRM слушают правильные порты, скорее всего, брандмауэр Windows отклоняет любые удаленные подключения к этим портам. Вам нужно открыть эти порты. Для этого выполните следующую команду.
Связанный: Отключение брандмауэра Windows: узнайте о многих способах
Если бы вы не открыли соответствующий порт брандмауэра Windows, вы получили бы сообщение вроде этого при попытке подключения:

Подключение к пользовательскому порту с помощью PSRemoting
Теперь, когда вы успешно настроили и сконфигурировали WinRM на сервере WinRM, вам нужно проверить подключение с помощью клиента WinRM. Для этого требуется всего один дополнительный параметр; Port
.
Используя любую из команд PSRemoting, такие как Invoke-Command
или Enter-PSSession
, укажите параметр Port
и порт, настроенный для успешного установления соединения.

Связанный: Invoke-Command: Лучший способ запуска удаленного кода