PowerShell Remoting: настройка и использование

Быстрые ссылки
- Включить PowerShell Remoting на ПК, к которому нужен доступ
- Настроить рабочую группу
- Проверить соединение
- Выполнить одиночную удаленную команду
- Запустить удалённую сессию
PowerShell Remoting позволяет запускать команды PowerShell или открывать полнофункциональные сессии на удалённых Windows‑системах. По смыслу это похоже на SSH для удалённого терминального доступа на других ОС.
По умолчанию PowerShell ограничен, поэтому перед использованием надо включить PowerShell Remoting. Настройка чуть сложнее в рабочей группе по сравнению с доменом — типичный случай для домашней или небольшой сети — поэтому ниже подробно описаны все шаги.
Включение PowerShell Remoting на целевом ПК
Первый шаг — включить PowerShell Remoting на компьютере, к которому будете подключаться удалённо. На этом ПК откройте PowerShell с правами администратора.
В Windows 10 нажмите Windows+X и выберите PowerShell (Admin) из меню.

В Windows 7 или 8 нажмите Пуск и введите powershell, затем правой кнопкой выберите Запуск от имени администратора.

В окне PowerShell выполните следующую команду и нажмите Enter:
Enable-PSRemoting -Force
Эта команда запускает службу WinRM, устанавливает её автозапуск и создаёт правило в брандмауэре для входящих подключений. Параметр -Force заставляет PowerShell выполнить все шаги без дополнительных подтверждений.
Если ваши ПК находятся в домене, обычно этого достаточно. Можно перейти к проверке соединения. Если же компьютеры в рабочей группе, подготовьте дополнительные настройки описанные далее.
Важно
- В доменной среде сетевые политики (Group Policy) могут включать или блокировать Remoting автоматически. Если у вас нет прав администратора, обратитесь к администратору.
Настройка рабочей группы
Если компьютеры не в домене, потребуется выполнить дополнительные шаги. Предполагается, что Remoting на целевом компьютере уже включен, как описано выше.
Примечание
Для работы PowerShell Remoting в рабочей группе сеть должна быть настроена как частная, а не публичная. Изменение типа сети производится через Параметры Windows > Сеть и Интернет > Свойства сети.
Далее настройте параметр TrustedHosts как на целевом ПК, так и на ПК, с которого будете подключаться. Это можно сделать двумя способами.
- Если вы доверяете любому компьютеру в домашней сети, выполните в PowerShell с правами администратора:
Set-Item wsman:\localhost\client\trustedhosts *Звёздочка означает все хосты. Чтобы ограничить список, укажите через запятую IP‑адреса или имена компьютеров.
- После изменения настроек перезапустите службу WinRM:
Restart-Service WinRM
Эти команды нужно выполнить как на целевом ПК, так и на тех ПК, откуда будут подключения.
Проверка соединения
На компьютере, с которого вы хотите подключиться, выполните:
Test-WsMan COMPUTERЗамените COMPUTER на имя или IP‑адрес удалённого ПК. Команда проверяет, работает ли служба WinRM на удалённой машине. При успешном завершении вы увидите информацию о службе WinRM удалённого компьютера. В случае ошибки появится сообщение — сохраните его для отладки.

Выполнение одной удалённой команды
Для выполнения одиночной команды используйте Invoke-Command в следующем формате:
Invoke-Command -ComputerName COMPUTER -ScriptBlock { COMMAND } -credential USERNAME- COMPUTER — имя или IP удалённого ПК
- COMMAND — команда PowerShell, которую нужно выполнить
- USERNAME — учётная запись на удалённой машине; после ввода будет предложен пароль
Пример: просмотреть содержимое директории C:\ на удалённом ПК по IP 10.0.0.22 под пользователем wjgle:
Invoke-Command -ComputerName 10.0.0.22 -ScriptBlock { Get-ChildItem C:\ } -credential wjgle
Запуск удалённой сессии
Если нужно выполнить несколько команд интерактивно, откройте удалённую сессию:
Enter-PSSession -ComputerName COMPUTER -Credential USERПоменяйте COMPUTER и USER на соответствующие значения. После подключения приглашение PowerShell изменится, показывая имя удалённого компьютера, и вы сможете вводить команды, как если бы работали локально.

Технические детали и пояснения
- WinRM (Windows Remote Management) — служба, реализующая протокол удалённого управления на базе WS‑Management. PowerShell Remoting использует WinRM как транспорт.
- TrustedHosts — упрощённый способ доверия в рабочей группе. Он снижает безопасность, поэтому по возможности используйте доменные учётные записи или сертификаты.
- Kerberos работает в домене и гораздо безопаснее, чем использование TrustedHosts.
Когда это не сработает и типичные ошибки
- Сеть отмечена как публичная — в таком режиме входящие подключения блокируются.
- Брандмауэр или сторонний антивирус блокирует порт WinRM (обычно TCP/5985 для HTTP и TCP/5986 для HTTPS).
- Неправильный формат имени или IP в Test-WsMan и Invoke-Command.
- Отсутствуют права администратора на целевой машине.
- Групповые политики могут перезаписывать локальные настройки.
Рекомендация: сначала упростите сетевую топологию для отладки — используйте прямое подключение по локальной сети или временно отключите сторонний файервол для проверки.
Альтернативные подходы
- SSH для Windows: начиная с Windows 10 и Windows Server 2019 Microsoft поддерживает OpenSSH, и вы можете использовать ssh для удалённого выполнения команд.
- WinRM по HTTPS: настройка сертификатов для шифрования трафика и аутентификации без TrustedHosts.
- RDP для полного графического доступа, если нужна GUI‑администрирование.
Рекомендации по безопасности
- По возможности настраивайте WinRM по HTTPS с действительными сертификатами вместо использования TrustedHosts.
- Ограничьте список TrustedHosts конкретными адресами, а не звёздочкой.
- Используйте учётные записи с минимальными привилегиями и по возможности временные учётные записи для задач управления.
- Включите аудит входов и логирование команд PowerShell на целевых машинах.
Краткий чек‑лист безопасности
- Сеть помечена как частная
- WinRM работает и доступен (Test-WsMan успешен)
- TrustedHosts задан минимально
- Используется HTTPS или доменная аутентификация
- Минимальные права для учётных записей
- Логи и аудит включены
Шаблон стандартной операционной процедуры (SOP)
- На целевом ПК открыть PowerShell от имени администратора.
- Выполнить Enable-PSRemoting -Force.
- Проверить тип сети и установить частную сеть при необходимости.
- На всех участвующих ПК задать TrustedHosts или настроить сертификаты.
- Перезапустить службу WinRM: Restart-Service WinRM.
- С ПК администратора проверить Test-WsMan COMPUTER.
- Выполнить Invoke-Command или Enter-PSSession для рабочих задач.
- По завершении откатить временные упрощения безопасности.
Критерии приёмки
- Test-WsMan возвращает информацию об удалённом хосте без ошибок.
- Удалённая команда через Invoke-Command выполняется и возвращает ожидаемый результат.
- При входе в Enter-PSSession появляется приглашение удалённого хоста и команды выполняются интерактивно.
- Логи аудита на целевой машине содержат записи о выполненных действиях.
Отладка и распространённые решения
- Ошибка 401 или 403: проверьте учётные данные и права учётной записи.
- Timeout или недоступность порта: проверьте брандмауэр, маршрутизацию и открытые порты TCP/5985 и TCP/5986.
- Политики группы перезаписывают настройки: согласуйте изменения с администратором сети.
Ролевые чек‑листы
Для администратора сети
- Проверить GPO на предмет правил WinRM
- Настроить и выдать сертификаты для WinRM/HTTPS
- Ограничить доступ на уровне сетевого оборудования
Для локального администратора ПК
- Включить Enable-PSRemoting -Force
- Настроить TrustedHosts при необходимости
- Включить аудит PowerShell
Для инженера поддержки
- Выполнить Test-WsMan и сохранить вывод
- Попробовать локально запустить проблемную команду
- Предоставить результаты администратору для анализа
Совместимость и переходные советы
- В доменной среде предпочитайте Kerberos и политики GPO вместо ручной настройки TrustedHosts.
- При переходе с WinRM по HTTP на HTTPS подготовьте инфраструктуру PKI и выпустите сертификаты для серверов.
Примерный сценарий тестов и критерии приёмки
- Тест 1: Test-WsMan возвращает состояние службы WinRM.
- Тест 2: Invoke-Command выполняет Get-ChildItem C:\ и возвращает список файлов.
- Тест 3: Enter-PSSession позволяет выполнить несколько команд без разрыва.
Критерий успеха для каждого теста — успешное выполнение и отсутствие ошибок в журнале.
Краткое резюме
PowerShell Remoting — удобный инструмент для удалённого управления Windows‑машинами. В домене настройка обычно тривиальна. В рабочей группе требуется настройка TrustedHosts и внимательное отношение к безопасности. Всегда проверяйте связь командой Test-WsMan и предпочитайте защищённые варианты подключения (Kerberos или HTTPS) для рабочей эксплуатации.
Важно
Перед развёртыванием в производственной сети согласуйте изменения с администраторами и следуйте политикам безопасности вашей организации.
Похожие материалы
Как изменить фото профиля Facebook
OneDrive в Ubuntu 14.04: синхронизация файлов
Обновление Windows 7 до Windows 10 в Boot Camp на Mac
Условные операторы в Go: if, else, switch
Добавить тренировку в Apple Health — быстро и вручную