How to get Timer Job History

1. Get Timer Job internal name with id.

Job ID can be found in SharePoint CA.

 

Below PowerShell can help you retrieve all jobs’ Internal Name by keywords.

 

Get-SPTimerJob | Sort-Object name | where {$_.Name -like "*Profile*"} | ft id,name

 

 

2. Using script in attachment, you can get the history of specific Timer Job

 

 

The result will be like this.

 

PowerShell

$LogTime = Get-Date -Format yyyy-MM-dd_hh-mm   
$LogFile = ".\TimerJobReportPatch-$LogTime.rtf"   
# Add SharePoint PowerShell Snapin   
   
if ( (Get-PSSnapin -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue) -eq $null ) {   
    Add-PSSnapin Microsoft.SharePoint.Powershell   
}   
$scriptBase = split-path $SCRIPT:MyInvocation.MyCommand.Path -parent   
Set-Location $scriptBase   
#Deleting any .rtf files in the scriptbase location   
$FindRTFFile = Get-ChildItem $scriptBase\*.* -include *.rtf   
if($FindRTFFile)   
{   
    foreach($file in $FindRTFFile)   
        {   
            remove-item $file   
        }   
}   
start-transcript $logfile   
Function TimerJobReport()   
{   
    $Output = $scriptBase + "\" + "TimerJobReport.csv";   
"Name" + "," + "Status" + ","  + "LastRun" + "," + "Schedule"  | Out-File -Encoding Default -FilePath $Output;   
    write-host "Generating TimerJob generic report" -fore yellow   
    $TimerJobs = get-sptimerjob   
    foreach($TimerJob in $Timerjobs)   
    {   
$TimerJob.name + "," + $TimerJob.status + "," + $TimerJob.lastruntime + "," + $TimerJob.schedule  | Out-File -Encoding Default  -Append -FilePath $Output;   
    }   
    write-host "TimerJob genric report collected and placed under " $Output -fore green   
}   
   
Function TimerJobHistory()   
{   
    $Output1 = $scriptBase + "\" + "TimerJobHistoryReport.csv";   
"Name" + "," + "Status" + ","  + "ServerName" + "," + "WebApplicationName" + "," + "ErrorMessage"  | Out-File -Encoding Default -FilePath $Output1;   
    write-host "Generating TimerJob history report" -fore yellow   
    $TimerJobs = get-sptimerjob   
    foreach($TimerJob in $Timerjobs)   
    {   
        $JobHistories = $TimerJob.historyentries   
        foreach($Jobhistory in $JobHistories)   
        {   
            if($TimerJob.lastruntime.ToUniversalTime() -eq $JobHistory.starttime)   
            {   
$TimerJob.Name + "," + $Jobhistory.status + "," + $Jobhistory.servername + "," + $Jobhistory.WebApplicationName + "," + $Jobhistory.ErrorMessage | Out-File -Encoding Default  -Append -FilePath $Output1;   
            }   
        }   
    }   
    write-host "TimerJob history report generated and placed under " $output1 -fore green   
}   
   
Function SpecificTimerJob()   
{   
    $Output2 = $scriptBase + "\" + "SpecificTimerJobHistoryReport.csv";   
"Name" + "," + "Status" + ","  + "ServerName" + "," + "TimerJobStartTime" + "," + "WebApplicationName" + "," + "ErrorMessage"  | Out-File -Encoding Default -FilePath $Output2;   
    $TimerJobName = read-host "Enter the timer job name "   
    $Timerjob = get-sptimerjob -identity $TimerJobName   
    $jobHistories = @($timerjob.historyentries)    
$HowManyHistory = read-host "Please enter the number of histories that you want to return for this timerjob "   
    for($i = 0 ; $i -le $HowManyHistory; $i++)   
    {   
$TimerJob.Name + "," + $jobHistories[$i].status + "," + $jobHistories[$i].servername + "," + $jobHistories[$i].StartTime + "," + $jobHistories[$i].WebApplicationName + "," + $jobHistories[$i].ErrorMessage | Out-File -Encoding Default  -Append -FilePath $Output2;   
    }      
    break;   
}   
write-host "########################################################################################################" -fore cyan   
write-host "Enter 1 to get SP Timer job generic reports" -fore green   
write-host "Enter 2 to get specific SP Timer job report " -fore green   
write-host "########################################################################################################" -fore cyan   
$option = read-host "Enter the option "   
switch($option)   
{   
    1{   
        TimerJobReport   
        TimerJobHistory        
     }   
   
    2{   
        SpecificTimerJob   
     }   
}   
write-host "SCRIPT COMPLETED" -fore green   
stop-transcript  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值