Несмотря на то, что на Windows PSRemoting по умолчанию включен, он не всегда включен. Если вам нужно проверить, включен ли PSRemoting или включить его на Windows, этот учебник для вас.
В этом учебнике будет рассмотрено множество различных способов включения PSRemoting на локальных и удаленных компьютерах под управлением Windows.
Начнем!
Включение PSRemoting выполняет много задач
Если вы впервые узнаете о PowerShell Remoting, вы можете подумать, что включение это всего лишь одна команда. Возможно, вы видели ссылки на cmdlet PowerShell Enable-PSRemoting
и думаете, что после ее выполнения происходит просто переключение какого-то бита. Вы ошибаетесь.
Когда вы слышите о включении PSRemoting, для его реализации требуется выполнение множества задач. Поскольку PowerShell Remoting зависит от других систем для корректной работы, у него есть несколько зависимостей.
Например, на Windows, при выполнении cmdlet Enable-PSRemoting
без параметров выполняются следующие задачи:
- Служба WinRM запускается и устанавливается на автоматический запуск.
- Создается прослушиватель на портах WinRM по умолчанию: 5985 для HTTP-трафика.
- Включаются исключения брандмауэра для WS-Management.
- Регистрируются конфигурации сеансов PowerShell в WS-Management.
- Включаются конфигурации сеансов PowerShell.
- Устанавливает удаленные сеансы PowerShell, чтобы разрешить удаленный доступ.
- Перезапускает сервер WinRM для применения всех изменений.
Вы рады, что вам не нужно делать все это вручную? Зачем упоминать это, если команда Enable-PSRemoting
делает все сама? Потому что иногда что-то может не работать, и вам нужно будет проанализировать, что происходит.
Настройки PSRemoting по умолчанию в Windows
Поскольку PSRemoting появился в Windows, он включен по умолчанию, но не всегда и также не для всех версий ОС Windows.
На всех клиентских операционных системах Windows PSRemoting всегда отключен.
На сервере Windows PSRemoting включен иногда, но не всегда, в зависимости от того, под каким сетевым профилем работает Windows. В таблице ниже вы найдете удобную информацию, чтобы определить, включен ли PSRemoting в вашей ОС Windows или нет.
Operating System | Network Profile | PSRemoting |
Windows Server 2008 R2 | Domain/Private | Disabled |
Windows Server 2008 R2 | Public | Disabled |
Windows Server 2012 & Newer | Domain/Private | Enabled |
Windows Server 2012 & Newer | Public | Enabled within the same subnet |
С другой стороны, в Linux все просто. PSRemoting даже не существует! Даже PowerShell не установлен по умолчанию. Если вы хотите запустить PSRemoting в Linux, вам придется его настроить.
Достаточно слов, давайте покажем вам, как на самом деле начать использовать PSRemoting!
Необходимые условия
Если вы собираетесь выполнять примеры в этом разделе, убедитесь, что у вас есть следующее:
- A Windows Server 2008 R2 or later machine
- A local or Active Directory domain user in the local administrators group
Включение PSRemoting локально
Один из самых простых способов включить PSRemoting – использовать встроенную команду Enable-PSRemoting. Эта команда, как вы узнали выше, является ярлыком для настройки множества различных служб для работы с PowerShell Remoting.
Использование командлета Enable-PSRemoting
При запуске этой команды без параметров она выполняет различные действия, зависящие от операционной системы, на которой она запущена. На любой современной версии Windows происходят одни и те же основные шаги. Включается PSRemoting, создается слушатель HTTP для WinRM, и включаются правила брандмауэра. Основное отличие заключается в обработке общедоступных сетей.
В ОС сервера, например, Windows Server 2019, правило брандмауэра для общедоступных сетей позволяет удаленные подключения от других устройств в той же сети. В клиентской ОС, например, Windows 10, вы получите сообщение об ошибке, указывающее, что вы находитесь в общедоступной сети.
Если вы не уверены, в каком сетевом профиле работает Windows, выполните следующую команду:
Вы должны использовать PSRemoting только в доверенной сети, поскольку он по сути запускает веб-сервер для прослушивания удаленных подключений.

Если вам не против работать с PSRemoting в сетевом профиле, отличном от Частный или Домен, вы можете пропустить проверку сетевого профиля, используя параметр SkipNetworkProfileCheck. Использование этого параметра откроет порты WinRM в брандмауэре Windows.
Использование параметра SkipNetworkProfileCheck откроет брандмауэр Windows для PowerShell Remoting в текущем сетевом профиле, но позволит только удаленные подключения от компьютеров в той же подсети.
Два параметра, которые можно использовать с командой Enable-PSRemoting
, работают вместе. Это параметры -Force
и -Confirm
. Вы можете использовать параметр -Force
, чтобы пропустить все запросы, которые обычно выводит команда Enable-PSRemoting
. Вы также можете использовать параметр -Confirm:$false
для достижения того же результата.
Использование команды winrm quickconfig
Команда winrm quickconfig
раньше была популярным способом настройки PSRemoting, прежде чем был создан cmdlet Enable-PSRemoting
, но она все еще имеет свое место. Если вы просто запустите команду winrm quickconfig
, она включит службу WinRM, создаст HTTP-слушатель и включит правила брандмауэра. Все это уже делает команда Enable-PSRemoting
, но это не настраивает машину для обработки удаленных сеансов PowerShell.
Команды winrm
пригодны для настройки прослушивателей HTTPS. Хотя вы можете сделать это вручную, если у вас есть соответствующий сертификат для прослушивателя HTTPS, вы можете просто запустить команду winrm quickconfig -transport:https
, и прослушиватель HTTPS и правила брандмауэра HTTPS будут настроены.
Включение PSRemoting удаленно
На данный момент вы узнали, что вы можете включить PSRemoting, выполнив команду на локальном компьютере. Это приводит нас к ситуации “курица и яйцо”. PSRemoting позволяет выполнять команды на удаленных компьютерах, но как выполнить команду удаленно без PSRemoting?
Тремя способами: утилитой PSexec, WMI и Group Policy.
Использование Psexec
PSExec – это удобная утилита, которая позволяет запускать удаленные команды, подобно PSRemoting. Однако PSexec использует другой метод связи, который можно использовать в своих интересах!
С помощью PSexec вы можете запустить команду Enable-PSRemoting
с локального компьютера с помощью следующей команды. В приведенной ниже команде вызывается psexec и устанавливается подключение к серверу ServerB. Затем запускается процесс PowerShell и выполняется команда Enable-PSRemoting
с параметром -Force
, чтобы пропустить обычные запросы.
Эта опция подходит для одноразовых случаев, когда вам необходимо включить PSRemoting на удаленной системе, но не очень подходит для включения PSRemoting на множестве систем и требует загрузки psexec.
Использование WMI
Иногда PSexec не работает. Многие программы безопасности блокируют psexec, но не волнуйтесь, у вас есть WMI!
С помощью PowerShell и cmdlet Invoke-CimMethod
. С помощью cmdlet Invoke-CimMethod
вы можете указать PowerShell подключиться к удаленному компьютеру через DCOM и вызвать методы.
К счастью для вас, в WMI есть классы Win32_Process
, которые позволяют вызывать процессы. Вызывая метод Create
у класса Win32_Process
, Invoke-CimMethod
подключается к удаленному компьютеру, вызывает PowerShell и выполняет команду Enable-PSRemoting
, как показано ниже.
Нижеприведенный пример создает хэш-таблицу для соединения сеанса, в которой указываются имя сервера, учетные данные и протокол. Затем в следующей хэш-таблице устанавливаются параметры для Invoke-CimMethod
. После их выполнения создается сеанс CIM через протокол DCOM, который запускает процесс PowerShell, который, в свою очередь, выполняет команду Enable-PSRemoting
.
В случае использования этого в среде домена и если у пользователя, выполняющего команды, есть административные права на целевой сервер, строку
Credential = Get-Credential
можно исключить.
Использование групповой политики
Последний и, пожалуй, лучший вариант для включения WinRM на большом количестве компьютеров – это использование групповой политики. При использовании групповой политики вы можете создать один объект групповой политики и применить эту политику сразу к тысячам компьютеров.
Для использования групповой политики все компьютеры должны быть в домене Active Directory.
Для использования групповой политики для включения WinRM сразу на нескольких компьютерах вам потребуется установить три различных элемента конфигурации:
- Включить службу WinRM.
- Открыть порт брандмауэра Windows для WinRM.
- Создать прослушиватель WinRM и разрешить подключения к нему.
Во-первых, подключитесь по RDP к контроллеру домена или, лучше всего, установите пакет инструментов удаленного администратора сервера (RSAT) на рабочую станцию, присоединенную к домену. Теперь у вас должна быть доступна консоль управления групповыми политиками (GPMC).
Включение службы WinRM
Чтобы включить службу WinRM на всех целевых компьютерах:
- Откройте GPMC и создайте GPO. В новом GPO перейдите в Конфигурация компьютера —> Параметры Windows —> Настройки безопасности —> Системные службы
- Выберите Удаленное управление Windows (WS-Management).
- В панели настройки установите флажок Определить эту настройку политики.
- Выберите радиокнопку Автоматический, чтобы служба WinRM запускалась автоматически при загрузке.
- Щелкните OK, чтобы подтвердить настройку.
Открытие порта Windows Firewall
Далее вам необходимо открыть порт WinRM на всех целевых компьютерах. Все еще редактируя созданный выше GPO:
- Перейдите в Конфигурация компьютера —> Параметры Windows —> Настройки безопасности —> Windows Defender Firewall со сложными настройками.
2. Нажмите на Новое входящее правило, чтобы создать новое входящее правило.
3. На первой странице выберите Предопределенное и выберите Удаленное управление Windows, как показано ниже.

4. На следующей странице установите флажок для правила Доменная/частная сеть, если вы не знаете, что в ваших средах используются общедоступные сети и вам потребуется разрешить удаленные подключения из них.

5. На следующей странице оставьте значение по умолчанию Разрешить подключение и нажмите “Готово”, чтобы создать правило.
Создание слушателя WinRM и списка фильтров
Последний элемент конфигурации, который нужно добавить в вашу групповую политику, – это создание слушателя WinRM и разрешение подключений к этому слушателю WinRM. Эта настройка создает слушателя WinRM для HTTP и разрешает подключения к нему с указанных IP-адресов или диапазонов IP.
Во время редактирования групповой политики WinRM:
- Перейдите в Конфигурация компьютера —> Административные шаблоны —> Компоненты Windows —> Удаленное управление Windows (WinRM) —> Служба WinRM.
2. Выберите Включено для настройки Разрешить удаленное управление службой через WinRM.
3. В настройке Разрешить удаленное управление сервером через WinRM введите звездочку (*
) и для фильтра IPv4, и для фильтра IPv6, как показано ниже.
Обратите внимание, что вы можете указывать несколько хостов, разделенных запятой, в каждом списке фильтров, если заранее знаете, какие хосты будут подключаться к целевым компьютерам.

4. Щелкните ОК, чтобы подтвердить новую настройку GPO.
Применение GPO
На данный момент GPO должна быть создана и готова к использованию. Последняя задача, которую вам нужно выполнить, – это применить эту GPO ко всем целевым компьютерам, на которых вы хотите включить WinRM. В этом учебнике вы не узнаете, как назначать GPO на целевые компьютеры.
Если вы не знаете, как назначить GPO набору компьютеров в Active Directory, вам следует ознакомиться с этой статьей.
Следующие шаги
В этом учебнике вы узнали, как включить PSRemoting разными способами. Как включить PSRemoting в значительной степени зависит от вашей среды, и я надеюсь, что я охватил ваш сценарий здесь.
Теперь используйте полученные знания, выйдите и начните использовать PSRemoting в вашей среде!