Windows Virtual PC とリモート デスクトップ接続 (その2)|仮想化|ブログ|Computerworld

header_cwr_head_mid_fl_logo

CW_ウルトラバナー_Topics04

CW_ウルトラバナー_Topics05

CW_ウルトラバナー_Topics06

CW_ウルトラバナー_Topics07

CW_ウルトラバナー_Topics08

仮想化

Windows Virtual PC とリモート デスクトップ接続 (その2)

Posted by 山市良 ( 2010年04月12日 )

前回、Windows Virtual PC の仮想マシンのコンソール表示やデバイスの共有に、リモート デスクトップ接続テクノロジが利用されていることを説明しました。今回は、リモート デスクトップ接続テクノロジがどのように利用されているのか、詳しく見ていきましょう。

まず、次の質問に答えてください。

Q. Windows Virtual PC の仮想マシンでは、統合機能有効時にリモート デスクトップ接続テクノロジを利用します。では、ネットワーク接続を持たない仮想マシンで統合機能を有効にすることはできるでしょうか?

A. できます。仮想マシンのネットワーク接続の有無に関係なく、統合機能を有効にできます。

仮想マシンのウィンドウ (vmwindow.exe) は、ネットワーク経由で仮想マシンのゲスト OS にリモート デスクトップ接続しているわけではありません。仮想マシンのネットワーク接続を解除したとしても、仮想マシンのコンソール接続は失われません。同じコンピューター上で物理ネットワークを経由するのは、非効率的な方法です。

統合機能を有効にした仮想マシンのゲスト OS でNETSTAT -a コマンドを実行して、リモート デスクトップ接続で使用する RDP (Remote Desktop Protocol) ポート (3389/TCP) へのセッションを確認してみましょう。ホスト OS からの接続ではなく、ローカル ポートからの接続を確認できるはずです (左のスクリーンショットのlocalhost/VirtualXP-36130:1076 → localhost/VirtualXP-36130: 3389)。この RDP ポートに接続する発信元は、ゲスト OS のゲストコンポーネントに含まれるVirtual PC Integration Components Services Application (vmsrvc.exe、Windows Virtual PC 統合サービス) です。

仮想マシンのウィンドウ (vmwindow.exe) は、リモート デスクトップ接続クライアント (mstsc.exe) に含まれる ActiveX コントロール (mstscax.dll) を使用して、ゲスト OS に RDP 接続します。ただし、ホスト OS 側のネットワーク機能は経由しません。

Virtual PC Bus

ホスト OS とゲスト OS の間には、Virtual PC バスという仮想的な通信チャネルで 1 対 1 で接続されています。ホスト OS 側は Virtual PC ホスト バス (vpchbus.sys)、ゲスト OS 側は Virtual PC ゲスト バス (vpcgbus.sys) です。仮想マシンのウィンドウ (vmwindow.exe) は、リモート デスクトップ接続クライアントの ActiveX コントロール (mstscax.dll) を呼び出して、このバスを通して名前解決のような仕組みでゲスト OS の Virtual PC Integration Components Services Application と対話し、 Virtual PC Integration Components Services Application (vmsrvc.exe) が Terminal Services への RDP 接続を中継します。

RDP

前々回の投稿「Windows Virtual PC の USB サポート(その2)」で、仮想マシンに USB タイプの Bluetooth レシーバーを接続し、Bluetooth キーボードを仮想マシン専用に使えることを紹介しました。その際、「注) Bluetooth 対応ワイヤレス キーボードやワイヤレス マウスを利用するには、仮想マシンの統合機能を無効にする必要があります。統合機能が有効な状態では、ホストで使用するキーボードとマウスのみが使用できます。その理由については、次の次の投稿あたりで説明する予定です。」と書きました。リモート デスクトップ接続では、マウスとキーボードの入力は RDP 経由でリモート コンピューター (つまり、仮想マシンのゲスト OS) に送信されます。リモート デスクトップ接続のセッション内で、リモート側のマウスやキーボードは使えません。仮想マシンの統合機能を無効にする必要がある理由は、統合機能有効時がリモート デスクトップ接続だからです。

Windows Virtual PC の仮想マシンが統合機能有効時にリモート デスクトップ接続であることを知っていれば、仮想マシンのゲスト OS で発生した右のようなインストール エラーも簡単に解決できます。統合機能をいったん無効にして、再度、インストールすればよいのです。アプリケーションの中には、リモート デスクトップ接続経由でのインストールができないものがあります。

Windows Virtual PC とリモート デスクトップ接続の関係が分かってくると、Windows Virtual PC のさまざまな謎の答えが分かってきます。次回から、Windows Virtual PC の仮想アプリケーション モードについて説明します。これも、リモート デスクトップ接続と深い関係があります。

ページの先頭へ戻る