A PowerShell module with commands for working with scheduled jobs. PowerShell scheduled jobs are only supported on Windows platforms. You can install this module from the PowerShell Gallery:
Install-Module ScheduledJobToolsThis module will not run on PowerShell 7 since it does not support the ScheduledJob module.
The module consists of these commands:
This command will export a scheduled job configuration to an XML file, making it easier to recreate on another computer or if you need to re-install.
Assuming you have exported the scheduled job, use this command to import it and recreate the configuration.
This command is designed to make it easier to get the most recent results of your scheduled job.
PS C:\> Get-ScheduledJobResult ID Name StartTime EndTime Runtime State -- ---- --------- ------- ------- ----- 551 OfflineTickle 9/4/2024 10:00:13 AM 9/4/2024 10:00:14 AM 00:00:01.0010018 Completed 154 myTasksEmail 9/4/2024 8:00:08 AM 9/4/2024 8:00:11 AM 00:00:02.9260021 Completed 58 WeeklyFullBackup 8/28/2024 10:00:08 PM 8/28/2024 10:14:43 PM 00:14:35.6991443 Completed 553 RemoteOpWatcher 9/4/2024 10:33:56 AM 9/4/2024 10:33:56 AM 00:00:00.6534636 Completed 153 DailyIncremental 9/3/2024 10:00:07 PM 9/3/2024 10:00:39 PM 00:00:31.3470147 Completed 72 JDHITBackup 9/3/2024 6:00:07 PM 9/3/2024 6:00:10 PM 00:00:03.1494835 Completed The function has an alias of ljr.
Use this command to remove all but the most recent scheduled job result.
PowerShell Scheduled jobs are intertwined with Scheduled Tasks. There is a lot of useful information, but it is buried in nested objects and properties. This command is designed to make it easier to get detailed information about a scheduled job.
PS C:\> Get-ScheduledJobDetail -Name DailyIncremental ID : 3 Name : DailyIncremental Command : C:\scripts\PSBackup\DailyIncrementalBackup.ps1 Enabled : True State : Ready NextRun : 9/5/2024 10:00:00 PM MaxHistory : 7 RunAs : BOVINE320\Jeff Frequency : Weekly Days : {Sunday, Monday, Tuesday, Wednesday...} RepetitionDuration : RepetitionInterval : DoNotAllowDemandStart : False IdleDuration : 00:10:00 IdleTimeout : 01:00:00 MultipleInstancePolicy : IgnoreNew RestartOnIdleResume : False RunElevated : True RunWithoutNetwork : False ShowInTaskScheduler : True StartIfNotIdle : True StartIfOnBatteries : False StopIfGoingOffIdle : False StopIfGoingOnBatteries : True WakeToRun : True When you import the module, it will modify the ScheduledJob object to define a script property called NextRun. This makes it easier to view when a job is scheduled to run again.
PS C:\> Get-ScheduledJob JDHITBackup | Select-Object Name,NextRun Name NextRun ---- ------- JDHITBackup 9/4/2024 6:00:00 PM Or you can use a custom table view.
PS C:\> Get-ScheduledJob | Format-Table -view NextRun Id Enabled Name NextRun Command -- ------- ---- ------- ------- 2 False DailyDiskReport 9/4/2024 11:00:00 PM C:\scripts\DiskReports.ps1 3 True DailyIncremental 9/5/2024 10:00:00 PM C:\scripts\PSBackup\DailyIncrementalBackup.ps1 4 True DailyWatcher ... 5 False HelpUpdate 9/28/2024 12:00:00 PM Update-Help 6 True JDHITBackup 9/4/2024 6:00:00 PM C:\scripts\Backup-JDHIT.ps1 8 True myTasksEmail 9/5/2024 8:00:00 AM ... 9 True OfflineTickle 9/4/2024 11:00:00 AM ... 10 True RemoteOpWatcher 9/4/2024 10:41:41 AM ... 11 True WeeklyFullBackup 9/4/2024 10:00:00 PM C:\scripts\PSBackup\WeeklyFullBackup.ps1 73 True tmp50E8 9/4/2024 12:45:45 PM ... Version 2.3.0 introduced a property set called RunInfo.
PS C:\> Get-ScheduledJob WeeklyFullBackup | Select-Object RunInfo Name NextRun LastRun Enabled ---- ------- ------- ------- WeeklyFullBackup 10/18/2024 10:00:00 PM 10/11/2024 10:14:16 PM True The view uses ANSI escape sequences and will color False in red.

