Hyper-V ホストでの WinRM の構成

Windows Remote Management を構成すると、BigFix Inventory サーバーで、インフラストラクチャー内にインストールされている仮想マシンの仮想化トポロジーに関するデータを収集することができます。

始める前に

  • PVU を正しく計算するために必要なデータを取得するには、ローカル管理者として Hyper-V ホストにログインする必要があります。これが必要な理由は、MsCluster 名前空間にアクセスする Windows Management Instrumentation 呼び出しが管理者アカウントを必要とするためです。
  • ハードコーディングされた選択専用ステートメントは、WinRM を介して実行されます。取得されたデータは、データベース・スキーマに格納されます。BigFix Inventory は Hyper-V の設定を変更しません。また、他の方法でこの設定に影響を与えることもありません。

このタスクについて

WinRM サービスは、別々のベンダーからのハードウェアとオペレーティング・システム間の協働を可能にする WS-Management 仕様を実装しています。BigFix Inventory サーバーは、VM マネージャーとして定義されたこのサービスに接続し、仮想化階層に関するデータを収集します。したがって、インフラストラクチャー内の各 Hyper-V ホスト (クラスターの一部である Hyper-V ホストを含む) で、以下の手順を実行する必要があります。これにより、WinRM サービスが確実に実行され、またサーバーと通信できるよう構成されます。

手順

  1. HTTP および HTTPS リスナーの定義デフォルトでは、リスナーが定義されていないため、WinRM サービスとの通信は使用不可になっています。現在定義されているリスナーがあるかどうかを確認するには、以下のコマンドを入力します:winrm enumerate winrm/config/listener. 出力が返されない場合は、リスナーは定義されていません。
    1. デフォルトの HTTP リスナーを定義するには、以下のように入力します。
      winrm quickconfig
      このコマンドにより、WinRM サービスが開始され、システムの始動時にこのサービスが自動的に開始するように設定されます。また、デフォルトのポート (任意の IP からの要求を受け入れるポート) 上に HTTP リスナーが作成され、このサービスに対してインターネット接続ファイアウォールの例外が定義され、HTTP ポートが開かれます。WinRM サービスのバージョンに応じて、デフォルトの HTTP ポートは 80 または 5985 のいずれかになります。詳しくは、『Installation and Configuration for Windows Remote Management』を参照してください。
    2. セキュア接続 (HTTPS) のリスナーを定義するには、Hyper-V ホストに有効な証明書があり、その CN が、Hyper-V に接続するために使用しているホスト名に一致する必要があります。また、その証明書の CertificateThumbprint を使用してリスナーを作成する必要もあります。詳しくは、以下の Microsoft 提供の資料を参照してください:http://support.microsoft.com/kb/2019527.。テスト目的の自己署名証明書を作成することもできますが、その場合は、証明書の管理者に相談してください。
      注: 適切な証明書がマシン上で検出できない場合、上記のコマンドは機能せず、「The certificate must have a CN matching the hostname, be appropriate for Server Authentication, and not be expired, revoked, or self-signed. (証明書は、ホスト名に一致する CN を持ち、サーバー認証に適格であり、有効期限切れも取り消しもなく、自己署名があるものでなければなりません。)」という出力が返されます。自己署名証明書を使用する必要がある場合は、以下のコマンドを起動して、手動で自己署名証明書を生成してリスナーを作成することができます。
      winrm create winrm/config/listener?Address=*+Transport=HTTPS 
      @{Hostname=”<the name of your server>”;CertificateThumbprint=”<certificate thumbprint>”}
      この場合、ファイアウォール設定を手動で構成する必要があります。
  2. WinRM の Negotiate 認証スキームの使用可能化。WinRM サービスには、クライアント・サイドを認証するために使用できるいくつかの認証方式があります。BigFix Inventory サーバーでは、Negotiate 認証スキームを使用します。このスキームはデフォルトで使用可能になっています。
    1. プロパティーの現在の設定を確認するには、以下のように入力します。
      winrm get winrm/config/service/auth
    2. このプロパティーに必須値を設定するには、以下のように入力します。
      winrm set winrm/config/service/auth @{Negotiate="true"}
  3. WinRM の AllowUnencrypted プロパティーの設定サーバーでは、このプロパティーを「TRUE」に設定する必要があります。
    1. 現在の設定を確認するには、以下のように入力します。
      winrm get winrm/config/service
    2. このプロパティーに必須値を設定するには、以下のように入力します。
      winrm set winrm/config/service @{AllowUnencrypted="true"}
      注: この値を「TRUE」に設定しても、ユーザー名やパスワードなどの機密データが、暗号化されていない形式でネットワークを介して渡されるわけではありません。SOAP メッセージの内容のみがプレーン・テキストで送信されます。セキュリティー上の理由でこれを受け入れられない場合は、HTTPS リスナーを定義してセキュア・トランスポート (HTTPS) を使用する一方で、BigFix Inventory サーバーで VM マネージャーを定義して、TLS プロトコルを使用してすべてのネットワーク・トラフィックが暗号化されるようにしてください。
  4. リスナーの検証HTTP リスナーまたは HTTPS リスナーを定義したら、Hyper-V サーバーにリモート接続できることを確認します。
    1. Hyper-V サーバー上で、HTTP トランスポートまたは HTTPS トランスポート用の Windows リモート管理クライアントが listen するポートを決定します。Windows コマンド行に次のコマンドを入力します。
      winrm enumerate winrm/config/listener
      • ポート番号が Port 行に示されている場合は、リスナーが正しく作成されています。
      • エラーが表示される場合、またはトランスポートの情報がない場合は、リスナーが正しく作成されていません。ステップ 1 に戻り、リスナーを再定義してください。
    2. リスナーを検証するには、以下のように入力します。
      winrm enumerate winrm/config/listener /r:<transport>://
      <Hyper-V_server_name>:<port>/wsman /u:<user_id> /p:<password> /a:Negotiate
      ここで、
      <transport>
      HTTP または HTTPS のいずれかです。
      <Hyper-V_server_name>
      Hyper-V サーバーのホスト名。HTTPS を使用している場合、ホスト名は、証明書の CN に一致する必要があります。
      <port>
      前のステップで取得したポート番号。
      <user_id>
      Hyper-V サーバーに接続するために使用されるユーザー ID。
      <password>
      Hyper-V サーバーに接続するために使用されるパスワード。
      例:
      winrm enumerate winrm/config/listener /r:https://
      myhyperv.ibm.com:5986/wsman /u:administrator /p:abc /a:Negotiate
  5. 仮想システム管理サービスが稼働しているかどうかの確認Hyper-V を管理するサービスが稼働しているかどうかを確認するには、Hyper-V サーバー上で、「Administrator Tools」 > 「サービス」を選択します。「Hyper-V Virtual Machine Management」という名前のサービスを探します。
    • このサービスが存在しているが、稼働していない場合は、サービスを始動します。
    • このサービスが存在しない場合は、Hyper-V ホストが正しく構成されていません。
  6. MsCluster リソースの検証サーバーがクラスター化されている場合は、MsCluster 名前空間にアクセスできることを確認します。Hyper-V サーバー上で、以下のコマンドを Windows コマンド行に入力します。
    winrm enumerate wmi/root/MsCluster/* 
    -dialect:"http://schemas.microsoft.com/wbem/wsman/1/WQL"
    -filter:"SELECT PrivateProperties, Type FROM MsCluster_Resource WHERE Type='Network Name' AND Flags='1'"

    このコマンドが失敗する場合は、MsCluster 用の WMI に関する Microsoft の資料を参照してください。

  7. リモート接続およびサーバー証明書の確認リモート接続およびサーバー証明書を確認するには、以下のコマンドを Windows コマンド行に入力します。
    制約事項: 以下のコマンドは、BigFix Inventory サーバーの Windows コマンド行に入力してください。Windows オペレーティング・システムが稼働するコンピューターにこのサーバーがインストールされていない場合は、Hyper-V ホストではなく、かつ Windows 2008 以降が稼働するコンピューターを使用します。
    winrm set winrm/config/client @{TrustedHosts="<Hyper-V_server_name>"} 
    winrm get winrm/config/client /r:<transport>://
    <Hyper-V_server_name>:<port>/wsman /u:<user_id> /p:<password> /a:Negotiate
    ここで、
    <transport>
    HTTP または HTTPS のいずれかです。
    <Hyper-V_server_name>
    Hyper-V サーバーのホスト名。HTTPS を使用している場合、ホスト名は、証明書の CN に一致する必要があります。
    <port>
    HTTP トランスポートまたは HTTPS トランスポート用の Windows リモート管理クライアントが listen するポート番号。
    <user_id>
    Hyper-V サーバーに接続するために使用されるユーザー ID。
    <password>
    Hyper-V サーバーに接続するために使用されるパスワード。
    例:
    winrm set winrm/config/client @{TrustedHosts="myhyperv.ibm.com"}
    winrm get winrm/config/client /r:https://
    myhyperv.ibm.com:5986/wsman /u:administrator /p:abc /a:Negotiate
    自己署名証明書を使用しているときは、しばしば以下のエラーが返されます。
    WSManFault Message = The server certificate on the destination computer (myhyperv.ibm.com:5986) has the following errors: has the following errors: The SSL certificate is signed by an unknown certificate authority.
    このエラーが表示された場合は、自己署名証明書を Hyper-V ホストからエクスポートして、BigFix Inventory ホストにインポートします。その他のエラーについては、Microsoft の資料を参照し、返されたエラー・コードについて調べてください。
    ヒント: Hyper-V 構成について詳しくは、以下 の資料を参照してください。「Hyper-V 接続の失敗 CODVM0005E」。