Created
January 31, 2018 22:38
-
-
Save jeremysimmons/0d81b632adcd5544a7ab56facc43e7ec to your computer and use it in GitHub Desktop.
show the LastRunTime of scheduled task
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<# | |
.Synopsis | |
Get the list of scheduled Tasks from Windows 7 or Windows 2008 computers | |
.Description | |
This script displays all the scheduled tasks available in a windows 7 or windows 2008 computer. | |
.Parameter ComputerName | |
Computer Name(s) from which you want to get the scheduled tasks information. If this | |
parameter is not used, the the script gets the scheduled tasks list from local computer. | |
.Parameter TaskName | |
Name of the scheduled task that you want to query. This is a optional parameter. | |
.Example 1 | |
Get-ScheduledTask.ps1 -ComputerName Comp1, Comp2 | |
Get the scheduled tasks information from listed computers. | |
.Example 2 | |
Get-ScheduledTask.ps1 -ComputerName Comp1 -TaskName "Calibration Loader" | |
Get the details of given task from Comp1. | |
.Notes | |
NAME: Get-ScheduledTask.ps1 | |
AUTHOR: Sitaram Pamarthi | |
WEBSITE: http://techibee.com | |
#> | |
[cmdletbinding()] | |
param ( | |
[parameter(ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] | |
[string[]] $ComputerName = $env:computername, | |
[string] $TaskName | |
) | |
#function to get all scheduled task folder details. | |
function Get-TaskSubFolders { | |
[cmdletbinding()] | |
param ( | |
$FolderRef | |
) | |
$ArrFolders = @() | |
$folders = $folderRef.getfolders(1) | |
if($folders) { | |
foreach ($folder in $folders) { | |
$ArrFolders = $ArrFolders + $folder | |
if($folder.getfolders(1)) { | |
Get-TaskSubFolders -FolderRef $folder | |
} | |
} | |
} | |
return $ArrFolders | |
} | |
#MAIN | |
foreach ($Computer in $ComputerName) { | |
$SchService = New-Object -ComObject Schedule.Service | |
$SchService.Connect() | |
$Rootfolder = $SchService.GetFolder("\") | |
$folders = Get-Tasksubfolders -FolderRef $RootFolder | |
foreach($Folder in $folders) { | |
$Tasks = $folder.gettasks(1) | |
foreach($Task in $Tasks) { | |
$OutputObj = New-Object -TypeName PSobject | |
$OutputObj | Add-Member -MemberType NoteProperty -Name ComputerName -Value $Computer | |
$OutputObj | Add-Member -MemberType NoteProperty -Name TaskName -Value $Task.Name | |
$OutputObj | Add-Member -MemberType NoteProperty -Name TaskFolder -Value $Folder.path | |
$OutputObj | Add-Member -MemberType NoteProperty -Name IsEnabled -Value $task.enabled | |
$OutputObj | Add-Member -MemberType NoteProperty -Name LastRunTime -Value $task.LastRunTime | |
$OutputObj | Add-Member -MemberType NoteProperty -Name NextRunTime -Value $task.NextRunTime | |
if($TaskName) { | |
if($Task.Name -eq $TaskName) { | |
$OutputObj | |
} | |
} else { | |
$OutputObj | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment