28. April 2024

Exchange Health Check Report – Exchange Funktionen überprüfen

Exchange Health Check Report Skript

Im heutigen Beitrag stelle ich euch ein Exchange Health Check Skript zur Verfügung. Das Ziel besteht darin den Zustand der Exchange-Server zu überprüfen und einen täglichen oder wöchentlichen Report zu generieren.

Code auf GitHub


Kurz zum Hintergrund

Der Betrieb einer Exchange-Umgebung erfordert eine routinierte oder automatisierte Funktionsprüfung der Exchange Server um einen reibungslosen Betrieb zu gewährleisten. Insbesondere nach der Bereitstellung von Windows- oder Exchange Sicherheitsupdates (mit und ohne DAG) ist es wichtig sämtliche Komponenten der Exchange Server zu überprüfen damit präventiv eine Störung vermieden wird.

Grundsätzlich empfiehlt es sich die Exchange Infrastruktur durch ein Monitoring-System zu überwachen. Hierbei sollten die Server nicht nur auf Erreichbarkeit wie z.B. Ping  oder Laufwerks-Kapazitäten überprüft werden, sondern auch die jeweiligen Exchange Komponenten wie z.B. OWA und Hub Transport. Exchange stellt z.B. sogenannte “Health Check URLs” bereit, um sicherzustellen, dass die virtuellen Verzeichnisse wie OWA, ECP oder ActiveSync stets erreichbar sind:

https://SERVERNAME/mapi/healthcheck.htm
https://SERVERNAME/owa/healthcheck.htm
https://SERVERNAME/ecp/healthcheck.htm
https://SERVERNAME/Microsoft-Server-ActiveSync/healthcheck.htm
https://SERVERNAME/powershell/healthcheck.htm
https://SERVERNAME/autodiscover/healthcheck.htm
https://SERVERNAME/ews/healthcheck.htm
https://SERVERNAME/oab/healthcheck.htm
https://SERVERNAME/rpc/healthcheck.htm

Hierbei sollte stets der HTTP Code 200 (Verbindung erfolgreich) als Antwort zurück gegeben werden, andernfalls liegt eine Störung in der jeweiligen Schnittstelle vor:


Wenn wir einen Blick in die Ausgabe von

Get-ServerComponentState Servername

hinein blicken, so werden hier die Exchange Komponenten eines im Betrieb laufenden Exchange Servers angezeigt:

Die Spalte  “State” gibt uns den Wert “Active” zurück und wir können davon ausgehen, dass alles in Ordnung ist.


Was sind Exchange Komponenten?

Die Exchange Komponenten bilden sozusagen eine weitere Schicht der bereitgestellten Exchange Dienste und ermöglicht eine feinere Steuerung des Betriebsmodus. Während z.B. die Exchange Dienste unter Windows weiter laufen, erlaubt der in Exchange 2013 eingeführte Betriebsmodus einzelne Komponenten wie z.B Hub-Transport auf einen beliebigen Exchange-Knoten außer Betrieb zu nehmen. Das bedeutet, dass parallel  alle weiteren Exchange Komponenten ihre Funktionen verrichten. In diesem eingeschränkten Betriebsmodus können z.B. Nachrichten auf andere Server umgeleitet werden und erlaubt somit eine temporäre Wartung während andere Funktionen weiterhin zur Verfügung gestellt werden. Weitere Informationen können gerne hier eingesehen werden: Link

Wenn nun ein Server in den Wartungsmodus versetzt wird, so wird der Status Inactive eingenommen. Einen detaillierteren Bericht über den Zustand eines Servers erhält man durch:

Get-ServerHealth EX01 | ft -AutoSize
bzw.
Get-ServerHealth -Identity ex01 | ? { $_.AlertValue -ne "healthy" } | ft -Autosize

Es stehen genauso diverse CommandLets zur Verfügung, um Verbindungstests durchzuführen:

Get-Command test-*activity

Neben den benannten Beispielen gibt es selbstverständlich viele weitere Möglichkeiten die Exchange Umgebung auf Herz und Niere zu überprüfen. Gehen wir nun einen Schritt weiter und lassen uns automatisiert einen Bericht zuschicken…


Skript in die Aufgabenplanung aufnehmen

Inhalt des Skriptes in einem beliebigen Ordner ablegen – z.B.: C:\Scripts\health_check_report

Gerne darf hier das eigene Firmen-Logo “logo.png” abgelegt werden.

PowerShell als Administrator öffnen und folgende Befehle eingeben:

  • cd “C:\Scripts\health_check_report
  • .\prepareSchedulerTask.ps1”   (Punkt nicht vergessen)

  • Im Anschluss darauf wird das Skript in die Aufgabenplanung aufgenommen:

  • Als nächstes kann jetzt festgelegt werden wann das Skript ausgeführt wird – hier jeden Montag um 6 Uhr morgens:

Im nächsten Schritt setzen wir die SMTP Parameter in der Datei “params.txt“:

  • Zeile 1: SMTP-Server
  • Zeile 2: Absender
  • Zeile 3: Empfänger

Das Skript kann abschließend über die Aufgabenplanung ausgeführt werden. Der HTML Report wird im Anschluss in das Skriptverzeichnis abgelegt:


HTML Bericht

Der HTML Version kann hier eingesehen werden: Link

Auszug des Berichts:
OWA
HTML Datei im Skriptverzeichnis:

Download Skript:


Code auf GitHub

0 0 votes
Article Rating
Abonnieren
Benachrichtige mich bei
guest
2 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
Alex

Moin Eddie, danke für das coole Skript!
Leider läuft es nicht unter Exchange Core Version weil er taskschd.msc nicht findet. Denkst du man könnte es für den Core noch irgendwie anpassen?

VG
Alex

2
0
Would love your thoughts, please comment.x