# http://support-sharepoint.blogspot.in/2015/06/script-to-delete-job-history.html Write-Host "Clearing Down Timer Job History" $daysToKeep = 730 $daysToPurgeInOneLoop = 5 while ($daysToKeep -gt 0) { $history = get-sptimerjob | where-object {$_.name -eq “job-delete-job-history”} Write-Host " " Write-Host -NoNewLine "Setting Days to Keep:" Write-Host -ForegroundColor Green $daysToKeep $history.DaysToKeepHistory = $daysToKeep $history.update() Write-Host -ForegroundColor Green "Starting Purge Job" $lastTimeJobRan = $history.LastRunTime $history.runnow() Write-Host -NoNewLine -ForegroundColor Green "Waiting For Purge Job to Complete" $jobFinished = $false while ($jobFinished -eq $false) { Start-Sleep -Seconds 2 $runningJob = Get-SPTimerJob $history.Name Write-Host -NoNewLine -ForegroundColor Yellow "." if ($lastTimeJobRan -ne $runningJob.LastRunTime) { $jobFinished = $true } } Write-Host " " Write-Host -ForegroundColor Green "Ending Purge Job" $daysToKeep = $daysToKeep - $daysToPurgeInOneLoop } Write-Host -ForegroundColor Green "Setting Final Job History Retention to 3 days, and schedule to run daily @ 5am" $history.DaysToKeepHistory = 3 $history.update() $history.runnow() Set-SPTimerJob -Identity $history -Schedule "Daily at 05:00" Write-Host -ForegroundColor Yellow "Please check row counts on dbo.TimerJobHistory Table in Config DB to ensure run complete"