測試環境:
Host OS: Windows 7 x64
Guest OS: Ubuntu、Windows XP
開啟遠程登錄,並設置用戶密碼,XP用control userpasswords2設置自動登錄(取消“要使
用本機,用戶必需輸入服務器密碼”)
虛擬機軟件:VirtualBox-4.0.2-69518-Win
目的:開機后自動后台運行虛擬機,只有進程,不顯示GUI界面。
由於VMware Server 2只支持到Windows 2008 Server系統,Windows 7系統不便使用,即使
能安裝也可能會有問題。VMware Workstation不免費,本身也沒有后台運行虛擬機的功能,
只能通過第三方軟件把啟動虛擬機做成系統服務,或者設置了“在關閉后在后台運行電源
已打開的虛擬機”用批處理啟動虛擬機再殺進程,或者用計划任務。因此選擇使用免費的
VirtualBox。
后台啟動VirtualBox虛擬機的命令有2個:
VBoxHeadless -s|--startvm <uuid>|<name> [--vrde=on|off|config]
VirtualBox 1.6后的版本里,VBoxVRDP只是VBoxHeadless的快捷方式,不再是單獨的命令。
防止VRDP端口(虛擬機設置里的遠程桌面)被外界訪問到,用參數--vrde=off,虛擬機用橋接
網絡時,虛擬機系統自帶的遠程桌面不受此參數影響。
VBoxManage [-q|--nologo] startvm <uuid>|<name> [--type gui|sdl|headless]
The following values are allowed:
gui - Starts a VM showing a GUI window. This is the default.
headless - Starts a VM without a window for remote display only.
啟動虛擬機的腳本(虛擬機的名稱為XP):
@echo off
:: by oicu
cd /d "D:\Program Files\Oracle\VirtualBox"
VBoxHeadless --startvm "XP"
:: VBoxManage startvm "XP" --type headless
直接啟動批處理腳本的話(包括腳本放到“啟動”里),無論用哪條命令啟動虛擬機都會有
一個headless的cmd窗口,用start ""也不能消去,關閉了該cmd窗口后虛擬機也退出了,而
且屬於不正常關閉。可以一次啟動多個虛擬機系統。
關閉虛擬機的腳本:
@echo off
:: by oicu
cd /d "D:\Program Files\Oracle\VirtualBox"
VBoxManage controlvm "XP" acpipowerbutton
:: send {Enter} to VM, for Windows Guest OS only.
VBoxManage controlvm "XP" keyboardputscancode 1c
打開gpedit.msc組策略,在用戶的 登錄/注銷腳本 里,分別添加上面2個腳本。這里不能使用
計算機的啟動/關機腳本,測試過是不能啟動虛擬機的,可能和SYSTEM用戶執行的腳本不能
訪問網絡等權限有關。使用登錄腳本啟動虛擬機不會顯示headless的cmd窗口(系統組策略
里默認是隱藏運行腳本), 未測試計划任務的方式 。
遠程登錄Windows系統的虛擬機后,如果遠程未注銷,用關閉虛擬機的腳本就無法關閉虛擬
機,原因是關閉計算機時會提示“其他用戶登錄到這台計算機,關閉WINDOWS會使他們丟失
數據,您要繼續關機嗎?”造成acpi關機方式失敗。在Guest系統里設置關機/注銷腳本,用
shutdown -s -t 0也無效。解決方法是向虛擬機發送回車鍵,模擬“確定”操作,當然也可
以用shutdown遠程關閉系統,但設置和操作更麻煩了。
虛擬機是Linux時,避免用VboxHeadless.exe和VirtualBox.exe交替登錄,兩者的不同步可
能會造成虛擬機的filesystem損壞。
Host OS: Windows 7 x64
Guest OS: Ubuntu、Windows XP
開啟遠程登錄,並設置用戶密碼,XP用control userpasswords2設置自動登錄(取消“要使
用本機,用戶必需輸入服務器密碼”)
虛擬機軟件:VirtualBox-4.0.2-69518-Win
目的:開機后自動后台運行虛擬機,只有進程,不顯示GUI界面。
由於VMware Server 2只支持到Windows 2008 Server系統,Windows 7系統不便使用,即使
能安裝也可能會有問題。VMware Workstation不免費,本身也沒有后台運行虛擬機的功能,
只能通過第三方軟件把啟動虛擬機做成系統服務,或者設置了“在關閉后在后台運行電源
已打開的虛擬機”用批處理啟動虛擬機再殺進程,或者用計划任務。因此選擇使用免費的
VirtualBox。
后台啟動VirtualBox虛擬機的命令有2個:
VBoxHeadless -s|--startvm <uuid>|<name> [--vrde=on|off|config]
VirtualBox 1.6后的版本里,VBoxVRDP只是VBoxHeadless的快捷方式,不再是單獨的命令。
防止VRDP端口(虛擬機設置里的遠程桌面)被外界訪問到,用參數--vrde=off,虛擬機用橋接
網絡時,虛擬機系統自帶的遠程桌面不受此參數影響。
VBoxManage [-q|--nologo] startvm <uuid>|<name> [--type gui|sdl|headless]
The following values are allowed:
gui - Starts a VM showing a GUI window. This is the default.
headless - Starts a VM without a window for remote display only.
啟動虛擬機的腳本(虛擬機的名稱為XP):
@echo off
:: by oicu
cd /d "D:\Program Files\Oracle\VirtualBox"
VBoxHeadless --startvm "XP"
:: VBoxManage startvm "XP" --type headless
直接啟動批處理腳本的話(包括腳本放到“啟動”里),無論用哪條命令啟動虛擬機都會有
一個headless的cmd窗口,用start ""也不能消去,關閉了該cmd窗口后虛擬機也退出了,而
且屬於不正常關閉。可以一次啟動多個虛擬機系統。
關閉虛擬機的腳本:
@echo off
:: by oicu
cd /d "D:\Program Files\Oracle\VirtualBox"
VBoxManage controlvm "XP" acpipowerbutton
:: send {Enter} to VM, for Windows Guest OS only.
VBoxManage controlvm "XP" keyboardputscancode 1c
打開gpedit.msc組策略,在用戶的 登錄/注銷腳本 里,分別添加上面2個腳本。這里不能使用
計算機的啟動/關機腳本,測試過是不能啟動虛擬機的,可能和SYSTEM用戶執行的腳本不能
訪問網絡等權限有關。使用登錄腳本啟動虛擬機不會顯示headless的cmd窗口(系統組策略
里默認是隱藏運行腳本), 未測試計划任務的方式 。
遠程登錄Windows系統的虛擬機后,如果遠程未注銷,用關閉虛擬機的腳本就無法關閉虛擬
機,原因是關閉計算機時會提示“其他用戶登錄到這台計算機,關閉WINDOWS會使他們丟失
數據,您要繼續關機嗎?”造成acpi關機方式失敗。在Guest系統里設置關機/注銷腳本,用
shutdown -s -t 0也無效。解決方法是向虛擬機發送回車鍵,模擬“確定”操作,當然也可
以用shutdown遠程關閉系統,但設置和操作更麻煩了。
虛擬機是Linux時,避免用VboxHeadless.exe和VirtualBox.exe交替登錄,兩者的不同步可
能會造成虛擬機的filesystem損壞。