Hyper-VのON・OFFを簡単に自動化すっぞ!!


Androidのエミュレータ(NoxPlayer)を使用したい時、Hyper-VがONだとブルースクリーンになって使用できない。
「Docker for Windows」使用したいし、Hyper-VのON・OFFを手動でするのがものすごくめんどくさいぞ!!
よし!! 自動化だ!!
ということでこの記事はHyper-VのON・OFFを簡単に自動化するための記事になります。
Hyper-Vがインストールされていることが前提になりますのでインストールされていない人はインストールしてからこの記事に戻ってきて下さい。

Hyper-VがONなのかOFFなのか現在の状態を調べる

「BCDEdit」を使用してHyper-VがON・OFFなのか現在の状態を調べます
BCDEditの公式ドキュメントはこちら

コマンドプロンプトを管理者で実行して下記コマンドを実行して下さい

Hyper-Vの現在の状態を確認する

bcdedit /enum | find "hypervisorlaunchtype"

Hyper-VがONの時は下記のように出力されます

hypervisorlaunchtype    Auto

Hyper-VがOFFの時は下記のように出力されます

hypervisorlaunchtype    Off

Hyper-VをON・OFFする

「BCDEdit」を使用してHyper-VをON・OFFにします

コマンドプロンプトを管理者で実行して下記コマンドを実行して下さい

Hyper-VをONにする

bcdedit /set hypervisorlaunchtype auto

Hyper-VをOFFにする

bcdedit /set hypervisorlaunchtype off

上記コマンドを実行後、再起動をすることでHyper-VがON・OFFになります

再起動をコマンドで実行する

コマンドプロンプトで下記コマンドを実行してください
※下記コマンドを実行すると再起動してしまうので注意

shutdown.exe /r /t 0

Hyper-Vを自動化するためのバッチを作成します

Hyper-VをON・OFFにするためには管理者でコマンドプロンプトを実行しないといけません。
batファイルを管理者で実行するにはどうしたらいいの?
すでに調べてくれている人がいました。下記記事を参考にします。

管理者権限でbatを実行したい時にやッた事

Hyper-VをONにするbatファイル、Hyper-VをOFFにするbatファイル、Hyper-Vの現在の状態を確認するbatファイルを作成し、作成したbatファイルを下記のようにして呼び出すbatファイルを作成します。

powershell start-process 作成したbatファイル -verb runas

これだけ情報があれば後は作るだけです……作るのめんどくさいですよね。
もう既に私が作成しているのでそれを使って下さい。

Hyper-VをON・OFFにするバッチ

私のGithubのリポジトリにありますので取得してきて下さい。
Hyper-VをON・OFFにするバッチ

注意

  • 必要なのは「ToEnableAndDisableHyper-V」フォルダだけです
  • ダウンロードすると文字コードがUTF-8になっていて正しく動作しないので文字コードをShift-JISに変換して使用してください

フォルダ構成

ToEnableAndDisableHyper-V
 ├ 01_ToEnableHyper-V.bat
 ├ 02_ToEnableHyper-V-Command.bat
 ├ 03_ToDisableHyper-V-Command.bat
 ├ 04_CheckHyper-V-Status.bat
 └ README.md

それぞれのバッチファイルについて

  • 01_ToEnableHyper-V.bat
    • 実行するバッチファイル
  • 02_ToEnableHyper-V-Command.bat
    • Hyper-VをONにするバッチになります
  • 03_ToDisableHyper-V-Command.bat
    • Hyper-VをOFFにするバッチになります
  • 04_CheckHyper-V-Status.bat
    • Hyper-Vの現在の状態を確認するバッチになります(ONなのかOFFなのか)

使い方

実行する時は「01_ToEnableHyper-V.bat」を実行してくれるだけでいいです。

実行すると2つのコマンドプロンプトが立ち上がります。

1番最初に立ち上がる画面はHyper-VをON・OFFにする画面

2番目に立ち上がる画面はHyper-Vの現在の状態を教えてくれるものになります。現在の状態を確認できたらこの画面は閉じてしまって構いません。

1番最初に立ち上がった画面に戻り、
Hyper-VをONにしたい時は「1」を入力しEnter
Hyper-VをOFFにしたい時は「2」を入力しEnter

「1」か「2」を入力しEnterを押すと新しく画面が立ち上がります
※「1」を入力した場合

Enterを押したらこの画面は閉じてしまっていいです。

1番最初に立ち上がった画面に戻り、直ちに再起動する場合は「y」または「Y」を入力しEnterを押せば再起動が行われます。
「y」または「Y」以外を入力した場合はそのままコマンドプロンプトが終了します。