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:

powershell
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:

Links die SharePoint 2013 Management Shell mit 21 gestarteten Integritätsanalyseaufträgen, rechts die Zentraladministration mit den zurzeit ausgeführten Health-Analysis-Jobs

Christoph Vollmann
Christoph VollmannSenior Cloud Architect at SoftwareOne and Microsoft MVP for Azure Networking. Routing, DNS, firewalls and Private Endpoints, preferably with Bicep or Terraform.LinkedInGitHubAbout mePhoto: Matthias Piekacz

Comments