VMware虚拟机偶尔会让人感到头疼——例如服务器因网络连接问题无法启动,无奈之下只能禁用虚拟网卡的网络连接。但每次需要使用VM时,又得手动开启服务并启用网络,操作步骤相当繁琐。与其反复手动点击,不如编写一个批处理脚本来实现一键操作。以下是我实际使用中比较顺手的几个方案,直接复制代码即可应用。
启动批处理(方案一)
首先启动VMware相关服务,接着启用虚拟网卡,最后自动运行VMware程序。代码中的路径请根据你的实际安装位置进行修改。
:启动,打印命令
@echo on
net start vmnetdhcp
net start "VMware NAT Service"
:启用网络连接
netsh interface set interface name="VMware Network Adapter VMnet1" admin=ENABLED
netsh interface set interface name="VMware Network Adapter VMnet8" admin=ENABLED
:启动程序
"D:/Program Files/VMware/vmware.exe"
:暂停
pause
停止批处理(方案一)
使用完VM之后,关闭相关服务、禁用网络适配器,并同时终止后台的托盘进程,做到干净利落地清理。
:停止服务
@echo on
net stop vmnetdhcp
net stop "VMware NAT Service"
:禁用网络连接
netsh interface set interface name="VMware Network Adapter VMnet1" admin=DISABLED
netsh interface set interface name="VMware Network Adapter VMnet8" admin=DISABLED
:强杀进程
taskkill /F /im vmware-tray.exe
:暂停
pause
如果你更倾向于将启动和停止集成到同一个脚本中,通过菜单选择来操作,那么下面的方案会更加便捷。安装VMware后,默认服务会开机自启,但并非每次都需要使用虚拟机。为了优化系统启动速度,按需启动服务是一个明智的做法,此时一个带有选择菜单的批处理脚本就能派上用场。
@ echo off
title vmware服务开启、关闭程序
set in=
set /p in=1.开启vm服务,2.关闭vm服务。请输入:
if "%in%"=="1" goto start
if "%in%"=="2" goto stop
exit
:start
net start ufad-ws60
net start VMAuthdService
net start VMnetDHCP
net start "VMware NAT Service"
net start VMUSBArbService
pause
exit
:stop
net stop ufad-ws60
net stop VMAuthdService
net stop VMnetDHCP
net stop "VMware NAT Service"
net stop VMUSBArbService
pause
exit
此外,还有另一个具备图形化菜单的版本,界面更加友好,支持启动、关闭、将服务设置为手动以及退出四个选项。实测在Windows 10和Windows 11系统上均能正常运行。
echo off
title Switch %date% %time%
:A
color A
cls
echo ++++++++++++++++++++++++++++++++++++++++++++++++
echo = WELCOME TO VMware SWITCH =
echo. = =
echo = 启动= 1 关闭= 2 设置手动= 3 退出= 4 =
echo. = =
echo. = =
echo ++++++++++++++++++++++++++++++++++++++++++++++++
echo.
echo.
set session=""
set /p session= Select[1/2/3/4]:
if /i "%session%"=="1" (goto:1)
if /i "%session%"=="2" (goto:2)
if /i "%session%"=="3" (goto:3)
if /i "%session%"=="4" (goto:4)
:1
echo "正在启动VMware相关开机服务..."
net start VMAuthdService
net start VMnetDHCP
net start "VMware NAT Service"
net start VMUSBArbService
echo 服务启动完毕!
ping 127.0.0.1 /n 2 >nul
goto:A
:2
echo "正在关闭VMware相关开机服务..."
net stop VMAuthdService
net stop VMnetDHCP
net stop "VMware NAT Service"
net stop VMUSBArbService
echo 服务已关闭!
ping 127.0.0.1 /n 2 >nul
goto:A
:3
echo 切换VMware开机启动服务为手动中,请稍候...
sc config VMAuthdService start= demand
sc config VMnetDHCP start= demand
sc config "VMware NAT Service" start= demand
sc config VMUSBArbService start= demand
echo 成功切换为手动模式!
ping 127.0.0.1 /n 2 >nul
goto:A
:4
cls
echo 谢谢使用...
ping 127.0.0.1 /n 2 >nul
exit
最后顺便提一下,如果你在安装VMware之后发现每次开机都需要点击用户名才能登录桌面,可以使用一个小技巧解决:在运行框中输入 netplwiz,然后取消勾选“要使用本机,用户必须输入用户名和密码”,保存设置即可。这样就能直接进入系统,省去多余的操作步骤。
