CheckExObjects

VBScript und 64Bit !
Viele 32bit COM-Objekte lassen sich auf einem 64bit System nur instanzieren, wenn die 32bit Version von CSCRIPT/WSCRIPT genutzt wird, welcher unter C:\Windows\SysWOW64\cscript.exe liegt.

Bei Exchange 2007/2010 ist CheckExObjects zum Teil in "Ger-Mailbox" und anderen Commandlets enthalten, die ebenfalls eine Warnung generieren, wenn bestimmte Felder nicht passen.

Die Aufgabe von CheckExObjects ist die Kontrolle aller Objekte im Active Directory hinsichtlich ihrer Exchange Konfigurationen. Dabei werden ALLE Objekte, die für Exchange relevant sein könnten, nacheinander ausgelesen und gegen ein umfangreiches Regelwerk geprüft. Die Ausgabe erfolgt in einer XML-Datei

Alle Skripte sind Muster ohne jede Gewährleistung oder Funktionsgarantie. Für Schäden bin ich nicht verantwortlich. Achten Sie auf Zeilenumbrüche bei der Übernahme.

Folgende Objekte werden analysiert

Das Script prüft ALLE diese Objekte daraufhin, ob diese für Exchange aktiviert sind. Dabei gilt:

Das Script gibt entsprechende Warnungen und Fehlermeldungen aus. Alle Daten werden in einer XML-Datei gespeichert und mit dem passenden XSL-Stylesheet auch einfach angezeigt. Hier ein Muster:

Die hier aufgezeigten Warnungen sind verständlich, da die Exchange Organisation noch im "mixed" mode ist und ein leere "msExchADCGlobalName" ein Zeichen für einen Fehlkonfiguration des ADC ist.

Dabei werden natürlich je nach Art des Objekts andere Prüfungen durchgeführt. Die Prüfungen für Kontakte und nicht Exchange aktivierte Objekte sind jedoch noch nicht sehr umfangreich.

Mitmachen !!
Das Script und die Ergebnisse sind natürlich nur so gut, wie die durchgeführten Tests. Wenn Sie daher ein Problem entdeckt haben, was durch falsche Werte bei einem Empfängerobjekt verursacht wurde, dann schreiben Sie mir bitte was falsch war, dass ich einen entsprechenden Test addieren kann.

Aufruf

Rufen Sie das Programm am besten in einer Dosbox mit CSCRIPT auf.

C:\>cscript z:\CheckEXObjects.3.6.vbs

Das Script stellt sicher, dass es nicht doch mit einem Doppelklick aus dem Explorer gestartet wird.

Ausgabe

Die Ausgabe von CheckExObjects erfolgt zur Kurzinformation auf dem Bildschirm. Damit wird der Fortschritt ersichtlich. Im Script selbst kann das Debugging über folgende Zeile konfiguriert werden:

objDebug.target = "file:6 console:2" ' errorlogging 0=only output, 1=Error 2=Warning 3=information 5++ =debug

Je höher die Nummer, desto ausführlicher die Ausgabe. Vermeiden Sie z.B. die Ausgabe ins Eventlog mit der Stufe 6, da ds den Server nicht nur langsamer macht, sondern da Eventlog sehr schnell voll sein dürfte.

Die eigentliche Ausgabe erfolgt im aktuellen Verzeichnis.

Der Inhalt der XML-Datei kann ab Version 3.0 über folgende Zeile konfiguriert werden:

const OUTPUTSELECTION = "ERROR WARN OK UNKNOWN" ' Mögliche Einträge: ERROR WARN OK

Wenn Sie hier z.B. "OK" entfernen, dann werden nur noch Fehler, Warnungen und Unbekannte Objekte in der XML-Datei ausgegeben. Das ist besonders hilfreich, wenn die Organisation sehr groß ist. bei 100.000 Objekten kommt sonst schon mal eine mehrere Megabyte große XML-Datei zusammen, die kaum noch mit dem Internet Explorer, Excel oder anderen Tools verarbeitet werden kann. Für die Fehlersuche benötigen Sie nicht die fehlerfreien Objekte.

Ich bin natürlich nicht sicher, ob mein Skript entsprechend fehlerfrei ist. Allerdings finden bis auf die Ausgabe in Dateien keine Schreibzugriffe statt. Für die Funktion ist ein Benutzer erforderlich, der im Active Directory "lesen" kann. Das kann eigentlich jeder Domänenbenutzer ohne weitere Berechtigungen.

ACHTUNG
Diese umfangreiche Analyse belastet den angesprochenen globalen Katalog sehr stark!

Download

checkexobjects.3.6.vbs.txt
Bitte nach dem Download die Erweiterung .TXT entfernen und mit CSCRIPT aufrufen.

In meinen Testumgebungen und bei Kunden hat dieses Script bislang problemlos funktioniert. Trotzdem kann es sein, dass das Script unerwartet abbricht. Dies liegt oft an Sonderzeichen oder Inhalten im AD, die ich noch nicht abgefangen habe. Bitte setzen Sie dann das Debugging auf 6 und senden Sie mir die letzten Zeilen der Protokolldatei und die Zeilennummer des Fehlers des Scripting Hosts. -> Kontakt

Exchange 2000

Geplante Weiterentwicklung:

Die Tests sind ein Ergebnis vom "Suchen im System". Erweiterungen sind denkbar, z.B.:

Sie sehen, dass noch einige zusätzliche Tests möglich sind.

Weitere Links

Keywords:VBScript Code CheckExObjects Tools QBDG QBSG