由于进程正在使用它们,因此无法删除这些文件

时间:2016-09-05 16:27:07

标签: powershell hyper-v

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

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

然而,我的问题是该脚本导致错误,因为某些文件(快照)仍被其他进程使用。除此之外, .vhdx 文件未被删除。任何人都可以帮我解决这个问题吗?

1 个答案:

答案 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的文件。