バックアップ操作の一環として、7zip コマンドを実行してフォルダーを単一の .7z ファイルに圧縮しています。を使用しているので問題ありませんInVoke-WMIMethod
。
例:
$zip = "cmd /c $irFolder\7za.exe a $somedirectory.7z $somedirectory"
"InVoke-WmiMethod -class Win32_process -name Create -ArgumentList $zip -ComputerName $remotehost"
スクリプトの実行中に問題が発生し、7za.exe プロセスが完了していません。次に、リモート システムからアイテムをコピーしようとしましたが、不完全であるか失敗しました。
7za.exe プロセスがまだ実行されているかどうかを特定し、プロセスが停止するまで待ってから、スクリプトの残りの部分を続行する方法を特定する方法を教えてもらえますか?
リモートシステムからプロセスをプルすることを理解できます...
get-wmiobject -class Win32_Process -ComputerName $remotehost | Where-Object $_.ProcessName -eq "7za.exe"}
それを私の問題に役立つ情報に変える方法がわかりません。
回答の更新: (thx to nudge by @dugas)
これは、それを必要とする人のためのいくつかのフィードバックでそれを行います...
do {(Write-Host "Waiting..."),(Start-Sleep -Seconds 5)}
until ((Get-WMIobject -Class Win32_process -Filter "Name='7za.exe'" -ComputerName $target | where {$_.Name -eq "7za.exe"}).ProcessID -eq $null)