Den ExchangeHealthChecker gibt es schon länger, jedoch scheint das nützliche Script vielen noch unbekannt zu sein. Dabei lohnt es sich das Script immer mal wieder auszuführen um Problemen vorzubeugen. Der ExchangeHealthChecker analysiert die Exchange Konfiguration und listet die häufigsten Konfigurationsprobleme. Das Script erleichtert also mitunter die Fehlersuche ungemein. Beispielsweise listet der ExchangeHealthChecker abgelaufene Zertifikate auf, beispielsweise ein abgelaufenes OAuth Zertifikat, welches bei der Installation der Juli 2021 Sicherheitsupdates für Probleme sorgte. Das Script listet aber auch Konfigurationsprobleme auf, die man vielleicht nicht immer gleich als solche erkannt hat (obwohl man die empfohlenen 128GB RAM für Exchange 2019 in vielen Umgebungen doch eher ignorieren kann). Trotzdem halte ich den ExchangeHealthChecker für ein sehr nützliches Script und ich habe es mit mittlerweile angewöhnt, dass Script vor der Installation der Exchange CUs einmal durchlaufen zu lassen.
Der ExchangeHealthChecker kann hier runtergeladen werden:
Bevor der ExchangeHealthChecker ausgeführt wird, sollte sichergestellt werden, dass auch immer die aktuelle Version verwendet wird. Wie bereits erwähnt, lade ich die jeweils aktuelle Version vor der Installation der Exchange CUs runter und lasse es dann einmal durchlaufen. Wichtig ist, dass ExchangeHealthChecker in der „elevated Exchange Shell“ ausgeführt wird (Run as Administrator). Der Aufruf des Scripts ohne weitere Parameter überprüft den lokalen Exchange Server:
Die Ausgabe der Ergebnisse erfolgt direkt in der Shell, gleichzeitig wird aber auch ein Log im XML und TXT Format geschrieben, sodass sich die Ergebnisse auch durch andere Scripte weiter verarbeiten lassen.
Das ExchangeHealthChecker Script selbst, hat aber auch die Möglichkeit die Ergebnisse als HTML Datei aufzubereiten. Um einen HTML Report zu erhalten kann das Script nach dem ersten Durchlauf mit dem Parameter -BuildHtmlServersReport aufgerufen werden:
Dies erzeugt einen einfach zu lesenden Report, hier mal ein (gekürztes) Beispiel:
Im HealthChecker HTML Report finden sich somit zusammengefasst Konfigurationsprobleme und offene Schwachstellen, oft ist auch bereits ein Link zur Lösung des Problems enthalten.
Hallo Frank,
super Artikel, vielen Dank.
Ich habe leider das Problem das das script nicht durchläuft weil es den Server nicht ermitteln kann.
Der Befehl get-exchangeserver gibt nichts zurück und so bricht das script ab.
Seltsamerweise wird auch in der EPS kein Name zurück gegeben.
Was mache ich falsch, oder kennt jemand das Problem auch?
Grüße
Det
Hier mal zum Copy-Pasten für die PowerShell:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn;
Invoke-WebRequest „https://github.com/microsoft/CSS-Exchange/releases/latest/download/HealthChecker.ps1“ -OutFile „C:\HealthChecker.ps1“ ; cd \
.\HealthChecker.ps1 ; C:\HealthChecker.ps1 -BuildHtmlServersReport
msrc.microsoft. com/update-guide/en-us/vulnerability/CVE-2021-1730
Ist im Artikel gut beschrieben, wie es geht.
das hat bei mir nicht gut funktioniert
nach anpassung der config waren keinerlei anhänge über OWA mehr abrufbar
hatte keinen fehler in meiner config gefunden
Exchange 2019 CU10
Also ich habe das per A-Record Eintrag in unserer owa/exchange domain gemacht. Wir benutzen aber split-dns. Ich bin da ziemlich genau nach der Anleitung vorgegangen, die hier im Forum verlinkt wurde. Nachdem die DNS Einträge sowohl intern als auch extern gesetzt wurden war das Zertifikat dran.
Natürlich müssen die ganzen Domains und Aliase auch im Zertifikat drinstehen. Allerdings machen wir OWA nicht per Reverse Proxy sondern nur per VPN.
Und das heißt ja nicht, dass kein Fehler da ist. Allerdings ohne Infos zu „deiner Konfiguration“ lässt sich wirklich nichts sagen.
Hallo Frank,
könntest du vielleicht auf das Thema Download Domains etwas näher eingehen?
Ich finde dazu keine guten Informationen geschweige denn ein HowTo. :)
LG
Peter
Ich würde mich auch sehr freuen
https://www.nobbysweb.de/blog/index.php?entry/59-sicherheitsanfälligkeit-in-microsoft-exchange-server-bezüglich-spoofing-cve-2021/
Vielleicht so? Oder was fehlt?
Hat das jemand mit der autodiscovery domain ausprobiert?
Ja, das hat jemand mit der autodiscover Domain ausprobiert. Funktioniert.
Wenn ich den Einwurf zum autodiscover-Eintrag richtig verstehe, müsste es ja mit den drei Befehlen
Set-OwaVirtualDirectory -Identity „owa (default Web site)“ -ExternalDownloadHostName „autodiscover.example.tld“
Set-OwaVirtualDirectory -Identity „owa (default Web site)“ -InternalDownloadHostName „autodiscover.example.tld“
Set-OrganizationConfig -EnableDownloadDomains $true
+ Reboot erledigt sein, oder übersehe ich da etwas?
Nein es ist wirklich so „schnell“ erledigt, wenn man nur die autodiscoverdomain zur Verfügung hat.
Hallo Frank,
gut dass du hier Aufmerksamkeit auf das Script lenkst, es ist wirklich sehr hilfreich und hat mir auch schon mal aus der Patsche geholfen. Als kleine Ergänzung: Das Script hat seit einiger Zeit einen Auto-Updater drin, heißt wenn der Exchange bzw. die Exchange Shell abgehend ins Internet kommt lädt das Script beim starten automatisch die aktuellste Version runter und gibt das auch als Info raus. Somit spart man sich das händische prüfen/runterladen der aktuellsten Version.
Mfg
Daniel
Hallo Frank,
könntest du vielleicht auf das Thema Download Domains in einem Artikel näher eingehen?
Ich finde dazu keine guten Informationen geschweige denn ein HowTo. :)
VG!
Gero
Was meinst du mit Download Domains?
Wüsstest du, wenn du das erwähnte skript ausgeführt hättest. ;)
Link für den anfragenden Gero weiter unten bei den Kommentaren. Wer Verbesserungsvorschläge hat, einfach Bescheid geben?