我希望能够远程进入系统并在那里压缩或解压缩文件,并在完成时获得进程信号。Start-process 使用 -wait 参数从 PowerShell 同步运行 7z.exe。当我尝试将其与 invoke-command 结合以远程运行相同的命令时,它不支持等待参数,我相信它正在杀死进程,因为它快速返回并且从不生成 zip 文件。
[string]$sevenZip = "C:\Program Files\7-zip\7z.exe"
[Array]$arguments = "a", $zipFilename, $dirToZip;
"Starting $sevenZip with $arguments"
Start-Process $sevenZip "$arguments" -Wait
#blocks and waits for zip file to complete
我最初尝试了 PSCX write-zip & expand-archive,但后者与 64 位 .NET 4.0 配置不兼容。所以现在我试图通过命令行调用 64 位 7z.exe。我没有收到任何错误。PowerShell 将作业报告为运行状态,然后完成,并且不生成 zip 文件。
Invoke-Command -ComputerName localhost -FilePath 'C:\Scripts\ZipIt.ps1' -ArgumentList 'd:\TestFolder','d:\promote\TestFile.7z' -AsJob
感谢任何帮助或指示。
谢谢,格雷戈里