删除无效的hyper-v虚拟机出错:由于找不到某个对象,Hyper-V 尝试在计算机上访问该对象时遇到错误。该对象可能已被删除,或者你可能没有执行此任务的权限。

背景

由于硬盘坏了,之前在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服务先停止。

成功解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值