Я хочу иметь возможность удаленно входить в систему, архивировать или распаковывать файлы и получать сигнал процесса, когда он будет завершен. Запуск-процесс работает с параметром -wait для синхронного запуска 7z.exe из PowerShell. Когда я пытаюсь объединить это с invoke-command для удаленного выполнения этой же команды, он не учитывает параметр wait, и я считаю, что он убивает процесс, поскольку он быстро возвращается и никогда не создает 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
Ценю любую помощь или указатели.
Спасибо,
Gregory