Windows起動時にVirtualBoxゲストOSを自動起動させる
- Next Page: MindTouch Core Dekiwiki On CentOS 5.4 インストール手順書
- Prev Page: dkim-milterをmilter-manager経由で使う
仮想ネットワーク内のDNSサーバがいまして、こいつは常時起動させておかないと困るなぁと思い、自動起動させるようにしてみました。
自分でやってて軽くはまったので、メモ的にエントリーしておきます。
環境
- Windows XP SP3
- Sun xVM VirtualBox 3.1.0
以下の記載において、ファイルパス名などは適宜置き換えてください。
下準備
自動起動したいゲスト機のUIDを調べておきます。
「VBoxManage.exe」コマンドを使います。
c:\> "C:\Program Files\Sun\VirtualBox\VBoxManage.exe list vms
"Cobalt" {1ff5f06d-f46b-4bbf-aa61-00b1e8cd257d}
"Sienna" {616ff3fc-8e7d-434e-bea8-070f4b1fc4c2}
{}の中がUIDです。
起動停止スクリプト
今回はVBScriptで書きます。
BATファイルで「cmd start ~~」でもいいのですが、起動時のプロンプト画面が邪魔になるので。
ポイントは「8.3形式でパスを書く」ところです。
起動スクリプト
Option Explicit
Const vbHide = 0 'ウィンドウを非表示
Const vbNormalFocus = 1 '通常のウィンドウ、かつ最前面のウィンドウ
Const vbMinimizedFocus = 2 '最小化、かつ最前面のウィンドウ
Const vbMaximizedFocus = 3 '最大化、かつ最前面のウィンドウ
Const vbNormalNoFocus = 4 '通常のウィンドウ、ただし、最前面にはならない
Const vbMinimizedNoFocus = 6 '最小化、ただし、最前面にはならない
Dim objWShell
Set objWShell = CreateObject("WScript.Shell")
objWShell.Run "C:\PROGRA~1\Sun\VIRTUA~1\VBOXHE~1.EXE --startvm 616ff3fc-8e7d-434e-bea8-070f4b1fc4c2", vbHide, False
Set objWShell = Nothing
停止スクリプト
仮想マシンのシャットダウンではなく、VirtualBoxの状態保存を使って速度向上を図ってます。
Option Explicit
Const vbHide = 0 'ウィンドウを非表示
Const vbNormalFocus = 1 '通常のウィンドウ、かつ最前面のウィンドウ
Const vbMinimizedFocus = 2 '最小化、かつ最前面のウィンドウ
Const vbMaximizedFocus = 3 '最大化、かつ最前面のウィンドウ
Const vbNormalNoFocus = 4 '通常のウィンドウ、ただし、最前面にはならない
Const vbMinimizedNoFocus = 6 '最小化、ただし、最前面にはならない
Dim objWShell
Set objWShell = CreateObject("WScript.Shell")
objWShell.Run "C:\PROGRA~1\Sun\VIRTUA~1\VBOXMA~1.EXE controlvm 616ff3fc-8e7d-434e-bea8-070f4b1fc4c2 pause", vbHide, True
objWShell.Run "C:\PROGRA~1\Sun\VIRTUA~1\VBOXMA~1.EXE controlvm 616ff3fc-8e7d-434e-bea8-070f4b1fc4c2 savestate", vbHide, True
Set objWShell = Nothing
登録
WindowsXPのログオン・ログオフスクリプトに登録します。
(何故かスタートアップ・シャットダウンスクリプトでは起動しませんでした)
設定にはグループポリシーエディタを使う必要がありますが、標準では管理ツールにありません。
「ファイル名を指定して実行」で「gpedit.msc」を入力し、実行します。
参考 : Windows 2000/XP/2003 グループポリシーエディタを開く方法
「ユーザの構成」→「Windowsの設定」→「スクリプト(ログオン/ログオフ)」で、上で作成したVBScriptを登録します。
これで自動起動されるはずです。
トラックバック(0)
トラックバックを送る際には、この記事へのリンクを記事内につけてください。
トラックバックはありません。

コメント(0)
コメントはありません。
コメントを投稿してください。