快速启动 VMware 虚拟机
首发于
借助
vmrun.exe
vmrun.exe
命令行中进入 VMware Workstation Pro
安装目录,不带参数运行 vmrun.exe
也可以在命令行中运行 vmware.exe
,其命令选项及使用实例可以于在线文档中看到,但是该 .exe 可接收参数有限,其能力远不如 vmrun.exe
提出需求
- 需求一
- 我有一个
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
脚本。
当脚本准备好后,创建脚本的快捷方式,修改其名称及图标即可。
随后便可以将该快捷方式放到桌面、“开始”菜单等处(暂时不知道如何固定在快速启动栏)。
具体实现
以需求二的为例,该需求实现步骤及效果如下:
步骤
- 确定相关路径:
-
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
如果路径带空格,则路径整体需要用双引号包括,否则无法识别。
- 编写
start_nogui.vbs
脚本如下:
set ws=wscript.createobject("wscript.shell")
ws.run "start_nogui.bat /start",0
- 在
.vbs
脚本文件之上右键,后点击“创建快捷方式”,或按住Alt
键并拖动以创建快捷方式。 - 从互联网上搜索
ubuntu
的图标(.ico
格式或随后转换之) - 选中快捷方式,
Alt Enter
以打开其属性对话框,修改其图标。 - 将快捷方式复制到桌面。
效果
后记
更好的实现
对于需求二的更好的实现:双击快捷方式以执行脚本,当虚机打开时,将其挂起;否则将其打开。同时将操作及时间记录到一文件中。
效果
步骤
首先将 .bat
文件中内容修改为:
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
中调用的文件名,以及快捷方式指向的文件名。