ただしその古いアプリを動かしていたPCは,どんどん老朽化するため,PCのリプレースはほぼ避けがたい.このようなケースのリプレースでは,以前はWindowsXP PCを確保する事が重要とされてきた.そのようなアプリがWindowsXPではなんとか動いても,WindowsVistaではまったく動かないケースがあったからだ.しかし,今は違う.
Windows7のXPモードは,「Vistaで動かずXPでは動くアプリ」を,Windows7内で動かすしくみだ.XPモードを使えば,Windows7のデスクトップに,もう一台のWindowsXPマシンが内蔵されているかのような,仮想のWindowsXPマシンを作り出すことができる(仮想マシン).この仮想XPマシンに,「Vistaで動かずXPでは動くアプリ」をインストールすれば,問題なくそのアプリは作動するはずだ.
もちろんVirtualBoxのような,フリーの仮想マシンソフトを使用すれば,このようなことはできないわけではない.ただしその場合は,Windows7とWindowsXPの両方のOSライセンスが必要となってしまう上に,仮想マシンにOSをインストールする手間もかかる.XPモードを使用すれば,XPのライセンス料金(注:Windows7 pro以上でXPモードは使用可能なので,厳密には料金は取られている)や,XPのインストールは不要だ(注:最初の初期化にやや時間がかかる).
さらにありがたいことにXPモードには,自動「統合機能」が存在する.この機能は,ホストOS(Windows7)側に存在するドライブやプリンタ等を,ゲストOS(WindowsXP)側と自動的に共有する機能だ.これらのドライブやプリンタはネットワークドライブ・ネットワークプリンタ扱いとなるが,この理由がおもしろい.
実はXPモードは単純な仮想マシンソフトではなく,仮想マシンにリモートデスクトップで接続し,その画面を表示している(注:画面表示方法等で厳密には通常のリモートデスクトップとは異なるかもしれない).そのため,リモートデスクトップの持つ「リモートセッションでのローカルリソース(プリンタ・ドライブ等)の使用」が可能なのだ.つまり統合機能は,XPモードの機能と言うよりも,(ほぼ)リモートデスクトップの機能と言うことができる.
この統合機能を利用すれば,USB接続の外付けドライブも含めて,Windows7PCのすべてのドライブに,仮想のWindowsXPマシンからアクセスできる.
ちなみにXPモードには,PC本体にUSB接続されているドライブを,仮想マシン側にリダイレクトする機能を持っている.XPモード画面の「USB」メニューからUSB接続ドライブを選んで「共有」すると,そのドライブは仮想のXPマシンのUSBポートに接続したような状態となる.注意したいのは「共有」と言っても,実際には共有ではなく,ホストOSからUSBデバイスは切り離され,ゲストOSに「占有」される点,すなわちリダイレクトである点だ.したがって,この操作を行うと,Windows7のマイコンピュータからそのUSB接続ドライブは消えてしまう.
さてこのように,ホストOSのリソースに簡単にアクセスできるXPモードだが,やっかいな問題もある.XPモードの仮想マシンは,なぜかFDDが一台接続されたことになっているが,その仮想FDDをホストOSのFDDに割り当てることができないのだ!ではなぜFDの使用不能な,いわばフロッピー挿入口のない仮想FDDが存在するのか?
やはりそれは,FDD(ドライブA)の存在をチェックする古いアプリが存在するからだと推測する.すなわちドライブAが存在しないと,起動すらしないアプリのための対策だ.この対策でそのようなアプリは起動するにはするが,その後ももちろんドライブAは使用できない.しかしドライブAの使用が必須でないのであれば,起動さえすればOKだ.でもハズレかな?なぜならば,仮想FDDにホストOSのFDDを割り当てる設定を設けるぐらいたいしたコストではないと思われるのに,それがないということは,むしろ意図的にドライブAを使用させないようにしているのではないか?と思えてくるからだ.ちなみに外付けUSB接続のFDDを「共有(リダイレクト)」すると,見事にドライブBとなる.実際の古いアプリでは,ドライブAに対するアクセスが必ず発生するものもある.そのようなアプリはどうして動かすのか?これは大きな問題だ.
とはいえ,既にこの問題に対するいくつかの回答が出ている.正当な対処方法は,仮想マシン構成ファイルを編集することのようだ.ただ私の場合は,別の方法で対処した.以下はその手順.なお統合機能によりドライブは共有されているものとする.またホストOSにはFDDが接続され,そのドライブ文字がAであるとする.
- XPモード仮想マシンを立ち上げる(注:以下の操作はすべて仮想マシン内での操作)
- XPモード仮想マシン内でデバイスマネージャを開く
- フロッピーディスクドライブの冒頭の+をクリック
- 表示されたフロッピーディスクドライブを右クリック
- 「無効」をクリック
- デバイスマネージャを閉じる
- スタートボタン→マイコンピュータとクリック
- 表示されたマイコンピュータ内にFDDが存在しないことを確認
- マイコンピュータ内に「(ホストOSのコンピュータ名)のA」と表示されているネットワークドライブ(ホストOSのFDD)が存在することを確認する
- ツールメニューをクリック
- 「ネットワークドライブの割り当て」をクリック
- ドライブとして「A:」を選択
- フォルダとして半角で「¥¥tsclient¥a」と入力
- 完了をクリック
- マイネットワークにネットワークドライブとして「TsclientのA(A:)」が表示されているのを確認.これでホストOSのFDDがゲストOSのドライブAとなった.
- 必要ならば上記のドライブを「FDドライブ」等のわかりやすい名前に変更
![](http://img.zemanta.com/pixy.gif?x-id=8b1df59b-8eed-8743-b0a5-6111ff59a959)