惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Troy Hunt's Blog
Blog — PlanetScale
Blog — PlanetScale
Engineering at Meta
Engineering at Meta
F
Full Disclosure
Recorded Future
Recorded Future
The GitHub Blog
The GitHub Blog
Microsoft Security Blog
Microsoft Security Blog
GbyAI
GbyAI
博客园_首页
博客园 - 叶小钗
MongoDB | Blog
MongoDB | Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Recent Commits to openclaw:main
Recent Commits to openclaw:main
H
Hacker News: Front Page
人人都是产品经理
人人都是产品经理
The Cloudflare Blog
博客园 - 司徒正美
Webroot Blog
Webroot Blog
Google DeepMind News
Google DeepMind News
Help Net Security
Help Net Security
Cloudbric
Cloudbric
PCI Perspectives
PCI Perspectives
有赞技术团队
有赞技术团队
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
TaoSecurity Blog
TaoSecurity Blog
L
Lohrmann on Cybersecurity
量子位
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tailwind CSS Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
B
Blog RSS Feed
Apple Machine Learning Research
Apple Machine Learning Research
大猫的无限游戏
大猫的无限游戏
P
Proofpoint News Feed
N
News and Events Feed by Topic
罗磊的独立博客
T
Threat Research - Cisco Blogs
Schneier on Security
Schneier on Security
T
Tor Project blog
IT之家
IT之家
M
MIT News - Artificial intelligence
S
Security @ Cisco Blogs
O
OpenAI News
AI
AI
S
Securelist
Simon Willison's Weblog
Simon Willison's Weblog
The Last Watchdog
The Last Watchdog
月光博客
月光博客
Security Archives - TechRepublic
Security Archives - TechRepublic
L
LINUX DO - 热门话题

博客园 - 努力学习的小熊

SharePoint - Another Way to Delete Site Collection Exchange - Add Owner of Distribution Group Exchange Online Mailbox Restoration OUTLOOK - Unable to Delete Meetings Outlook Error: The Delegates settings were not saved correctly. Cannot activate send-on-behalf-of list. Office365 OneDrive Geo Move SharePoint Excel Service - Couldn't Open the Workbook. User Get 'Access Denied' with Excel Service WebPart How To Search and Restore files from Site Collection Recycle Bin How To Collect ULS Log from SharePoint Farm How To Restart timer service on all servers in farm How to Operate SharePoint User Alerts with PowerShell Synchronization Service Manager SharePoint 2007 Full Text Searching PowerShell and CS file content with SharePoint Search 0x80040E14 Caused by Max Url Length bug SharePoint 2007 User Re-created in AD with new SID issue on MySite SharePoint 2007 Prompt for Credentials When Accessing FQDN Sites From a Windows Vista or Windows 7 Computer SharePoint 2010 找回丢失的Social Collaboration Web Parts SharePoint 客户端经常弹出Windows验证登录框问题
How to get Timer Job History
努力学习的小熊 · 2015-11-12 · via 博客园 - 努力学习的小熊

2015-11-12 10:11  努力学习的小熊  阅读(531)  评论()    收藏  举报

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