Windowsハイパーバイザープラットフォームを有効にする方法は2つある。1つは[コントロールパネル]から設定する方法、もう1つはPowerShellのコマンドを使う方法だ。どちらも1回Windowsハイパーバイザープラットフォームを有効化すれば、基本的には再設定などは必要ない。
なお、Windows 10の最近のバージョンでは、Windowsハイパーバイザープラットフォームが標準状態で有効になっているようなのだが、正式な確認が取れない。以下の設定をしなくてもサードパーティー製の仮想マシン環境ソフトウェアを動作させることが可能な場合がある(詳細は記事末のコラム参照)。しかし、そもそも、この機能が何をインストールしているのかが不明なこと、標準状態で有効になっていないWindows 10バージョンの存在を否定できないため、念のため以下の方法で有効化しておくことをお勧めする。
まず、手作業で設定する方法だが、[コントロールパネル]の[プログラムと機能]を開き、左側にある[Windowsの機能の有効化または無効化]をクリックする。[Windowsの機能]ダイアログが開くので、「Windowsハイパーバイザープラットフォーム」(英語環境では、Windows Hypervisor Platform)のチェックを「オン」にする。
この機能は、Windowsハイパーバイザーの機能であるため、Homeエディションでも利用可能だ。Homeエディションには、Hyper-Vが含まれていないが、WSL 2用などでWindowsハイパーバイザーが動作していることがある。このような場合でも、この機能を「オン」にすれば、VirtualBoxなどのサードパーティー製の仮想マシン環境ソフトウェアを利用できるようになる。
PowerShellコマンドレットを利用する場合には、「Get-WindowsOptionalFeature(設定の確認)」「Enable-WindowsOptionalFeature(設定の有効化)」を使う。「Windowsハイパーバイザープラットフォーム」が有効かどうかの確認には、管理者権限でPowerShellを開き、以下のコマンドレットを使う。
Get-WindowsOptionalFeature -online -FeatureName hypervisor*
このコマンドレットを実行して、出力の「State」が「Disabled」になっている場合、Windowsハイパーバイザープラットフォームは無効状態だ。有効化する場合には、以下のコマンドレットを使う。
Enable-WindowsOptionalFeature -Online -FeatureName HypervisorPlatform
逆に無効化したい場合には、以下のコマンドレットを実行する。
Disable-WindowsOptionalFeature -Online -FeatureName HypervisorPlatform
この機能の有効化/無効化では、Windowsの再起動は必要ない。
これで、Type 2 Hypervisorに分類されるVirtualBox(Ver.4.0以上)やVMware Workstation Pro(Ver.15.5以上)といった仮想マシン環境ソフトウェアをHyper-Vと共存させることが可能になる。それぞれのインストールなどについては、サポートWebサイトなどを確認されたい。事前に、Windowsハイパーバイザープラットフォームを有効にしておけば、特にインストール手順などの変更はなかった。
また、Androidエミュレーターでも「Windows ハイパーバイザープラットフォーム」を利用できる。これに関しては、Android Studioユーザーガイド「Windows Hypervisor Platform を使用する VM アクセラレーションを設定する」を参照してほしい。
仮想マシン環境ソフトウェアは、同じCPUの仮想マシン支援機能を利用するものの、その管理方法などには違いがある。このため、Windowsハイパーバイザープラットフォームで利用すると、必ずしも仮想マシン環境ソフトウェアの最大性能が発揮できないことがある。これは、仮想マシンの制御を必ずWindowsハイパーバイザー経由で行うためのオーバーヘッドが存在するからだ。
このような場合、Windowsハイパーバイザープラットフォームを利用せず、前述の手順を使ってWindowsハイパーバイザーを一時的に無効にすることで、性能を上げられる可能性がある。
現在のWindows 10では、さまざまなセキュリティ関連技術にWindowsハイパーバイザーが使われている。このため、Windowsハイパーバイザー関連の設定を行う場合、セキュリティ上のリスクが発生する恐れがある。Windowsハイパーバイザーに関連するコマンドや設定を行う場合には、セキュリティ的なリスクについて理解し、注意の上で行ってほしい。
Windowsハイパーバイザープラットフォームは、最近のWindows 10では、標準状態で有効になっているようだ。ただ、[Windowsの機能の有効化と無効化]では、この項目のチェックボックスが標準では「オフ」になっている(Windows 10 October 2020 UpdateとMay 2021 Update)。
「標準状態で有効になっている」と思われるのは、Windowsハイパーバイザープラットフォームの実体となる「WinHvPlatform.dll」が「C:\Windows\System32」に存在しているからだ。ただし、過去のどのバージョンから標準で搭載されているのかは確認できなかった。
このため、現行バージョンのWindows 10では[Windowsの機能の有効化と無効化]を操作しなくても、Windowsハイパーバイザープラットフォームに対応したサードパーティー製の仮想マシン環境ソフトウェア(VirtualBoxとVMware Workstationで確認)がそのまま動作する。
しかし、この件について、Microsoftのドキュメントを調べてみたが、確実と思えるようなものを見つけることはできなかった。このため、標準状態で有効になっている「ようだ」としかいいようがない。
「Windowsハイパーバイザープラットフォーム」の設定項目は、最近のバージョンでも存在しており、この項目を「オン」にするように解説するMicrosoftのドキュメントもある。さらに、「Windowsハイパーバイザープラットフォーム」を有効としたときに、その実体であるWinHvPlatform.dll以外に何かインストールされているのかも不明だ。
このため、本文にあるように、念のため、[Windowsの機能の有効化と無効化]でWindowsハイパーバイザープラットフォームを有効化しておくべきと考える。
[Windowsの機能の有効化と無効化]でWindowsハイパーバイザープラットフォームを無効に設定すると、それらしい動作が行われるがWinHvPlatform.dllが削除されることはなく存在し続ける。このため、Windowsハイパーバイザープラットフォームの「有効」「無効」にかかわらず、サードパーティー製の仮想マシン環境ソフトウェアが普通に動いているようにユーザーから見える。
実際にはWinHvPlatform.dllは設定状態にかかわらず常に存在しており、サードパーティー製の仮想マシン環境ソフトウェアは、Windowsハイパーバイザープラットフォームを利用してHyper-V(あるいはWindowsハイパーバイザー)と共存していると思われる。
Copyright© Digital Advantage Corp. All Rights Reserved.