Friday 23 May 2014

Powershell script to get the list of timer jobs that are executed between certain dates/times

.ps1 code:

cls
function Get-TimerJobs()
{
$SiteURL = read-host "Enter WebApplication URL"
$Site = Get-SPSite $SiteURL -ErrorAction SilentlyContinue 
$WebApp = $Site.WebApplication

$SDate  = read-host "Enter Start Date & Timefor ex:15/12/2011 11:00:00 AM"
$EDate = read-host "Enter End Date & Time for ex:15/12/2011 11:50:00 AM"
$startDate = [datetime]$SDate
$endDate = [datetime]$EDate


#GET ALL BETWEEN THAT TIME PERIOD
Write-Host "Fetching all jobs to JobHistoryOutput.csv for $myStartTime - $myStopTime..." -ForeGroundColor Red
$WebApp.JobHistoryEntries | Where-Object {($_.StartTime -gt $startDate) -and ($_.StartTime -lt $endDate)} | select JobDefinitionTitle,WebApplicationName,ServerName,Status,StartTime,EndTime,@{Expression={($_.EndTime - $_.StartTime).TotalSeconds};Label="Duration (secs)"}
Write-Host "Done! Check JobHistoryOutput.csv for info." -ForeGroundColor Green

#GET ALL THAT FAILED BETWEEN THAT TIME PERIOD
Write-Host "Fetching all errors to JobHistoryOutputErrors.csv for $myStartTime - $myStopTime..." -ForeGroundColor Red
$WebApp.JobHistoryEntries | Where-Object {($_.StartTime -gt $startDate) -and ($_.StartTime -lt $endDate) -and ($_.Status -ne 'Succeeded')} | select JobDefinitionTitle,WebApplicationName,ServerName,Status,StartTime,EndTime,@{Expression={($_.EndTime - $_.StartTime).TotalSeconds};Label="Duration (secs)"}
Write-Host "Done! Check JobHistoryOutputErrors.csv for info." -ForeGroundColor Green
}
$results = Get-TimerJobs
$results | Out-GridView



No comments:

Post a Comment