VirtualBoxをWindows上で完全バックグラウンド化する
VirtualBox素敵過ぎたんだけど、ひとつだけ悲しいのが管理ツール経由で起動した場合に、仮想マシン起動中は端末コンソールが消せないってこと。
こいつを何とかバックグラウンド・プロセス化して、余計な窓を減らしたいなーとか、自動起動したいなーとか思っていろいろあさってみた結果、VBoxManageとVBoxHeadlessっていう付属のコマンドツールを発見。
これを使ってうまいことバッチ化。。。と思ったんだけど、VBoxHeadlessは確かにコンソールは出てこなくなるものの、今度はコマンドプロンプトが消えない。。。プロンプトけすと落ちる。。。orz
で、プロンプト非表示にする方法を探した結果、VBScriptで解決できた。
起動スクリプト
CreateObject("WScript.Shell").Run """C:\Program Files\Sun\VirtualBox\VBoxHeadless.exe"" -s (VMName)",0
停止スクリプト
CreateObject("WScript.Shell").Run """C:\Program Files\Sun\VirtualBox\VBoxManage.exe"" controlvm (VMName) poweroff",0
これらを、(VMName)のところを適宜変更して、hoge_start.vbsとかhoge_stop.vbsとかして保存しておけば、コンソールなしで起動・終了できる。
本当はVBoxManageに統一して起動終了その他をやれる感じにしたかったんだけど、VBoxManageのstartvmについてる--type headlineというVBoxHeadlineのエイリアスらしきコマンドが、なーんかうまく動かなくて、とりあえずペンディング。
まぁでも、とりあえず当面の目標はクリアってことで。
あんまり汎用化してコンソール作って。。。とかふかぶかやるのはまた今度。