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

Подключаемый модуль PowerShell поддерживает Windows Remote Management (WinRM) 2.0 в качестве протокола управления.

Поддерживаются следующие способы проверки подлинности.
Метод проверки подлинности Сведения
Обычная Незащищенный механизм проверки подлинности, использующий имя пользователя и пароль.
Kerberos Защищенный протокол проверки подлинности, использующий билеты для проверки удостоверения клиента и сервера.
Примечание: Подключаемый модуль PowerShell не поддерживает делегирование учетных данных пользователя в WinRM, и метод проверки подлинности CredSSP не поддерживается.

WinRM по протоколу HTTP

Подключаемый модуль PowerShell поддерживает обмен данными с узлом WinRM по протоколу HTTP. Несмотря на то, что WinRM выполняет проверку подлинности при обмене данными, передаваемые данные не шифруются и передаются по сети в виде обычного текста. Следует использовать протокол HTTP, если между компьютерами, которые обмениваются данными, настроен набор протоколов IPSec.

Чтобы использовать обычную проверку подлинности, необходимо задать для свойства AllowUnencrypted значение true и в конфигурации службы, и в конфигурации клиента WinRM. Пример настройки HTTP см. в разделе Настройка WinRM для использования протокола HTTP.

WinRM по протоколу HTTPS

Подключаемый модуль PowerShell поддерживает обмен данными с узлом WinRM по протоколу HTTPS. Можно использовать протокол HTTPS в качестве более безопасного способа обмена данными.

Чтобы использовать протокол HTTPS, необходимо создать сертификат для проверки подлинности сервера и установить сертификат на узле WinRM. Пример конфигурации HTTPS см. в разделе Настройка WinRM для использования HTTPS.

Настройка WinRM для использования протокола HTTP

Можно настроить узел WinRM для обмена данными с подключаемым модулем PowerShell по протоколу HTTP.

С помощью команд на компьютере узла WinRM необходимо изменить конфигурацию WinRM. Можно использовать один и тот же компьютер в качестве службы WinRM и клиента WinRM.

Важно!: Если пропустить какое-либо из действий при настройке WinRM для использования протокола HTTP, то, возможно, узел не будет добавлен, а в журнале появится сообщение об ошибке, подобное приведенному ниже.
Caused by: org.dom4j.DocumentException: Error on line -1 of document : Premature end of file. 
Nested exception: Premature end of file.
at org.dom4j.io.SAXReader.read(SAXReader.java:482)
at org.dom4j.DocumentHelper.parseText(DocumentHelper.java:278)
at com.xebialabs.overthere.cifs.winrm.connector.JdkHttpConnector.sendMessage(JdkHttpConnector.java:117)

Процедура

  1. Выполните следующую команду для установки значений конфигурации WinRM по умолчанию.
    c:\> winrm quickconfig
  2. (Необязательно) Выполните следующую команду, чтобы убедиться, что прослушиватель работает, и проверить порты по умолчанию.
    c:\> winrm e winrm/config/listener

    Порты по умолчанию: 5985 для протокола HTTP и 5986 для протокола HTTPS.

  3. Включите обычную проверку подлинности в службе WinRM.
    1. а. Выполните следующую команду, чтобы проверить, разрешается ли обычная проверка подлинности.
      c:\> winrm get winrm/config/service
    2. б. Выполните следующую команду, чтобы включить обычную проверку подлинности.
      c:\> winrm set winrm/config/service/auth @{Basic="true"}
  4. Выполните следующую команду, чтобы разрешить передачу незашифрованных данных в службе WinRM.
    c:\> winrm set winrm/config/service @{AllowUnencrypted="true"}
  5. Если уровень защиты маркера привязки канала службы WinRM имеет значение strict, измените его на relaxed.
    c:\> winrm set winrm/config/service/auth @{CbtHardeningLevel="relaxed"}
  6. Включите обычную проверку подлинности на клиенте WinRM.
    1. а. Выполните следующую команду, чтобы проверить, разрешается ли обычная проверка подлинности.
      c:\> winrm get winrm/config/client
    2. б. Выполните следующую команду, чтобы включить обычную проверку подлинности.
      c:\> winrm set winrm/config/client/auth @{Basic="true"}
  7. Выполните следующую команду, чтобы разрешить передачу незашифрованных данных на клиенте WinRM.
    c:\> winrm set winrm/config/client @{AllowUnencrypted="true"}
  8. Если компьютер узла WinRM находится во внешнем домене, выполните следующую команду, чтобы указать доверенные узлы.
    c:\> winrm set winrm/config/client @{TrustedHosts="узел1, узел2, узел3"}
  9. Выполните следующую команду, чтобы проверить подключение к службе WinRM.
    c:\> winrm identify -r:http://winrm_server:5985 -auth:basic -u:имя_пользователя -p:пароль -encoding:utf-8

Настройка WinRM для использования HTTPS

Можно настроить узел WinRM для обмена данными с подключаемым модулем PowerShell по протоколу HTTPS.

Для обмена данными по протоколу HTTPS узлу WinRM требуется сертификат. Можно получить сертификат или создать его. Например можно создать самозаверяющий сертификат с помощью средства создания сертификатов (makecert.exe), которое является частью пакета SDK .NET Framework.

Необходимые условия

Процедура

  1. Создайте самозаверяющий сертификат.
    Следующая командная строка содержит пример синтаксиса для создания сертификата на узле WinRM с помощью makecert.exe.

    makecert.exe -r -pe -n "CN=host_name-3,O=organization_name" -e mm/dd/yyyy -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 certificate_name.cer

  2. Добавьте созданный сертификат с помощью консоли управления Microsoft.
    1. а. Запустите mmc.exe.
    2. б. Выберите Файл > Добавить/удалить привязку.
    3. в. В списке доступных привязок выберите Сертификаты и нажмите кнопку Добавить.
    4. г. Выберите Учетная запись компьютера и нажмите Далее.
    5. д. Щелкните элемент Готово.
    6. е. Убедитесь, что сертификат установлен в расположения Корень консоли > Сертификаты (локальный компьютер) > Личные > Сертификаты и Корень консоли > Сертификаты (локальный компьютер) > Доверенные корневые центры сертификации > Сертификаты.
      Если сертификат не установлен в папки «Доверенные корневые центры сертификации» и «Личные», необходимо установить его вручную.
  3. Создайте HTTPS-прослушиватель с помощью корректного отпечатка и имени узла.
    Следующая командная строка содержит пример синтаксиса для создания HTTPS-прослушивателя.

    winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname="host_name";CertificateThumbprint="certificate_thumbprint"}

    Примечание: Опустите пробелы в отпечатке сертификата.
  4. Проверьте подключение.
    Следующая командная строка содержит пример синтаксиса для тестирования подключения.

    winrs -r:https://host_name:port_number -u:user_name -p:password hostname