Enable-PSRemoting
Настраивает прием удаленных команд на компьютере.
Синтаксис
Enable-PSRemoting
[-Force]
[-SkipNetworkProfileCheck]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Описание
Командлет Enable-PSRemoting
настраивает компьютер для получения удаленных команд PowerShell, отправляемых с помощью технологии WS-Management.
Удаленное взаимодействие PowerShell включено по умолчанию в Windows Server 2012. Вы можете использовать Enable-PSRemoting
для включения удаленного взаимодействия PowerShell в других поддерживаемых версиях Windows и повторного включения удаленного взаимодействия в Windows Server 2012, если он отключен.
Эту команду необходимо выполнить только один раз на каждом компьютере, который будет принимать команды. Ее не нужно выполнять на компьютерах, которые только отправляют команды. Так как в такой конфигурации запускаются прослушиватели, мы рекомендуем использовать ее только при необходимости.
Начиная с PowerShell 3.0 командлет Enable-PSRemoting
может включить удаленное взаимодействие PowerShell в клиентских версиях Windows, когда компьютер находится в общедоступной сети. Дополнительные сведения см. в описании параметра SkipNetworkProfileCheck.
Командлет Enable-PSRemoting
выполняет следующие операции:
- Запускает командлет Set-WSManQuickConfig, который выполняет следующие задачи:
- запускает службу WinRM;
- устанавливает для службы WinRM автоматический тип запуска;
- создает прослушиватель, чтобы принимать запросы на любой IP-адрес;
- включает исключение брандмауэра для подключений WS-Management;
- Регистрирует конфигурации сеансов Microsoft.PowerShell и Microsoft.PowerShell.Workflow, если они еще не зарегистрированы.
- Регистрирует конфигурацию сеанса Microsoft.PowerShell32 на 64-разрядных компьютерах, если она еще не зарегистрирована.
- включает все конфигурации сеансов;
- изменяет дескриптор безопасности всех конфигураций сеансов, разрешая удаленный доступ;
- перезапускает службу WinRM, чтобы предыдущие изменения вступили в силу.
Чтобы запустить этот командлет на платформе Windows, запустите PowerShell с помощью параметра "Запуск от имени администратора". Это не относится к версиям Linux или MacOS PowerShell.
Внимание
В системах с PowerShell 3.0 и PowerShell 2.0 не используйте PowerShell 2.0 для запуска Enable-PSRemoting
и Disable-PSRemoting
командлетов. Команды могут казаться выполненными успешно, но удаленный доступ будет настроен неправильно. Удаленные команды и последующие попытки включить или отключить удаленный доступ, скорее всего, будут завершаться сбоем.
Примеры
Пример 1. Настройка приема удаленных команд на компьютере
Эта команда настраивает прием удаленных команд на компьютере.
Enable-PSRemoting
Пример 2. Настройка приема удаленных команд без запроса подтверждения на компьютере
Эта команда настраивает прием удаленных команд на компьютере. Параметр Force подавляет запросы пользователя.
Enable-PSRemoting -Force
Пример 3. Разрешение удаленного доступа для клиентов
В этом примере показано, как разрешить удаленный доступ из общедоступных сетей в клиентских версиях ОС Windows. Имя правила брандмауэра может отличаться для разных версий Windows.
Используется Get-NetFirewallRule
для просмотра списка правил. Перед включением правила брандмауэра просмотрите параметры безопасности в правиле, чтобы убедиться, что конфигурация подходит для вашей среды.
Get-NetFirewallRule -Name 'WINRM*' | Select-Object -Property Name
Name
----
WINRM-HTTP-In-TCP-NoScope
WINRM-HTTP-In-TCP
WINRM-HTTP-Compat-In-TCP-NoScope
WINRM-HTTP-Compat-In-TCP
Enable-PSRemoting -SkipNetworkProfileCheck -Force
Set-NetFirewallRule -Name 'WINRM-HTTP-In-TCP' -RemoteAddress Any
По умолчанию Enable-PSRemoting
создаются сетевые правила, разрешающие удаленный доступ из частных и доменных сетей. В команде используется параметр SkipNetworkProfileCheck для разрешения удаленного доступа из общедоступных сетей в той же локальной подсети. В команде указывается параметр Force, блокирующий вывод запросов подтверждения.
Параметр SkipNetworkProfileCheck не влияет на версии операционной системы Windows, которая разрешает удаленный доступ из общедоступных сетей в одной локальной подсети по умолчанию.
Командлет Set-NetFirewallRule
в модуле NetSecurity добавляет правило брандмауэра, которое разрешает удаленный доступ из общедоступных сетей из любого удаленного расположения. включая расположения в других подсетях.
Примечание.
Имя правила брандмауэра может отличаться в зависимости от версии Windows. Get-NetFirewallRule
Используйте командлет для перечисления имен правил в системе.
Параметры
-Confirm
Запрос подтверждения перед выполнением командлета.
Тип: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Force
Принудительное выполнение команды без запроса на подтверждение пользователем.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-SkipNetworkProfileCheck
Указывает, что этот командлет включает удаленное взаимодействие в клиентских версиях ОС Windows, если компьютер находится в общедоступной сети. Этот параметр включает правило брандмауэра для общедоступных сетей, которое разрешает удаленный доступ только с компьютеров, находящихся в той же локальной подсети.
Этот параметр не оказывает влияния на серверные версии ОС Windows, в которых для общедоступных сетей по умолчанию задано правило брандмауэра локальной подсети. Если правило брандмауэра локальной подсети отключено в версии сервера, Enable-PSRemoting
повторно включает его независимо от значения этого параметра.
Чтобы удалить ограничение локальной подсети и включить удаленный доступ из всех расположений в общедоступных сетях, используйте Set-NetFirewallRule
командлет в модуле NetSecurity .
Этот параметр появился в PowerShell 3.0.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-WhatIf
Показывает, что произойдет при запуске командлета. Командлет не выполняется.
Тип: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
None
Невозможно передать объекты в этот командлет.
Выходные данные
Этот командлет возвращает строки, которые описывают результаты его выполнения.
Примечания
В PowerShell 3.0 Enable-PSRemoting
создаются следующие исключения брандмауэра для обмена данными WS-Management.
В версиях операционной системы Enable-PSRemoting
Windows создаются правила брандмауэра для частных и доменных сетей, которые разрешают удаленный доступ и создают правило брандмауэра для общедоступных сетей, разрешающих удаленный доступ только с компьютеров в одной локальной подсети.
В клиентских версиях операционной системы Enable-PSRemoting
Windows в PowerShell 3.0 создаются правила брандмауэра для частных и доменных сетей, разрешающих неограниченный удаленный доступ. Чтобы создать правило брандмауэра для общедоступных сетей, разрешающее удаленный доступ из той же локальной подсети, используйте параметр SkipNetworkProfileCheck.
Чтобы создать правило брандмауэра для общедоступных сетей, которое удаляет ограничение локальной подсети и разрешает удаленный доступ, используйте Set-NetFirewallRule
командлет в модуле NetSecurity, чтобы выполнить следующую команду: Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any
В PowerShell 2.0 Enable-PSRemoting
создаются следующие исключения брандмауэра для обмена данными WS-Management.
В серверных версиях ОС Windows он создает правила брандмауэра, разрешающие удаленный доступ, для всех сетей.
В клиентских версиях операционной системы Enable-PSRemoting
Windows в PowerShell 2.0 создается исключение брандмауэра только для доменных и частных сетей. Чтобы свести к минимуму риски безопасности, Enable-PSRemoting
не создает правило брандмауэра для общедоступных сетей в клиентских версиях Windows. Если текущее сетевое расположение является общедоступным, Enable-PSRemoting
возвращает следующее сообщение: не удается проверить состояние брандмауэра.
Начиная с PowerShell 3.0, включает все конфигурации сеансов, Enable-PSRemoting
задав значение свойства Enabled для всех конфигураций сеансов $True
.
В PowerShell 2.0 Enable-PSRemoting
удаляет параметр Deny_All из дескриптора безопасности конфигураций сеансов. В PowerShell 3.0 Enable-PSRemoting
удаляет параметры Deny_All и Network_Deny_All . Это обеспечивает удаленный доступ к конфигурациям сеансов, зарезервированным для локального использования.
Связанные ссылки
PowerShell