VirtualPC2007は事情によりXPベースのマシンでVistaを動作させたり、
その逆だったりにとても良いソリューションである。
VirtualPCで仮想マシンを構築し、
スタートアップにVirtualPCのショートカットにリンク先に
Virtual PC.exe” -pc 仮想マシン名 -launch -singlepc
を追加しておいておけば起動時に自動的に仮想マシンが立ち上がってくる。
「実行時の大きさ」を「最小化」にしておけばタスクバーに格納されて、
もしそのマシンで他の作業をする場合に良い。
問題は終了時である。
仮想マシンの設定で「閉じる」ときの動作を
「メッセージを表示せずに自動的に閉じて次を行う」を
「状態を保存する」にしておき、Windows終了するとVirtualPCは
現在のゲストOSの状態をそのまま保存する。
ノートパソコンのハイバネーションに近い。
しかし、Windowsは終了しない。終了をタイムアウトしてしまい、
終了処理出来ないのだ。
ユーザーにまずVirtualPCを終了させ、状態の保存が終わってからWindowsの終了をして欲しいと依頼しても良いが、もっとスマートにいこう。
そこでバッチファイルを作ってみた。
taskkill /im “Virtual PC.exe”
if errorlevel 1 pause
shutdown -s -c “システム終了します。お疲れ様でした。”
このバッチファイルを実行すると
VirtualPCに終了を指示したあと、
メッセージを出して30秒後にWindows終了。
もし30秒でVirtualPCが終わっておらず、
タイムアウトしてしまう場合は
ping localhost -n 秒数 > nul
をshutdown前に入れることで
VirtualPCの終了を待つことができる。