Background Work With Start-Job

Launch jobs, wait for them and collect their output as objects.

WindowsProcessesautomationdeveloperpowershellLow risk
Run Start-Job { ... }, then Get-Job | Wait-Job | Receive-Job to collect results.

01Command

Command
$ Start-Job -ScriptBlock { Start-Sleep 5; 'done' }; Get-Job | Wait-Job | Receive-Job

02What it does

Jobs run in separate processes, so several long operations can proceed at once and their output is returned as objects rather than interleaved console text. For scripts that must fan out work without a full orchestration tool, this is a native terminal pattern.

03Risk

RiskLow risk
RequirementsWindows 10/11 with PowerShell 5.1 or PowerShell 7+
!Warning: Each job pays process startup cost and they do not share variables; for CPU-bound work in PowerShell 7 use ForEach-Object -Parallel instead.

04Undo

✓No undo needed — this command does not change persistent state.

05Sources

  • Start-Job
    Microsoft Learn · vendor-doc · 2026-09-20
    Evidence: Starts a background PowerShell job in a separate process.

Last verified: 2026-10-13 · Category: Developer

06Related solutions