RGADMap
VBScript und 64Bit !
Viele 32bit COM-Objekte lassen sich auf einem 64bit System nur
instanziieren, wenn die 32bit Version von CSCRIPT/WSCRIPT genutzt wird,
welcher unter C:\Windows\SysWOW64\cscript.exe liegt.
Exchange 2000/2003 organisiert seine Server in Routinggruppen, um dann �ber Connectoren den Weg der Mails zwischen den Servern zu definieren. Eine Grundregel besagt, dass diese Connectoren am besten entlang den physikalischen Verbindungen konfiguriert werden. Die gleiche Aussage gilt übrigens auch für das Active Directory und die Sitelinks zur Verbindung der Active Directory Standorte.
Exchange 2007 wird sogar die Information aus dem Active Directory für das Routing von Nachrichten nutzen. Dadurch entfällt später die doppelte Pflege der eigentlich identischen Information.
Daher liegt es ja nahe, dass wir per Script kontrollieren, ob die Exchange Server einer Routinggruppe auch in der gleichen Active Directory Site beheimatet sind, ob eine Routinggruppe über mehrere AD-Sites und ob eine AD-Site über mehrere Exchange Routinggruppen geht,
Hinweis:
Das Script dokumentiert nur die Exchange Server und ihre Zugehörigkeit zu
Routinggruppen und anhand der IP-Adresse der PING-Antwort ihre Zugehörigkeit
zur Active Directory Site. für eine genauere Auswertung eignen sich z.B. Excel Pivot-Tabellen.
Das Script
Die Logik des Script ist relativ einfach gestrickt.
- Liste der Server ermitteln
Es holt sich über eine LDAP-Abfrage alle Exchange Server der Organisation und läuft diese Liste sequentiell ab. - IP-Adresse per PING
Der NetBIOS-Name des Servers wird über WMI vom lokalen PC aus per PING angesprochen um über den Weg die IP-Adresse des Servers zu erhalten. Leider ist es mir anders nicht möglich, den Namen auf eine IP-Adresse aufzulösen, ohne Umwege über einen Aufruf von NSLOOKUP zu gehen. - Active Directory Site ermitteln
Eine zweite Klasse steuert den einfachen Zugriff auf die Informationen der Active Directory Standorte. Ein einziger Aufruf liefert mit denn den Namen der dazugehörigen Site. - Exchange Routinggruppe ermitteln
Entsprechend gibt es eine Klasse für den Zugriff auf die Konfiguration von Exchange um die Routinggruppe des Servers zu ermitteln. - Ausgabe
All diese Daten werden wieder einmal in einer XML-Datei zur weiteren Verwendung ausgegeben. Ein passendes Stylesheet erlaubt auch eine schnelle Ansicht im Internet Explorer.
Natürlich nutzen die Klassen teilweise andere Klassen um Zugriffe zu cachen und Ergebnisse zu puffern.
So sieht es aus:
Natürlich macht das Script nur Sinn, wenn Sie eine etwas größere Umgebung mit mehreren Standorten und Routinggruppen betreiben. Die Ausgabe wird mit einem Stylesheet z.B.: im Internet Explorer wie folgt dargestellt:
Sie sehen sehr gut dabei dann alle Exchange Server und ihre IP-Adresse und den daraus abgeleiteten AD-Standorten und Routinggruppen. Ein per PING nicht erreichbarer Server wird dabei mit gelben NOPING gekennzeichnet. Kritisch sind Natürlich Exchange Server, deren IP-Adresse nicht in einer AD-Site gefunden werden. Hier ist sicher noch etwas bei der Definition der Active Directory Standorte und Dienste zu verbessern.
Download
Diese Script ist nur hilfreich, wenn sie mehrere Routinggruppen und administrative Gruppen haben. Die Mehrzahl der MSXFAQ-Leser werden dieses Script daher nicht benötigen.
Das Skript wird ohne Angabe von Parametern einfach mit folgender Kommandozeile gestartet
CSCRIPT rgadmap.vbs
Es nutzt die Berechtigungen des angemeldeten Benutzers, um dann die Daten per LDAP aus dem Active Directory auszulesen. Sie müssen daher Leserechte auf die Active Directory Konfigurationspartition haben, um sowohl die Active Directory Standorte als auch die Exchange Server und Routinggruppen auslesen zu können.
Beachten Sie bitte, das die LDAP-Anfragen den Server etwas belasten und das Programm mit den Berechtigungen des angemeldeten Benutzers arbeitet.
Die Analyse der Routinggruppen und AD-Sites ist
Natürlich nur der erste Schritt. Gerade im Hinblick auf Exchange 2007 ist
auch ein Vergleich der Verbindungen interessant, d.h. gibt es passend zu
einem Sitelink auch einen Exchange Connector. Bei der Aufstellung einer
solchen Auswertung helfen wir gerne.
Informationen, warum diese Skripte nicht öffentlich sind, finden Sie auf
nicht public.
Weitere Pläne
Wünschenswert wäre Natürlich hier gleich eine Funktion, die zu den Sitelink im AD die passenden Routinggruppenconnectoren zuordnet und Unstimmigkeiten meldet. Das ist aber nicht so einfach, da es in größeren Firmen häufig mehr Active Directory Standorte als Exchange Routinggruppen gibt. Daher muss es zu einem RG-Connector nicht zwingen auch einen direkte Sitelink geben.