Assets/Get-OpsJob.ps1

<#
.SYNOPSIS
    Gets the status of Ops Jobs.
.PARAMETER JobName
    Optional specific job name.
#>

param (
    [string]$JobName = "*"
)

$TaskNamePattern = "OpsJob-$JobName"
$Tasks = Get-ScheduledTask -TaskName $TaskNamePattern -ErrorAction SilentlyContinue

$Results = @()

foreach ($Task in $Tasks) {
    $Info = $Task | Get-ScheduledTaskInfo
    
    $Results += [PSCustomObject]@{
        JobName = $Task.TaskName -replace "OpsJob-", ""
        State = $Task.State
        LastRunTime = $Info.LastRunTime
        LastTaskResult = $Info.LastTaskResult
        NextRunTime = $Info.NextRunTime
    }
}

return $Results