无法删除文件,因为它们正在被进程使用

Files Could Not be Deleted Because They are Being Used by a Process

我尝试在 PowerShell 中执行以下命令以删除虚拟机及其关联文件。

Get-VM "VM Name" | %{
  Stop-VM -VM $_ -Force;
  Remove-VM -VM $_ -Force;
  Remove-Item -Path $_.Path -Recurse -Force

但是,我的问题是脚本导致错误,因为一些文件(快照)仍在被不同的进程使用。除此之外,.vhdx 文件没有被删除。谁能帮我解决这个问题?

试试这个(这需要合并 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 的文件。