У меня есть Start-Job -ScriptBlock, который будет работать правильно, если я дождусь завершения задания. Если я не ожидаю / не получаю статус завершения задания, -ScriptBlock не запускается. Я не уверен, что мне не хватает. Скорее всего, вы не понимаете фундаментального поведения фоновых заданий PS.
Это работает на сервере Win 2012R2. Вот мой дамп $ PSVersionTable:
Name Value
---- -----
PSVersion 5.0.10586.117
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.10586.117
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
Я пробовал размещать тесты до и после -ScriptBlock, чтобы отловить другие ошибки, но весь -ScriptBlock, похоже, вообще не работает.
Например, в моей настройке в настоящее время работает следующее:
Start-Job -ScriptBlock {
New-Item -Path 'c:\ivanti-patch-automation\logs\tempfile.txt' -ItemType File
} | Wait-Job
Файл создан правильно.
Следующее не работает. Единственное изменение - удаление команды конвейера Wait-Job.
Start-Job -ScriptBlock {
New-Item -Path 'c:\ivanti-patch-automation\logs\tempfile.txt' -ItemType File
}
Я ожидал, что оба будут работать, и не уверен, почему ожидание завершения работы влияет на то, работает оно или нет.