Awesome
ScheduledJobTools
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 ScheduledJobTools
This module will not run on PowerShell 7 since it does not support the ScheduledJob module.
Commands
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
Customizations
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.