仮想マシンを関連ファイルとともに削除するために、PowerShellで次のコマンドを実行しようとしました。プロセスによって使用されているためファイルを削除できない
Get-VM "VM Name" | %{
Stop-VM -VM $_ -Force;
Remove-VM -VM $_ -Force;
Remove-Item -Path $_.Path -Recurse -Force
私の問題は、いくつかのファイル(スナップショット)がまだ別のプロセスで使用されていたために、スクリプトがエラーになったということです。これに加えて、.vhdxファイルは削除されませんでした。誰もこの問題を解決する方法を教えてくれますか?
他のプロセスを終了させてください。 [Remove-Item PowerShellのエラーを回避する方法 "プロセスはファイルにアクセスできません"?](http://serverfault.com/a/699945)またはhttp://thomasardal.com/deleting-contents-of-a-folder -containing-files-with-open-file-handles-using-powershell/ – wOxxOm
この場合、上記のスクリプトを上記のスクリプトにどのように組み込むことができますか? 'get-process | foreachの{ $はpName = $ _ 場合($ pName.Path様($のINSTALL_PATH + '*')){ ストッププロセス$ pName.id -Force -ErrorAction SilentlyContinueという }削除品目-Force -Recurse $ INSTALL_PATH' –
@wOxxOmこの場合、他のプロセスがハイパーバイザーである可能性が高いので、私はそれをお勧めしません。スナップショットが削除前にイメージにマージされることによって問題が発生している可能性があります。はい、それは無意味ですが、IIRCはHyper-Vがこれらの処理をどのように処理しているかを示しています。 –