Eric Schoonover
Eric Schoonover

Reputation: 48402

PowerShell Job Progress Monitoring

Is there a way for a PowerShell job to report progress or to trigger events before it is complete? I just started playing around with executing background jobs in PowerShell and am wondering how far I can push the capability.

Upvotes: 4

Views: 4065

Answers (2)

x0n
x0n

Reputation: 52430

You can also raise your own custom events from within a local or remote job and act on them in the local session.

Upvotes: 2

Keith Hill
Keith Hill

Reputation: 201662

The standard "manual" way is to use the Get-Job cmdlet. As for events, when you create a job with Start-Job, the Job object returned has a "StateChanged" event on it you can subscribe to e.g.:

$job = Start-Job { Get-Process; Start-Sleep -seconds 60 }
Register-ObjectEvent $job -EventName StateChanged `
    -SourceIdentifier JobStateChanged `
    -Action { Write-Host "Job $($Sender.Id) $($Sender.JobStateInfo)" }

Upvotes: 10

Related Questions