PowerShell プラグインと Windows PowerShell の間の接続を確立するには、サポートされている通信プロトコルのいずれかを使用するように WinRM を構成する必要があります。

PowerShell プラグインでは、Windows リモート管理 (WinRM) 2.0 が管理プロトコルとしてサポートされています。

次の認証方法がサポートされます。
認証方法 詳細
基本 ユーザー名とパスワードを必要とする、セキュアでない認証メカニズム。
Kerberos チケットを使用してクライアントの ID とサーバを検証するセキュアな認証プロトコル。
注: PowerShell プラグインでは WinRM でのユーザー認証情報の委任はサポートされておらず、CredSSP は認証方法としてサポートされていません。

HTTP 経由の WinRM

PowerShell プラグインでは、HTTP プロトコルを介した WinRM ホストとの通信がサポートされています。WinRM では通信が認証されますが、データ転送は暗号化されず、ネットワーク上でプレーン テキスト形式で送信されます。IPSec が通信を行うマシン間で構成されている場合は、HTTP プロトコルを使用する必要があります。

基本認証を使用するには、サービスおよびクライアントの WinRM 構成で AllowUnencrypted プロパティを true に設定する必要があります。HTTP 構成の例については、HTTP を使用するための WinRM の構成を参照してください。

HTTPS 経由の WinRM

PowerShell プラグインでは、HTTPS プロトコルを介した WinRM ホストとの通信がサポートされています。よりセキュアな通信手段として HTTPS プロトコルを使用することができます。

HTTPS プロトコルを使用するには、サーバ認証用に証明書を生成し、WinRM ホストにインストールする必要があります。HTTPS 構成の例については、HTTPS を使用するための WinRM の構成を参照してください。

Kerberos 認証

PowerShell ホストを追加および管理する場合は、Kerberos 認証を使用できます。Kerberos 認証では、ドメイン ユーザーは WinRM を経由して、PowerShell が有効なリモート マシン上でコマンドを実行できます。

PowerShell ホストで WinRM を構成するには、次のコマンドを実行します。
winrm quickconfig
winrm set winrm/config/service/auth '@{Kerberos="true"}'
winrm set winrm/config/winrs @{MaxMemoryPerShellMB="2048"}

詳細については、『Automation Orchestrator プラグインの Kerberos 認証の構成』を参照してください。

HTTP を使用するための WinRM の構成

WinRM ホストを構成して、HTTP プロトコルを介した PowerShell プラグインとの通信を有効にできます。

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="host1, host2, host3"}
  9. 次のコマンドを実行して WinRM サービスへの接続をテストします。
    c:\> winrm identify -r:http://winrm_server:5985 -auth:basic -u:user_name -p:password -encoding:utf-8

HTTPS を使用するための WinRM の構成

WinRM ホストを構成して、HTTPS プロトコルを介した PowerShell プラグインとの通信を有効にできます。

WinRM ホストで HTTPS プロトコルを介した通信を有効にするには、証明書が必要です。証明書を取得するか、生成します。

前提条件

  • WinRM を構成して HTTP プロトコルを使用します。詳細については、HTTP を使用するための WinRM の構成を参照してください。
  • WinRM ホストで Microsoft 管理コンソール (mmc.exe) にアクセスできることを確認します。

手順

  1. 自己署名の証明書を生成します。
    次のコマンド ラインには、WinRM ホスト上で PowerShell コマンドレット New-SelfSignedCertificate を使用して証明書を作成するための構文の例が含まれています。
    New-SelfSignedCertificate -CertStoreLocation cert:\localmachine\my -DnsName ("machinename.subdomain.company.com", "machinename") -NotAfter (get-date).AddYears(5) -Provider "Microsoft RSA SChannel Cryptographic Provider" -KeyLength 2048

    この例では、-NotAfter パラメータは、証明書が 5 年後に期限切れになることを指定します。このパラメータが指定されていない場合、証明書は 1 年で期限切れになります。自己署名証明書の作成方法については、こちらを参照してください。

  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