Я создаю простое фоновое задание в Powershell:
Start-Job {"Hello"}
Я проверяю с помощью Get-Job:
Id Name State HasMoreData Location Command
-- ---- ----- ----------- -------- -------
1 Job1 Completed True localhost "Hello"
Затем я просто получаю вывод и снова запускаю Get-Job
Receive-Job 1
Get-Job
Я вижу что «HasMoreData» теперь ложно, потому что я не указал параметр -keep
.
ОДНАКО: кажется, что всякий раз, когда я запускаю задание, а не с Start-Job
или Invoke-Command
, этот параметр «HasMoreData» не изменяется на False.
Примеры:
Get-WMIObject win32_bios -AsJob
Test-Connection . -AsJob
Могу ли я обойти это (неправильное) поведение, чтобы свойство HasMoreData переключалось на False, если я не укажу -keep
?
Спасибо!
Обновление : кажется, это для всех вызовов, сделанных с параметром -AsJob
. Если вы запустите
Start-Job {Test-Connection .}
, он работает ("HasMoreData" становится False после Receive-Job
), но
Test-Connection . -AsJob
не работает.