[VMware]快速啓動 VMware 虛擬機

快速啓動 VMware 虛擬機

首發於 https://blog.csdn.net/weixin_42642584/article/details/105726194shell

藉助 vmrun.exe 可實現虛擬機的快速啓動,包括後臺啓動以及前臺有界面啓動;也能夠實現虛擬機內應用程序的快速啓動。ubuntu


vmrun.exe

命令行中進入 VMware Workstation Pro 安裝目錄,不帶參數運行 vmrun.exe ,便可看到該程序的命令幫助。ssh

也能夠在命令行中運行 vmware.exe ,其命令選項及使用實例能夠於在線文檔中看到,可是該 .exe 可接收參數有限,其能力遠不如 vmrun.exe ,故這裏不考慮使用。ui


提出需求

  • 需求一
    • 我有一個 Windows 7 虛擬機,安裝了一些經常使用的可是自認爲不夠單純的軟件,好比 QQ、百度網盤等。不求快速啓動能直達應用自己,但須要有這麼一個圖標,可放在桌面以雙擊或者放在快速啓動欄以經過 Win + num 喚起,從而打開 Windows 7 虛擬機。
  • 需求二
    • 有一個 Ubuntu Server 虛擬機,提供有純粹的 Linux 環境,使用時經過 ssh 遠程鏈接。通常狀況下,打開該虛擬機須要首先打開 VMware Workstation Pro ,然後才能打開該虛機,最後當虛機打開後,爲了使其在後臺運行(這樣沒有圖形界面(CLI),會少些 消耗),還須要關閉 VMware Workstation Pro (注意:須要在 編輯 -> 首選項 裏勾選 -> Workstation 關閉後保持虛擬機運行)。如今須要有這麼一個圖標,經過其即可在後臺啓動該虛機。不過關閉或掛起,仍是須要手動進行的。

解決思路

編寫 .bat 腳本以運行 vmrun.exe 命令來實現相應動做。可是運行 .bat 腳本會打開一個cmd黑框,看起來很不舒服。這個問題能夠藉助.vbs腳原本解決:在 .vbs腳本中靜默(後臺)調用.bat 腳本。
當腳本準備好後,建立腳本的快捷方式,修改其名稱及圖標便可。
隨後即可以將該快捷方式放到桌面、「開始」菜單等處(暫時不知道如何固定在快速啓動欄)。.net


具體實現

以需求二的爲例,該需求實現步驟及效果以下:命令行

步驟

  • 肯定相關路徑:
    • vmrun.exe 路徑:D:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe
    • 虛擬機配置文件(.vmx)路徑:D:\Virtual Machines\usvr_free\usvr_free.vmx
  • 編寫 start_nogui.bat 腳本以下:
"D:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe" -T ws start "D:\Virtual Machines\usvr_free\usvr_free.vmx" nogui

若是路徑帶空格,則路徑總體須要用雙引號包括,不然沒法識別。code

  • 編寫 start_nogui.vbs 腳本以下:
set ws=wscript.createobject("wscript.shell")
ws.run "start_nogui.bat /start",0
  • .vbs腳本文件之上右鍵,後點擊「建立快捷方式」,或按住 Alt 鍵並拖動以建立快捷方式。
  • 從互聯網上搜索 ubuntu 的圖標(.ico格式或隨後轉換之)
  • 選中快捷方式,Alt Enter 以打開其屬性對話框,修改其圖標。
  • 將快捷方式複製到桌面。

效果

文件夾內效果桌面圖標效果

後記

更好的實現

對於需求二的更好的實現:雙擊快捷方式以執行腳本,當虛機打開時,將其掛起;不然將其打開。同時將操做及時間記錄到一文件中。blog

效果

文件夾內效果

步驟

首先將 .bat 文件中內容修改成:ip

set VMRUN="D:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe"
set Machine="D:\Virtual Machines\usvr_free\usvr_free.vmx"
set LOG_FILE=".\operationLog.txt"

%VMRUN% list | find %Machine%

if errorlevel 1 (
	echo %date% %time% __start__ %Machine% >> %LOG_FILE%
	%VMRUN% -T ws start %Machine% nogui
) else (
	echo %date% %time% _suspend_ %Machine% >> %LOG_FILE%
	%VMRUN% -T ws suspend %Machine%
)

而後修改文件名,最後對應地,修改 .vbs 中調用的文件名,以及快捷方式指向的文件名。文檔

相關文章
相關標籤/搜索