こんにちは、阿久津です。昨日、Microsoftの統合開発環境である「Visual Studio 2013 Update 3」と、「Windows Phone 8.1 Update 1 SDK and Emulators」がリリースされました。最近Windows Phoneに関心を持つ筆者としては気になるニュースです(図01)。
Visual Studio上で実行するWindows Phoneエミュレーターは、Hyper-Vの有効化が欠かせません。しかし、Hyper-Vを有効な環境に、定番仮想化ソフトウェアであるVMware Player/VMware Workstationをインストールしますと、「Microsoft Hyper-Vがインストールされているコンピューターにはこの製品をインストールできません」というメッセージが現れます。
Windows 8.1インストール後にHyper-Vを有効にせずに、VMware Playerなどをインストールすればメッセージは回避できるため、問題も解決できるように見えることでしょう。しかし、仮想マシン実行時に「~Hyper-Vの役割を削除してください」というメッセージが現れるため、結局のところHyper-VとVMware製品の共存はできません(図02~03)。
しかし、1つの抜け穴があります。それが、Windows 8.1でも使われているBCD(ブート構成データ)ストアを編集するコマンド「bcdedit.exe」を使用し、Hyper-V機能の有無を制御するという方法。たとえば管理者権限で起動したコマンドプロンプトから「bcdedit /set hypervisorlaunchtype off」と実行すれば、Hyper-Vが無効になり、「bcdedit /set hypervisorlaunchtype auto」と実行すれば、Hyper-Vが有効になります(図04)。
しかし、いちいちコマンドを入力し、OSの再起動を実行するのも面倒な話です。そこで今週は、Hyper-V実行環境とVMware実行環境を切り替えるバッチファイルを作成し、そのバッチファイルをスタート画面から呼び出すチューニングをお届けしましょう。
1. メモ帳を起動します。
2. Hyper-Vを有効/無効にするバッチファイルを作成します。
3. バッチファイルのショートカットファイルを作成します。
4. ショートカットファイルのプロパティダイアログから<管理者として実行>を有効にします。
5. ショートカットファイルを「%APPDATA%\Microsoft\Windows\Start Menu\Programs」フォルダーに移動します。
6. アプリビューからピン留めします。
これでチューニングが完了しました(図05~16)。
@echo off
bcdedit /set hypervisorlaunchtype off
shutdown /r /t 0
@echo off
bcdedit /set hypervisorlaunchtype auto
shutdown /r /t 0
では、結果を確認してみましょう。スタート画面のタイルをクリックすれば、バッチファイルに記述した「bcdedit.exe」コマンドで、Hyper-Vの有効もしくは無効を実行。続いて「shutdown.exe」コマンドで、コンピューターの再起動を実行します(図17)。
当初は別のユーザーでコマンドを実行する「runas」コマンドをバッチファイルに組み込もうと思いましたが、一般的なWindows 8.1の場合、Administratorアカウントは無効になっているため見送りました。また、レジストリから管理者権限を持つショートカットを呼び出すとエラーになってしまうため、スタート画面のピン留めにとどめた次第です(図18)。
いずれにせよ、コンピューターの再起動が必要になるため、シームレスと言い難いのが難点ですが、Hyper-VでサポートしていないOSを動かすためにVMware Playerなどを併用している方には有効な手段となるのではないでしょうか。
それでは、また次号でお目にかかりましょう。
阿久津良和(Cactus)