Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jdhitsolutions/scheduledjobtools
A Windows PowerShell module with a set of commands for managing scheduled jobs. :card_file_box: :hammer_and_wrench:
https://github.com/jdhitsolutions/scheduledjobtools
powershell scheduledjobs
Last synced: 9 days ago
JSON representation
A Windows PowerShell module with a set of commands for managing scheduled jobs. :card_file_box: :hammer_and_wrench:
- Host: GitHub
- URL: https://github.com/jdhitsolutions/scheduledjobtools
- Owner: jdhitsolutions
- License: mit
- Created: 2018-06-29T17:22:04.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-10-17T19:00:30.000Z (20 days ago)
- Last Synced: 2024-10-20T04:49:14.351Z (18 days ago)
- Topics: powershell, scheduledjobs
- Language: PowerShell
- Homepage:
- Size: 47.9 KB
- Stars: 32
- Watchers: 4
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: changelog.md
- License: License.txt
Awesome Lists containing this project
README
# ScheduledJobTools
[![PSGallery Version](https://img.shields.io/powershellgallery/v/ScheduledJobTools.png?style=for-the-badge&logo=powershell&label=PowerShell%20Gallery)](https://www.powershellgallery.com/packages/ScheduledJobTools/) [![PSGallery Downloads](https://img.shields.io/powershellgallery/dt/ScheduledJobTools.png?style=for-the-badge&label=Downloads)](https://www.powershellgallery.com/packages/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:
```powershell
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:
[Export-ScheduledJob](/docs/Export-ScheduledJob.md)
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.
[Import-ScheduledJob](/docs/Import-ScheduledJob.md)
Assuming you have exported the scheduled job, use this command to import it and recreate the configuration.
[Get-ScheduledJobResult](/docs/Get-ScheduledJobResult.md)
This command is designed to make it easier to get the most recent results of your scheduled job.
```text
PS C:\> Get-ScheduledJobResultID 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`.
[Remove-OldJobResult](/docs/Remove-OldJobResult.md)
Use this command to remove all but the most recent scheduled job result.
[Get-ScheduledJobDetail](/docs/Get-ScheduledJobDetail.md)
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.
```text
PS C:\> Get-ScheduledJobDetail -Name DailyIncrementalID : 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.
```text
PS C:\> Get-ScheduledJob JDHITBackup | Select-Object Name,NextRunName NextRun
---- -------
JDHITBackup 9/4/2024 6:00:00 PM
```Or you can use a custom table view.
```text
PS C:\> Get-ScheduledJob | Format-Table -view NextRunId 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`.
```text
PS C:\> Get-ScheduledJob WeeklyFullBackup | Select-Object RunInfoName 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.