zoukankan      html  css  js  c++  java
  • 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  
  • 相关阅读:
    php token的生成
    php使用gearman进行任务分发
    PHP调用Python接口过程中所遇到的问题
    php结合redis实现高并发下的抢购、秒杀功能
    (转)防止表单重复提交的八种简单有效的策略
    yii防止延迟用户多次点击按钮重复提交数据
    mysql 几种日志
    神经网络模型模型转ONNX
    ResNet v2笔记
    ResNet论文笔记
  • 原文地址:https://www.cnblogs.com/Bear-Study-Hard/p/4958090.html
Copyright © 2011-2022 走看看