こんにちは、阿久津です。今週からチューニング対象にWindows 7を加え、本連載をお送り致します。しばらくの間はWindows 7が中心となりますが、幅広く各OSのチューニングをお送りしますので、Windows XPやWindows Vistaのユーザーも、Windows 7を導入された方も是非ご覧ください。

さて、Windows 7 Professional以上の上位エディションには、「Windows XP Mode」というWindows Virtual PCと、Windows XP Service Pack 3を仮想化したイメージファイルがセットになった仮想環境が提供されます。同仮想環境のポイントとして数え上げられるのが、Windows Virtual PCのウィンドウ内で動作する"仮想マシン"モードと、Windows XP Modeのアプリケーションを単独で操作する"仮想アプリケーション"モード。Internet Explorer 6やWindows 7で動作しない古いアプリケーションを、Windows 7上でアプリケーションのように動作させることが可能です。

この仮想アプリケーションモードは、ゲストOS(Windows XP Mode: 仮想マシン)側の「%ALLUSERSPROFILE% \ スタートメニュー」フォルダに用意されたショートカットファイルを元に、ホストOS(Windows 7)のプログラムフォルダ(「%APPDATA% \ Microsoft \ Windows \ Start Menu \ Programs \ Windows Virtual PC \ Windows XP Mode アプリケーション」)にショートカットファイルを作成するというもの(図01~02)。

図01: 仮想アプリケーションモードを実行するには、一度、仮想マシンを終了しなければなりません。画面のようなダイアログが表示されたら、ゲストOS上の作業データを保存してから<続行>ボタンをクリックします

図02: こちらが仮想アプリケーションモード。Windows 7上でゲストOSのInternet Explorer 6が単独で動作しています

興味深いのが、仮想アプリケーションの自動公開タイミング。ホストOS側に作成されたInternet Explorer 6のショートカットファイルを調べてみますと、リンク先は「%SystemRoot% \ system32 \ rundll32.exe %SystemRoot% \ system32 \ VMCPropertyHandler.dll,LaunchVMSal "Windows XP Mode" "||14c0ece8" "Internet Explorer"」となっています。一見しますと、VMCPropertyHandler.dllが持つAPI「LaunchVMSal」を用いてホストOSに公開しているのでしょう(図03)。

図03: 仮想アプリケーションモード用ショートカットアイコンのプロパティダイアログを確認しますと、リンク先が「%SystemRoot% \ system32 \ rundll32.exe %SystemRoot% \ system32 \ VMCPropertyHandler.dll,LaunchVMSal "Windows XP Mode" "||14c0ece8" "Internet Explorer"」となっています

そこで気になるのが「14c0ece8」というHEXコード。これは、ゲストOS側のHKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Terminal Server \ TsAppAllowList \ Applicationsキー下で管理されている任意のコードであり、同名を持つキー内に用意された各値の情報を参照し、管理しています。もちろんホストOSのプログラムメニューはゲストOSが未稼働でも動作しなければなりませんので、HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ VPCVApps \ Virtual Windows XPキーに作成した情報を元に、クラスIDで作成したファイルを元にショートカットアイコンを実現しているのでしょう(図04~05)。

図04: ゲストOSのレジストリを確認しますと、先のHEX値「14c0ece8」を持つキーが自動的に作成されています

図05: ホストOSのレジストリにも、同様のHEX値を持つキーが作成されます

もう1つのポイントが、自動公開される仮想アプリケーションと自動公開されないアプリケーションの違い。Windows XP Modeには、あらかじめ自動公開しないアプリケーションが決まっており、HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Virtual Machine \ VPCVAppExcludeListキーで管理されています。例えば、Windows Media Playerの実ファイルである「wmplayer.exe」も同キー内にリストアップされているため、「%ALLUSERSPROFILE% \ スタートメニュー」フォルダにショートカットアイコンを用意しても、ホストOSのプログラムフォルダに表示されないのでしょう。そこで今週は、Windows XP Modeが自動公開するアプリケーションを制御するチューニングをお送りします(図06)。

図06: 自動公開されないアプリケーションは、ゲストOSのHKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Virtual Machine \ VPCVAppExcludeListキーで管理されています

まずはWindows XP Modeのファイル名を指定して実行から「regedit」を実行し、レジストリエディタが起動しましたら、HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Virtual Machine \ VPCVAppExcludeListまでキーをたどって開きましょう。続いて<ファイル>メニューから<エクスポート>を選択し、デスクトップフォルダなど任意の場所にVPCVAppExcludeListキーの内容を保存します(図07~09)。

図07: 「ファイル名を指定して実行」のテキストボックスに「regedit」と入力して[Enter]キーを押します

図08: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Virtual Machine \ VPCVAppExcludeListまでキーをたどって開き、<ファイル>メニューから<エクスポート>を選択します

図09: デスクトップフォルダなどに任意のファイル名を付けて、VPCVAppExcludeListキーの内容を保存しましょう。画面の例では「VPCVAppExcludeList」というファイル名を付け、<保存>ボタンをクリックしています

続いて、VPCVAppExcludeListキーの右ペインから、自動公開を許可するアプリケーションの実行ファイル名を持つ文字列値(ここではWindows Media Playerを対象にしていますので「wmplayer.exe」)を右クリックし、メニューから<削除>を選択します。確認をうながすダイアログが表示されたら、<はい>ボタンをクリックしてください(図10~11)。

図10: VPCVAppExcludeListキーから、自動公開を許可するアプリケーションの実行ファイル名を持つ文字列値を右クリック。メニューから<削除>を選択します

図11: 確認をうながすダイアログが表示されたら、<はい>ボタンをクリックして値を削除します

最後にゲストOSを再起動しますが、事前に自動公開するアプリケーションを登録しておきましょう。<スタート>メニューを右クリックし、メニューから<開く-All Users>をクリックします。フォルダが開いたら、先ほど削除した文字列値と同じアプリケーション(ここではWindows Media Player)のショートカットファイルを作成しておきましょう(図12~13)。

図12: <スタート>メニューを右クリックし、メニューから<開く-All Users>をクリックします

図13: フォルダ内に先ほど削除した文字列値と同じアプリケーション(ここではWindows Media Player)のショートカットファイルを作成します

後はWindows Virtual PCの<Ctrl+Alt+Del>ボタンをクリックして「Windowsのセキュリティ」ダイアログを起動してから、<シャットダウン>ボタンをクリック。「Windowsのシャットダウン」ダイアログが起動しますので、ドロップダウンリストから「シャットダウン」を選択して<OK>ボタンをクリックしてください。これでチューニング完了です(図14)。

図14: <Ctrl+Alt+Del>ボタンをクリックし、<シャットダウン>ボタン→ドロップダウンリストから「シャットダウン」を選択→<OK>ボタンと操作しましょう

ホストOSのプログラムメニューから、<Windows Virtual PC>→<Windows XP Modeアプリケーション>と開きますと、<Windows Media Player(Windows XP Mode)>が作成されていることでしょう。同項目をクリックしますと、ゲストOS内のWindows Media Player 11がWindows 7上で動作可能になります(図15~16)。

図15: ホストOSのプログラムメニューから、<Windows Virtual PC>→<Windows XP Modeアプリケーション>→<Windows Media Player(Windows XP Mode)>と選択します

図16: Windows 7上で、Windows Media Player 11が仮想アプリケーションとして動作しました

それでは、また次号でお会いしましょう。

阿久津良和(Cactus)