Private/Util/Format-TriggerSummary.ps1
|
function Format-TriggerSummary { [CmdletBinding()] [OutputType([string])] param([Parameter(Mandatory)][object]$Trigger) $type = $Trigger.CimClass.CimClassName $time = $null if ($Trigger.StartBoundary) { try { $time = ([datetime]$Trigger.StartBoundary).ToString('HH:mm') } catch {} } switch ($type) { 'MSFT_TaskDailyTrigger' { return "Daily at $time" } 'MSFT_TaskTimeTrigger' { return "Once at $time" } 'MSFT_TaskBootTrigger' { return 'At system startup' } 'MSFT_TaskLogonTrigger' { if ($Trigger.UserId) { return "At logon of $($Trigger.UserId)" } else { return 'At any user logon' } } 'MSFT_TaskIdleTrigger' { return 'When system is idle' } 'MSFT_TaskWeeklyTrigger' { $names = @('Sun','Mon','Tue','Wed','Thu','Fri','Sat') $bits = [int]$Trigger.DaysOfWeek $days = for ($i=0; $i -lt 7; $i++) { if ($bits -band (1 -shl $i)) { $names[$i] } } return "Weekly on $($days -join ', ') at $time" } default { return $type } } } |