问题

最近有时候打开 VM 虚拟机时,会弹出:未能开启“xxx(虚拟机路径)\xxx(虚拟机名).vmx” 的警告,导致虚拟机无法正常开机

VM虚拟机未能开启解决办法1.png


原因

产生原因是 VMware 的服务出现问题,需要重新启动服务,VM 即可恢复正常


解决

手动修改

打开服务,可先通过 ctrl + alt + delete 打开任务管理器,在左侧栏选中服务

VM虚拟机未能开启解决办法2.png

往下翻,找到名称为 VMAuthdService 的服务

右键,重新启动

VM虚拟机未能开启解决办法3.png

再次打开 VM 中的虚拟机,发现问题解决,不会报错了


脚本修改

每次都手动去重新启动服务未免太麻烦,这里利用脚本自动重启

首先新建一个 txt 文本文件,例如:VM.txt

写入如下内容:

@echo on 
net stop "VMAuthdService"     
net start "VMAuthdService"
pause

其中 @echo on 表示 cmd 命令回显,后面两条命令用来停止和开启 VMAuthdService 服务pause 表示命令执行完后不关闭 cmd 窗口

除此之外,还需要有管理员权限

在 VM.txt 最前面加上一段代码:(这段代码用来调用管理员权限)

@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"

所以,最终代码如下:

@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"

@echo on 
net stop "VMAuthdService"     
net start "VMAuthdService"
pause

VM.txt 重命名为 VM.bat,双击即可运行:(会自动跳出询问管理员权限的窗口,点击 “是” 即可)

VM虚拟机未能开启解决办法4.png

以后 VM 再出现这个报错,直接双击 VM.bat 即可


设置开机自启动

另外,可以将路径 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp 复制到文件管理器打开

然后将 VM.bat 复制到该路径下,重启电脑

以后 VM.bat 就会开机自启动了