Хотите управлять ПК по PowerShell, а в ответ — ошибки WinRM? Сейчас включим службы, добавим исключения в брандмауэр, настроим доверенные хосты и разберём частые ошибки. Сделаем это безопасно и пошагово, без лишней теории.

WinRM/PowerShell Remoting не работает в Windows 10/11 — как включить и настроить (2025)

Коротко: что проверить сразу

  • PowerShell запускайте от имени администратора.
  • Обе машины видят друг друга по сети, пинг проходит, время синхронизировано.
  • Служба «Windows Remote Management (WS-Management)» запущена и в автозапуске.
  • Правила брандмауэра WinRM включены для нужного профиля сети.
Нужна помощь? Настрою WinRM/Remoting под Вашу сеть: слушатели HTTP/HTTPS, TrustedHosts, Kerberos/CredSSP и политика безопасности.

1) Включаем WinRM и проверяем связь

PowerShell (Администратор) — выполнять по одной:

Enable-PSRemoting -Force
Get-Service WinRM | Set-Service -StartupType Automatic
Test-WSMan -ComputerName localhost
winrm enumerate winrm/config/listener

Команда Enable-PSRemoting сама создаст слушатель HTTP и откроет правила брандмауэра.

2) Рабочая группа: TrustedHosts и подключение

Без домена Kerberos не работает, поэтому добавьте адрес удалённой машины в доверенные хосты.

PowerShell (Администратор) — по одной строке:

Set-Item WSMan:\localhost\Client\TrustedHosts -Value "192.168.1.*" -Force
# Подключение с вводом учётных данных
Enter-PSSession -ComputerName 192.168.1.50 -Credential (Get-Credential)
# Одноразовая команда
Invoke-Command -ComputerName 192.168.1.50 -ScriptBlock { Get-ComputerInfo | Select-Object OSName, CsName }

Вместо маски можно перечислить хосты через запятую. Для массовых подключений используйте -ComputerName @(...).

3) HTTPS‑слушатель: безопасно для рабочих групп

Создадим самоподписанный сертификат и включим слушатель HTTPS. На клиентах нужно доверять этому сертификату.

PowerShell (Администратор) — вставить целиком:

$dns = (Get-CimInstance Win32_ComputerSystem).DNSHostName
$cert = New-SelfSignedCertificate -DnsName $dns -CertStoreLocation Cert:\LocalMachine\My -FriendlyName "WinRM HTTPS"
$thumb = $cert.Thumbprint
# Очищаем старые слушатели HTTPS
winrm delete winrm/config/Listener?Address=*+Transport=HTTPS 2>$null
# Создаём новый слушатель
winrm create winrm/config/Listener?Address=*+Transport=HTTPS "@{{Hostname=\"$dns\"; CertificateThumbprint=\"$thumb\"}}"
# Разрешаем брандмауэр
New-NetFirewallRule -DisplayName "WinRM HTTPS" -Direction Inbound -Protocol TCP -LocalPort 5986 -Action Allow

Подключение: Enter-PSSession -ComputerName ИМЯПК -UseSSL -Credential (Get-Credential).

4) Аутентификация и «double-hop»

  • Домен: используйте Kerberos/Negotiate — работает «из коробки» при корректных SPN и времени.
  • Второй переход: включите CredSSP или проксируйте команды через Invoke-Command с -Credential.

PowerShell (Администратор) — по одной строке (включение CredSSP):

Enable-WSManCredSSP -Role Client -DelegateComputer "*.domain.local" -Force
Enable-WSManCredSSP -Role Server -Force

5) Диагностика: где искать подсказки

PowerShell/Командная строка — по одной:

Test-WSMan -ComputerName 192.168.1.50
winrm quickconfig
wevtutil qe Microsoft-Windows-WinRM/Operational /c:20 /f:text /q:"*[System[(Level=2)]]"
Get-NetFirewallRule -DisplayName "*WinRM*" | Format-Table DisplayName, Enabled, Profile

Типичные ошибки: WinRM cannot complete the operation — время/имя не совпадают; The client cannot connect — брандмауэр/служба; 401 Unauthorized — аутентификация/доверие.

FAQ

Нужно ли открывать 5985/5986 наружу?

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

Команда Enable-PSRemoting зависает.

Отключите сторонний брандмауэр/«безопасники», затем включите правила для WinRM вручную и запустите службу.

Читайте также: