Get SharePoint Timer Job History using PowerShell
Requirement: Retrieve and review the SharePoint timer job history for troubleshooting an issue.
Solution: SharePoint 2013 Central Administration site provides an interface to get timer job history. Here are the steps to get SharePoint timer job history in SharePoint.
Why PowerShell? Well, the above central admin page provides the interface to analyze timer jobs associated with particular job or service, but there isn't any easy way to get timer job history for a specific time period other than navigating page by page. So, lets use PowerShell script to find and extract timer job history.
Get all timer jobs of a web application:
SharePoint PowerShell get timer job history: Get timer job history for a specific timer job
SharePoint timer job history using PowerShell: Failed Timer Jobs History Report
and the output report:
This CSV gives you the real quick way to analyze timer job history.
Tags: sharepoint 2013 get timer job history powershell, sharepoint timer job history powershell, sharepoint 2013 timer job history powershell, sharepoint powershell get timer job history
Solution: SharePoint 2013 Central Administration site provides an interface to get timer job history. Here are the steps to get SharePoint timer job history in SharePoint.
- Navigate to SharePoint 2013 Central Administration site
- Go to Monitoring >> Check Job status
- Click on "Job History" link from left navigation
- Under the "View" filter, choose "Job Definition". You'll find an cascading filter appears as "Job Definition" once you choose View filter as "Job definition". You can also choose options such as: Service, Web Application, Server.
- Click on the job definition filter to "change job definition"
- Pick the relevant timer job definition. E.g. Audit Log Trimming, Immediate Alerts, etc.
- Now, you'll find the jobs history for selected timer job as below.
Why PowerShell? Well, the above central admin page provides the interface to analyze timer jobs associated with particular job or service, but there isn't any easy way to get timer job history for a specific time period other than navigating page by page. So, lets use PowerShell script to find and extract timer job history.
Get all timer jobs of a web application:
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue # Variables $WebAppURL = "http://intranet.crescent.com" $StartTime = "09/26/2015 01:00:00 AM" # mm/dd/yyyy hh:mm:ss $EndTime = "09/26/2015 01:30:00 AM" #Get all timer jobs associated with a web application $WebApp = Get-SPWebApplication $WebAppURL $Results = $WebApp.JobHistoryEntries | where { ($_.StartTime -ge $StartTime) -and ($_.EndTime -le $EndTime) } | Select JobDefinitionTitle,WebApplicationName,ServerName,Status,StartTime,EndTime #Send results to Grid view $Results | Out-GridView
SharePoint PowerShell get timer job history: Get timer job history for a specific timer job
# Variables $StartTime = "09/26/2015 01:00:00 AM" # mm/dd/yyyy hh:mm:ss $EndTime = "09/26/2015 01:30:00 AM" $TimerJobName = "Immediate Alerts" #To Get Yesterday's use: #$StartDateTime = (Get-Date).AddDays(-1).ToString('MM-dd-yyyy') + " 00:00:00" #$EndDateTime = (Get-Date).AddDays(-1).ToString('MM-dd-yyyy') + " 23:59:59" #Get the specific Timer job $Timerjob = Get-SPTimerJob | where { $_.DisplayName -eq $TimerJobName } #Get all timer job history from the web application $Results = $Timerjob.HistoryEntries | where { ($_.StartTime -ge $StartTime) -and ($_.EndTime -le $EndTime) } | Select WebApplicationName,ServerName,Status,StartTime,EndTime #Send results to Grid view $Results | Out-GridView
SharePoint timer job history using PowerShell: Failed Timer Jobs History Report
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue # Variables $WebAppURL = "http://intranet.crescent.com" $StartTime = "01/01/2016 01:00:00 AM" # mm/dd/yyyy hh:mm:ss $EndTime = "05/01/2016 01:30:00 AM" $OutPutFile="D:\FailedJobHistoryRpt.csv" #Get all timer jobs associated with a web application $WebApp = Get-SPWebApplication $WebAppURL #Get all Failed Timer jobs in between given Time $Results = $WebApp.JobHistoryEntries | Where {($_.StartTime -ge $StartTime) -and ($_.EndTime -le $EndTime) -and ($_.Status -ne 'Succeeded')} #Export to CSV $Results | Export-Csv $OutPutFile –NoType write-host "Failed Timer jobs history Exported to CSV!" -F Green
and the output report:
This CSV gives you the real quick way to analyze timer job history.
Tags: sharepoint 2013 get timer job history powershell, sharepoint timer job history powershell, sharepoint 2013 timer job history powershell, sharepoint powershell get timer job history
Good
ReplyDeleteThis is excellent! helped us a lot. Thanks!
ReplyDelete