はじめに
業務で毎日決まった時間に自動起動/自動終了するデモアプリを作ることになり、Windowsマシンの起動と同時に Virtualbox の VM をを立ち上げる方法について調べました。
VM の自動起動
以下のバッチファイルを作成し、ショートカットを スタートアップフォルダ「C:\Users[ユーザー名]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup」に配置することで、PCの起動時にバッチファイルが実行されてVMが立ち上がるようになります。
ちなみに、スタートアップフォルダは、エクスプローラーに「shell:startup」と入力して開くこともできます。そちらの方が楽なのでオススメです。
startupVM.bat
start start "" /b "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm "<VM名>"
VM の自動終了
私の環境では、タスクスケジューラーで毎日決まった時間に VM の終了を待たずに PC を強制的にシャットダウンしており、それを繰り返すと仮想マシンが壊れてしまうことがありました。
そこでコマンドプロンプトを開いて以下のコマンドを実行し、PCの終了時にVMをPCのシャットダウン時に自動終了させるように設定します。
shutdownVM.bat
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe setextradata "<VM名>" GUI/DefaultCloseAction <終了方法>
末尾の終了方法には、以下の4つがあり、デフォルトは1のようです。私は3を設定しました。
- SaveState(仮想マシンの状態を保存)
- Shutdown(シャットダウン シグナル送信)
- PowerOff(仮想マシンの電源オフ)
- PowerOffRestoringSnapshot(現在のスナップショットに復元)