作为备份操作的一部分,我正在运行 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"}
不知道如何将其转化为对我的问题有用的信息。
回答更新:(感谢@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)