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.

Weitere Links