Assets/Get-OpsJob.ps1
|
<# .SYNOPSIS Gets the status of Ops Jobs. .PARAMETER JobName Optional specific job name. Supports wildcards. #> param ( [string]$JobName = "*" ) $Tasks = @(Get-ScheduledTask -TaskName "OpsJob-$JobName" -ErrorAction SilentlyContinue) $Results = [System.Collections.Generic.List[object]]::new() foreach ($Task in $Tasks) { $Info = $Task | Get-ScheduledTaskInfo -ErrorAction SilentlyContinue $Results.Add([PSCustomObject]@{ # Anchored: an unanchored -replace would also strip the prefix from the # middle of a job name such as "Sync-OpsJob-Nightly". JobName = ($Task.TaskName -replace '^OpsJob-', '') State = $Task.State LastRunTime = $Info.LastRunTime LastTaskResult = $Info.LastTaskResult NextRunTime = $Info.NextRunTime }) } return $Results.ToArray() |