背景
由于硬盘坏了,之前在d盘创建的一堆测试虚拟机无法再使用,在hyper-v管理器中的【任务状态】栏都显示为"无法连接到虚拟机配置存储",并且【状态】栏也显示为"已保存-关键", 如下图所示:

现想将这些无用的虚拟机删除掉。
方法尝试
(1)通过右键直接删除相应的虚拟机,发现右键菜单只有【帮助】,没法进行删除,如下图所示:

(2) 通过powershell命令进行删除
remove-vm -name "immortalwrt" -force
会报错:remove-vm : 由于找不到某个对象,Hyper-V 尝试在计算机“HWT-DELL-DEV”上访问该对象时遇到错误。该对象可能已被删除,或者你
可能没有执行此任务的权限。请验证该计算机上的虚拟机管理服务是否正在运行。如果该服务正在运行,请尝试使用“以管理员身份运
行”重新执行此任务。
具体错误如下图所示:

(3) 打开hyper-v配置目录:C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines Cache
可以看到许多以guid(即uuid)的vmcx文件,例如:5F40CD0D-7483-49A8-9B30-A6A3A638A7CA.vmcx
其中guid部分(5F40CD0D-7483-49A8-9B30-A6A3A638A7CA)是相应虚拟机的id
如下图所示:

一般情况下,我们可以通过以下命令来获取虚拟机的名字及其对应的id
get-vm | select-object Id, Name
然后将对应的{{id}}.vmcx文件删掉即可。但由于出错的虚拟机无法再获取到其id,故只能通过排除法来实现删除:
目前正常使用的虚拟机为 hwt-service,通过以下命令获取到其虚拟机id为:5f40cd0d-7483-49a8-9b30-a6a3a638a7ca
get-vm -name hwt-service | select-object Id, Name
所以把除了5f40cd0d-7483-49a8-9b30-a6a3a638a7ca.vmcx之外的所有vmcx文件删除,即可删除无法的虚拟机了。
当然,删除相应的vmcx文件前,得先将hyper-v服务先停止。
成功解决

399

被折叠的 条评论
为什么被折叠?



