Поделиться через


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

Запрос подтверждения перед выполнением командлета.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Принудительное выполнение команды без запроса на подтверждение пользователем.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SkipNetworkProfileCheck

Указывает, что этот командлет включает удаленное взаимодействие в клиентских версиях ОС Windows, если компьютер находится в общедоступной сети. Этот параметр включает правило брандмауэра для общедоступных сетей, которое разрешает удаленный доступ только с компьютеров, находящихся в той же локальной подсети.

Этот параметр не оказывает влияния на серверные версии ОС Windows, в которых для общедоступных сетей по умолчанию задано правило брандмауэра локальной подсети. Если правило брандмауэра локальной подсети отключено в версии сервера, Enable-PSRemoting повторно включает его независимо от значения этого параметра.

Чтобы удалить ограничение локальной подсети и включить удаленный доступ из всех расположений в общедоступных сетях, используйте Set-NetFirewallRule командлет в модуле NetSecurity .

Этот параметр появился в PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Показывает, что произойдет при запуске командлета. Командлет не выполняется.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Входные данные

None

Невозможно передать объекты в этот командлет.

Выходные данные

String

Этот командлет возвращает строки, которые описывают результаты его выполнения.

Примечания

В 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 . Это обеспечивает удаленный доступ к конфигурациям сеансов, зарезервированным для локального использования.