Hyper-Vを一時的に無効にする方法


概要

Hyper-V を有効化すると、VirtualBox / vmware / BlueStacks / NoxPlayer などの仮想化ソフトウェアが使用できなくなる場合があります。"Windowsの機能の有効化または無効化" から Hyper-V を無効化すれば解決するのですが、有効と無効を切り替える度にインストールとアンインストールが行われるため現実的ではありません。
そこで、今回は Hyper-V をアンインストールせず、一時的に無効化するための手順を紹介します。

環境

ここで紹介する手順は、以下の環境で動作検証を行いました。

OS Version OS Build
Windows 10 Pro 64bit 1903 18362.329

Hyper-V の有効/無効を切り替えるコマンド

Windows にはブート構成データを管理するためのコマンドラインツール (BCDEdit) があり、これを使用して OS 起動時に Hyper-V の有効/無効を切り替えることができます。ただし、このコマンドの実行には管理者権限が必要となります。

# Hyper-V の有効化
bcdedit /set hypervisorlaunchtype auto
# Hyper-V の無効化
bcdedit /set hypervisorlaunchtype off

無効化 BAT ファイルの作成

まず、以下のコードをテキストエディタにコピー&ペーストして保存します。拡張子が bat であれば、ファイル名は好きに付けていただいて大丈夫です。
ここでは [Hyper-V無効化.bat] としておきます。

Hyper-V無効化.bat
@ECHO OFF

bcdedit /set hypervisorlaunchtype off

echo Hyper-Vを無効に設定しました。設定は再起動後に反映されます。
echo 今すぐ再起動しますか? ( Y / N )
set INPUT_STR=
set /P INPUT_YES_OR_NO=

:CONFIRM
if "%INPUT_YES_OR_NO%"=="" goto :CONFIRM

if "%INPUT_YES_OR_NO%"=="Y" (
    shutdown /r /t 0
) else if "%INPUT_YES_OR_NO%"=="y" (
    shutdown /r /t 0
) else if "%INPUT_YES_OR_NO%"=="N" (
    echo 処理を終了します。
) else if "%INPUT_YES_OR_NO%"=="n" (
    echo 処理を終了します。
) else (
    echo Y または N を入力してください。
    goto :CONFIRM
)

PAUSE
EXIT

無効化 BAT ファイルのショートカットを作成

作成した BAT ファイルをダブルクリックして実行した場合、以下の様な表示がされて正しく実行できません。

ブート構成のデータ ストアを開けませんでした。
アクセスが拒否されました。

これは bcdedit の実行に管理者権限が必要なためです。BAT ファイルを右クリックして [管理者として実行(A)] を選択すれば良いだけの話ですが、できればダブルクリックだけで実行したい。ということで、よく知られているショートカットを作成して実行する方法を採ります。

まず、作成した BAT ファイルのショートカットアイコンを作成します。続けて、ショートカットアイコンのプロパティを開き、[ショートカット] タブの [詳細設定] を開きます。

詳細プロパティが開いたら [管理者として実行(R)] にチェックをつけて OK をクリックします。

無効化 BAT の実行

作成したショートカットアイコンをダブルクリックすると、UAC の確認の後に cmd が管理者として実行されて以下の様な表示がでます。
ここで Y または y を入力すると Windows が再起動されて Hyper-V が無効になります。

この操作を正しく終了しました。
Hyper-Vを無効に設定しました。設定は再起動後に反映されます。
今すぐ再起動しますか? ( Y / N )

最後に

上記と同様の手順で [Hyper-V有効化.bat] のショートカットアイコンも作成しておくと良いでしょう。