我尝试在PowerShell中执行以下命令,以便删除虚拟机及其关联文件。
Get-VM "VM Name" | %{
Stop-VM -VM $_ -Force;
Remove-VM -VM $_ -Force;
Remove-Item -Path $_.Path -Recurse -Force
然而,我的问题是该脚本导致错误,因为某些文件(快照)仍被其他进程使用。除此之外, .vhdx 文件未被删除。任何人都可以帮我解决这个问题吗?
答案 0 :(得分:1)
试试这个(这需要为VM合并快照,需要一段时间才能完成合并):
Get-VM "VM Name" | %{Stop-VM -VM $_ -Force;Remove-VMSnapshot -vm $_;Remove-VM -VM $_ -Force;Remove-Item -Path $_.Path -Recurse -Force;}
或者(停止VMM服务以在不合并的情况下删除VM文件):
Get-VM "VM Name" | %{Stop-VM -VM $_ -Force;Stop-Service -Name vmms -Force;Remove-Item -Path $_.Path -Recurse -Force;Start-Service -Name vmms ; start-service -Name vmhostagent;start-sleep 3;Remove-VM -VM $_ -Force}
另外,我的测试实验室是2012R2 hyper-v主机,请确保“path”文件夹不包含其他VM的文件。