Сведения о требованиях к удаленному подключению

КРАТКОЕ ОПИСАНИЕ

Описание требований к системе и конфигурации для выполнения удаленных команд в PowerShell.

ПОДРОБНОЕ ОПИСАНИЕ

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

Примечание. Многие командлеты (включая Командлеты Get-Service, Get-Process, Get-WMIObject, Get-EventLog и Get-WinEvent) получают объекты с удаленных компьютеров с помощью методов Microsoft платформа .NET Framework для получения объектов. Они не используют инфраструктуру удаленного взаимодействия PowerShell. Требования в этом документе не применяются к этим командлетам.

Чтобы найти командлеты с параметром ComputerName, но не использующие удаленное взаимодействие PowerShell, прочитайте описание параметра ComputerName командлетов.

ТРЕБОВАНИЯ К СИСТЕМЕ

Для запуска удаленных сеансов в Windows PowerShell 3.0 локальные и удаленные компьютеры должны иметь следующие параметры:

  • Windows PowerShell 3.0 или более поздней версии
  • Microsoft платформа .NET Framework 4 или более поздней версии
  • Удаленное управление Windows 3.0

Для запуска удаленных сеансов на Windows PowerShell 2.0 локальные и удаленные компьютеры должны иметь следующие параметры:

  • Windows PowerShell 2.0 или более поздней версии
  • Microsoft платформа .NET Framework 2.0 или более поздней версии
  • Удаленное управление Windows 2.0

Удаленные сеансы между компьютерами под управлением Windows PowerShell 2.0 и Windows PowerShell 3.0. Однако функции, которые выполняются только в Windows PowerShell 3.0, например возможность отключения и повторного подключения к сеансам, доступны только в том случае, если оба компьютера работают под управлением Windows PowerShell 3.0.

Чтобы найти номер версии установленной версии PowerShell, используйте $PSVersionTable автоматическую переменную.

Windows Remote Management (WinRM) 3.0 и Microsoft платформа .NET Framework 4 включены в Windows 8, Windows Server 2012 и более новых выпусках операционной системы Windows. WinRM 3.0 входит в Windows Management Framework 3.0 для старых операционных систем. Если на компьютере нет требуемой версии WinRM или Microsoft платформа .NET Framework, установка завершится ошибкой.

РАЗРЕШЕНИЯ ПОЛЬЗОВАТЕЛЯ

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

Разрешения, необходимые для создания сеансов и выполнения команд на удаленном компьютере (или в удаленном сеансе на локальном компьютере), устанавливаются конфигурацией сеанса (также называемой конечной точкой) на удаленном компьютере, к которому подключается сеанс. В частности, дескриптор безопасности в конфигурации сеанса определяет, у кого есть доступ к конфигурации сеанса и кто может использовать его для подключения.

Дескрипторы безопасности для конфигураций сеансов по умолчанию, Microsoft.PowerShell, Microsoft.PowerShell32 и Microsoft.PowerShell.Workflow разрешают доступ только членам группы "Администраторы".

Если у текущего пользователя нет разрешения на использование конфигурации сеанса, команда для выполнения команды (которая использует временный сеанс) или создание постоянного сеанса на удаленном компьютере завершается ошибкой. Пользователь может использовать параметр ConfigurationName командлетов, создающих сеансы, чтобы выбрать другую конфигурацию сеанса, если она доступна.

Члены группы администраторов на компьютере могут определить, у кого есть разрешение на удаленное подключение к компьютеру, изменив дескрипторы безопасности в конфигурациях сеансов по умолчанию и создав новые конфигурации сеансов с разными дескрипторами безопасности.

Дополнительные сведения о конфигурациях сеансов см. в разделе about_Session_Configurations.

СЕТЕВЫЕ РАСПОЛОЖЕНИЯ WINDOWS

Начиная с Windows PowerShell 3.0, командлет Enable-PSRemoting может включить удаленное взаимодействие в клиентских и серверных версиях Windows в частных, доменных и общедоступных сетях.

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

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

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

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

Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any

В Windows PowerShell 2.0 на серверных версиях Windows Enable-PSRemoting создает правила брандмауэра, разрешающие удаленный доступ во всех сетях.

В Windows PowerShell 2.0 в клиентских версиях Windows Enable-PSRemoting создавать правила брандмауэра только в частных и доменных сетях. Если сетевое расположение является общедоступным, Enable-PSRemoting завершается ошибкой.

ЗАПУСК ОТ ИМЕНИ АДМИНИСТРАТОРА

Для следующих операций удаленного взаимодействия требуются права администратора:

  • Установка удаленного подключения к локальному компьютеру. Это обычно называется сценарием замыкания на себя.

  • Управление конфигурациями сеансов на локальном компьютере.

  • Просмотр и изменение параметров WS-Management на локальном компьютере. Это параметры в узле LocalHost диска WSMAN:

Для выполнения этих задач необходимо запустить PowerShell с параметром "Запуск от имени администратора", даже если вы являетесь членом группы "Администраторы" на локальном компьютере.

В Windows 7 и Windows Server 2008 R2, чтобы запустить Windows PowerShell с параметром "Запуск от имени администратора":

  1. Нажмите кнопку "Пуск", щелкните "Все программы", выберите "Стандартные" и выберите папку Windows PowerShell.
  2. Щелкните правой кнопкой мыши Windows PowerShell и выберите команду "Запуск от имени администратора".

Чтобы запустить Windows PowerShell с параметром "Запуск от имени администратора", выполните следующие действия.

  1. Нажмите кнопку "Пуск", щелкните "Все программы" и выберите папку Windows PowerShell.
  2. Щелкните правой кнопкой мыши Windows PowerShell и выберите команду "Запуск от имени администратора".

Параметр "Запуск от имени администратора" также доступен в других записях проводника Windows для Windows PowerShell, включая сочетания клавиш. Просто щелкните элемент правой кнопкой мыши и выберите команду "Запуск от имени администратора".

При запуске Windows PowerShell из другой программы, например Cmd.exe, используйте параметр "Запуск от имени администратора", чтобы запустить программу.

НАСТРОЙКА КОМПЬЮТЕРА ДЛЯ УДАЛЕННОГО ВЗАИМОДЕЙСТВИЯ

Компьютеры под управлением всех поддерживаемых версий Windows могут устанавливать удаленные подключения и выполнять удаленные команды в PowerShell без настройки. Тем не менее, чтобы получать подключения и разрешать пользователям создавать локальные и удаленные сеансы PowerShell, управляемые пользователем ("PSSessions"), и выполнять команды на локальном компьютере, необходимо включить удаленное взаимодействие PowerShell на компьютере.

Windows Server 2012 и более новых выпусках Windows Server включены для удаленного взаимодействия PowerShell по умолчанию. Если параметры изменены, можно восстановить параметры по умолчанию, запустив командлет Enable-PSRemoting.

Во всех других поддерживаемых версиях Windows необходимо запустить командлет Enable-PSRemoting, чтобы включить удаленное взаимодействие PowerShell.

Функции удаленного взаимодействия PowerShell поддерживаются службой WinRM, которая является реализацией протокола веб-служб для управления (WS-Management). При включении удаленного взаимодействия PowerShell вы изменяете конфигурацию по умолчанию WS-Management и добавляете конфигурацию системы, которая позволяет пользователям подключаться к WS-Management.

Чтобы настроить PowerShell для получения удаленных команд, выполните следующие действия.

  1. Запустите PowerShell с параметром "Запуск от имени администратора".
  2. В командной строке введите следующий текст: Enable-PSRemoting.

Чтобы убедиться, что удаленное взаимодействие настроено правильно, выполните тестовую команду, например следующую команду, которая создает удаленный сеанс на локальном компьютере.

New-PSSession

Если удаленное взаимодействие настроено правильно, команда создаст сеанс на локальном компьютере и вернет объект, представляющий сеанс. Выходные данные должны выглядеть примерно так:

Id Name        ComputerName    State    ConfigurationName
-- ----        ------------    -----    -----
1  Session1    localhost       Opened   Microsoft.PowerShell

Если команда завершается ошибкой, см. about_Remote_Troubleshooting.

ОБЩИЕ СВЕДЕНИЯ О ПОЛИТИКАХ

При удаленной работе используются два экземпляра PowerShell: один на локальном компьютере и один на удаленном компьютере. В результате на работу влияют политики Windows и политики PowerShell на локальных и удаленных компьютерах.

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

Основные ограничения проверки подлинности в Linux и macOS

При подключении из системы Linux или macOS к Windows обычная проверка подлинности по протоколу HTTP не поддерживается. Обычную проверку подлинности можно использовать по протоколу HTTPS, установив сертификат на целевом сервере. Сертификат должен иметь имя CN, соответствующее имени узла, срок действия которого не истек или отозван. Самозаверяющий сертификат можно использовать для тестирования.

Дополнительные сведения см. в разделе "Практическое руководство. Настройка WINRM для HTTPS ".

Следующая команда, выполняемая из командной строки с повышенными привилегиями, настроит прослушиватель HTTPS в Windows с установленным сертификатом.

$hostinfo = '@{Hostname="<DNS_NAME>"; CertificateThumbprint="<THUMBPRINT>"}'
winrm create winrm/config/Listener?Address=*+Transport=HTTPS $hostinfo

На стороне Linux или macOS выберите "Базовый" для проверки подлинности и -UseSSl.

ПРИМЕЧАНИЕ. Обычная проверка подлинности не может использоваться с учетными записями домена; требуется локальная учетная запись, и учетная запись должна находиться в группе "Администраторы".

# The specified local user must have administrator rights on the target machine.
# Specify the unqualified username.
$cred = Get-Credential username
$session = New-PSSession -Computer <hostname> -Credential $cred `
  -Authentication Basic -UseSSL

Альтернативой обычной проверке подлинности по протоколу HTTPS является Согласование. В результате проверка подлинности NTLM между клиентом и сервером и полезными данными шифруется по протоколу HTTP.

Ниже показано использование Negotiate с New-PSSession:

# The specified user must have administrator rights on the target machine.
$cred = Get-Credential username@hostname
$session = New-PSSession -Computer <hostname> -Credential $cred `
  -Authentication Negotiate

Примечание

Windows Server требует дополнительного параметра реестра, чтобы разрешить администраторам, кроме встроенного администратора, подключаться с помощью NTLM. См. параметр реестра LocalAccountTokenFilterPolicy в разделе "Согласование проверки подлинности в проверке подлинности для удаленных подключений"

СМ. ТАКЖЕ

about_Remote

about_Remote_Variables

about_PSSessions

Invoke-Command

Enter-PSSession

New-PSSession