Get-CASURL

Bei der Konfiguration von Exchange 2007/2010 nutzen Outlook Clients die Funktion Autodiscover, um die passende Konfiguration zu ermitteln. Damit die Client die verschiedenen Webdienste (z.B. Offline Adressbuch, Free/Busy, Unified Messaging etc.) mit dem richtigen Namen ansprechen, muss ein Administrator die korrekten URLs im System konfigurieren. Diese sind auch für die Kommunikation der Exchange CAS-Rollen untereinander erforderlich. (Siehe auch CAS Proxy, CASProxy 2007, CASProxy 2010 und CAS und NLB). Dreh und Angelpunkt ist daher die Konfiguration der korrekten URLs (Siehe auch CASURLs). Da kann man schnell mal den Überblick verlieren.

Dieses kleine PowerShell-Skript dient dazu, von allen CAS-Servern die vorhandenen Einstellungen auszulesen und so aufzubereiten, dass ein Administrator schnell einen Überblick erhalten und Fehlkonfigurationen erkennen kann.

Musterausgaben

Das Skript ermittelt die Daten und gibt diese dann in die Pipeline aus. Ein Export in eine CSV-Datei ist damit einfach möglich. Hier die Ausgabe eines "Single Servers".

Ich habe die Ausgabe über "Format-Table" auf die interessanten Werte beschränkt. Sie können sehen, dass das Skript nicht nur die nackten URLs ausliest, sondern per RegEx auch in die Host und Pfad-Teile auftrennt und einfacher Validierungen vornimmt. So sehen Sie, welche Dienste per SSL (https) konfiguriert sind und die Spalte "PathOK" sagt aus, dass die Angaben zum Pfad dem "Standard" entsprechen, der hintendran als uripath angezeigt wird. Auch der urihost ist wichtig, da hier Tippfehler oder "vergessene" Einträge für ein CASArray natürlich kontraproduktiv sind.

Als Tabelle können Sie die Information mittels "Export-CSV" einfach wegschreiben und mit Excel und anderen Werkzeugen sortieren und filtern. Das geht natürlich auch mit PowerShell Bordmitteln wie Sort, Where, Group. Die Spalte "Service" enthält als Kurzbeschreibung, welche URL sich dahinter verbirgt.

Download und Aufruf

Das Skript zählt eher zu den "kleinen" Werkzeugen mit wenig Kniffen. Laden Sie sich das PowerShell Script einfach hier herunter und ändern Sie danach die Extension in "PS1".

get-casURL.1.1.ps1.txt
Nach dem Download bitte die Extension auf PS1 stellen und die Version aus dem Skriptnamen entfernen.

Der Aufruf selbst muss in eine Exchange PowerShell erfolgen, da das Skript die Exchange Commandlets nutzt.

Leider gibt es einige Commandlets, die es unter Exchange 2010 nicht mehr gibt (z.B. "Get-UMVirtualDirectory"). Auch Exchange 2007 kennt neuere Befehle von Exchange 2010 (z.B. Get-PowerShellVirtualDirectory und Get-ECPVirtualdirectory) nicht mehr  ab. Die Fehlerausgabe können Sie daher auf Exchange 2010 Servern ignorieren.

Sie sollten weiterhin darauf achten. dass Sie zumindest "lese-Rechte" in der Exchange Organisation haben, damit Sie wirklich alle Dienste sehen und abfragen können. Ein geeigneter Aufruf ist dann wenig spektakulär und ist auch oben im Bild schon ersichtlich:

.\get-casURL.ps1 | ft service,ssl,urihost,pathok,uripath -au

Wie Bewertung und Analyse der Ausgaben überlasse ich natürlich ihnen. für mich ist es besonders in größeren Umgebungen ein nützliches Hilfsmittel, um einen Überblick zu erhalten und einfache Tippfehler oder vergessene Dienste zu erkennen

Zukünftige Verbesserungen

Interessant könnte es noch sein, mittels "Get-ExchangeServer" über das Property "Site" die Zuordnung der URLs zu den Standorten zu ermitteln und vielleicht zu prüfen. So sollte in unterschiedlichen Standorten die "ExternalURL" nicht gleich lauten.

Weitere Links