絶品ゆどうふのタレ

ふと気づいたことを綴るだけのメモ

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のエイリアスらしきコマンドが、なーんかうまく動かなくて、とりあえずペンディング

まぁでも、とりあえず当面の目標はクリアってことで。
あんまり汎用化してコンソール作って。。。とかふかぶかやるのはまた今度。