【Hyper-V】統合サービスの「データ交換」ってなに?

Hyper-VのゲストOSに「統合サービス」をインストールすると、ゲストOSで以下の機能が使用できるようになります。

  • オペレーティングシステムのシャットダウン
  • 時刻の同期
  • データ交換
  • ハードビート
  • バックアップ(ボリュームスナップショット)

これらの機能は、以下の画面から一部を無効にすることも可能です。

image

この中で、「データ交換」とはどんな機能なのか?というご質問をいただきました。実は、恥ずかしながら私もきちんと把握していなかったので調べてみました。

当初、ホストとゲストの間でファイルを交換できるのかな?と思いこんでおりましたが、どうやら違うようですね…。

要は、

ホストとゲストの間で情報を交換(実際にはレジストリの値)するしくみ

です…といっても、なんだかよくわからないですよね。すみません。

ここで、以下の図をご覧ください。

プレゼンテーション1
※上のPPTのクリップアートが気になる方は、ここをクリック

管理者が操作するPCと、ゲストOSがネットワーク的に通信が可能であれば、WMIのWin32_OperatingSystem等を通じてゲストOSの情報を収集することが可能です。

しかし、ゲストOSが使用しているネットワークが「プライベート」であったり、IPアドレスの体系が全く異なる場合には、いくら管理者といえどもゲストOSに接続することができません。セキュアな環境を構築したいと考える場合には、ゲストOSが使用するネットワークカードは、物理ネットワークカードから切り離すことになるでしょう。それでも、ゲストOSが大量に存在する場合には、スクリプト等でちょちょいと「ゲストOSリスト」なんてものを作成したいはずです。

そんなときは、ホストOSを介してゲストOSの情報を収集することが可能です。これを実現してくれるのが、ゲストOSにインストールされた「データ交換」機能なのです。

ちなみに、「データ交換」機能は、直訳すれば「Data Exchange」ですが、WEB等で記事を探そうとすると、これではヒットしずらいようです。多くの記事では 「KVP Exchange」という言葉が使われています。KVPとは Key Value Pair のことで、ご想像とおりXML形式のデータを指しています。つまり、ゲストOSの情報を KVPで交換できるということを意味しています。

実際にデータ交換を行うには、おなじみ WMI(Windows Management Instrumentation)に用意された仮想マシン用のクラス(msvm_*)を使用します。つまり、スクリプトの出番であると..。

 

具体的な使い方は次の投稿で..。

つづき https://blogs.technet.com/b/junichia/archive/2009/06/13/3253986.aspx