[VMware]快速启动 VMware 虚拟机

快速启动 VMware 虚拟机

首发于 https://blog.csdn.net/weixin_42642584/article/details/105726194

借助 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 中调用的文件名,以及快捷方式指向的文件名。

posted @ 2021-03-03 19:42  Char-z  阅读(1775)  评论(0编辑  收藏  举报