Alle Health Analyzer – Prüfungen auf einmal durchführen
Mal wieder etwas an der SharePoint-Umgebung umkonfiguriert?! Nun den kompletten Health-Analyzer einzeln durchzugehen und “Reanalyze now” bei jeder einzelnen Meldung zu klicken, erscheint doch etwas umständlich. Also prüfe ich nach einer Änderung einfach alle “Meldungen”, in dem ich alle Health Analyzer-Prüfungen auf einmal durchführen lasse.
Hier ein entsprechendes PowerShell:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
asnp *share* | |
write-host "Getting timerjob definitions…" | |
$jobs = Get-SPTimerJob | ? {$_.Title -like "Health Analysis Job*"} | |
if (!$jobs -or $jobs.Count -eq 0) { | |
# Maybe in German? 🙂 | |
$jobs = Get-SPTimerJob | ? {$_.Title -like "Integritätsanalyseauftrag*"} | |
} | |
if (!$jobs -or $jobs.Count -eq 0) { | |
throw "Found no timerjobs." | |
} | |
write-host "Found" $jobs.Count "timerjobs. Calling RunNow on all of them…" -f y | |
foreach ($job in $jobs) { | |
write-host $job.Title | |
$job.RunNow() | |
} | |
write-host "Getting Central Admin URL…" -f Y | |
$caUrl = Get-SPWebApplication -includecentraladministration | where {$_.IsAdministrationWebApplication} | Select-Object -ExpandProperty Url | |
write-host "Open IE with current timerjob status…" -f Y | |
$ie = New-Object -com internetexplorer.application; | |
$ie.visible = $true; | |
$ie.navigate($caUrl + "/_admin/ServiceRunningJobs.aspx"); | |
write-host "finished" -f Green |
Hinterher öffnet das Skript auch einen Internet Explorer mit der entsprechenden Status-Seite, damit man weiß, wann alle Jobs durchgelaufen sind.
Das Skript benötigt keine Parameter und die Ausgabe sieht dann so aus: