SYDI - Script Your Documentation Instantly

Sie können sich sicher vorstellen, dass ich eher mehr als wenig dokumentiere. Aber natürlich macht es mir auch keinen Spaß, stupide Serverdaten zu erfassen und in toten Work-Dokumenten abzulegen, die wenige Tage später schon nicht mehr stimmen. Um einen Überblick über ein LAN zu bekommen, habe ich schon länger das Skript NAWInventory im Einsatz, aber SYDI kann sehr viel nettere Dokumentationen erstellen.

Das Skript "sydi-server.vbs"

Der Kern des Pakets ist ein 178KByte großes VBScript, welches per WMI den angegebenen Server durchsucht, Daten ermittelt und diese entweder als XML oder mittels Word (muss installiert sein) als DOC-Datei ablegt. sydi-server kann auch remote Server abfragen, wen Sie die erforderlichen Rechte haben.

sydi-server wird einfach per CSCRIPT gestartet und fragt nach dem Servernamen (Default = "localhost") und erstellt dann sichtbar ein Work Dokument des lokalen Systems. Interessanter ist natürlich der Aufruf mit Parametern wie:

cscript sydi-server.vbs -tSRV01 -oSRV01.XML -ex

Damit wir der Server "SRV01" (-t = target) analysiert und die Information als XML-Datei (-o = output, -ex = Export XML) abgelegt. Da XML natürlich für Anwender denkbar ungünstig zu lesen ist, kann man im nachhinein mit Tools diese Datei weiter bearbeiten.

  • ss-xml2word.vbs
    Erlaubt die Transformation der XML-Dateien in DOC-Dateien. Das kann auch auf einem anderen Arbeitsplatz geschehen und ist daher ideal, um Server in einer DMZ zu erfassen und dann an anderer Stelle einzubauen. Auch hier kann man mit einer XML-Datei sogar eine Sprache vorgeben.

cscript.exe ss-xml2word.vbs -xSRV01.xml -l.\language\lang_english.xml -oSRV01.DOC

  • sydi-transform.vbs
    Konvertiert die XML-Datei in eine HTML-Datei unter Zuhilfenahme eines XSLT-Stylesheets:

cscript.exe sydi-transform.vbs -xSRV01.XML -sServerhtml.xsl -oSRV01.HTM

Damit stehen einem natürlich alle Wege offen, aus den XML-Dateien sowohl "schöne" Word-Dokumente als auch Webseiten für ein Intranet zu erstellen. 

Empfehlung XML
Auch wenn SYDI direkt mit Word interagieren kann, würde ich immer den Weg einer XML-Ausgabe wählen. Dies kostet weniger Ressourcen und funktioniert auch auf Systemen ohne Word. Zudem kann man die Daten

Deutsch ?
Ja., seit Version 2.1 gibt es auch eine Sprachdatei, damit die Ausgaben "deutsch" sind

Mehrere Server oder ein ganzen LAN erfassen

Mit im Paket gibt es weitere Skripte, die auch eine komplette Verarbeitung von Domänen erlaubt. So ist "sydi-wrapper-awd.vbs" ein Skript, welches aus einer Datei oder direkt per Active Directory die Computerkonten ausliest und dokumentiert. Mit folgendem Aufruf kann man gezielt einen Domaincontroller nutzen. Das ist z.B. erforderlich wenn ihr Forest mehrere Domänen hat.

cscript sydi-wrapper-awd.vbs -a" "SRV01/OU=Servers,DC=msxfaq,DC=de"

Das Skript arbeitet dann alle Computerobjekte ab und erstellt für jedes Objekt eine eigene Dokumentation. Ehe Sie aber dieses Skript starten, müssen Sie im Skript selbst einige Einstellungen vornehmen:

'EXPORTFORMAT="word" ' für Microsoft Word
EXPORTFORMAT="xml" ' für XML

SYDISERVER="C:\scripts\sydi-server.vbs"
OUTPUTDIRECTORY="C:\scripts\Output files\"
LOGDIRECTORY="C:\Scripts\Log Files\"

Die Pfade zum Skript und die Ausgabeverzeichnisse müssen vorhanden und beschreibbar sein. Wer nicht über ein verschachteltes Skript gehen will, kann natürlich auch einfach die Computer in eine Textdatei (server.txt) schreiben und mit einer FOR-Schleife als Batch aufrufen

For /F %%a in (server.txt) do cscript sydi-server.vbs -o%%a.xml -t%%a -ex

Letztlich haben Sie am Ende eine Dokumentation für jeden Server in einem Verzeichnis, welches Sie per IIS auch freigeben können.

Wenn Sie nun jede Menge XML-Dateien für alle Server in einem Verzeichnis gesammelt haben, dann fehlt ihnen nur noch eine Übersichtsseite, welche mit dem Skript "sydi-overview.vbs" erstellt werden kann.

cscript.exe sydi-overview.vbs -xc:\sydi\output

Das Skript liest dann alle XML-Dateien in dem angegebenen Verzeichnis aus um diese über ein lokal installiertes Excel in eine Tabelle aufzunehmen.

Andere Daten (SQL, Exchange; Linux)

Patrick Ogenstad hat noch ein paar andere Tools auf der Basis seines Skripts entwickelt. Wenn man schon per WMI die Daten eines Servers auslesen kann, dann ist es ja auch nicht besonders aufwändig, die Daten einer Exchange Organisation oder SQL-Servers zu ermitteln. Sie können ja sicher ein paar meiner Tools, die auch entsprechende Daten erheben. Nur dass SYDI daraus neben der XML-Datei natürlich auch eine schicke Word Datei erstellen kann. Aktuell gibt es Skripte für:

  • Exchange
    Auch wenn die Daten nicht allzu umfangreich sind, so sind die wichtigen Daten durchaus enthalten. Datenbanken und Speichergruppen sind ebenso vorhanden wie Administrative Berechtigungen, Remote Domänen, Adresslisten, und Empfängeraktualisierungsdienste.
  • SQL
    Das Skript extrahiert alle Datenbanken und  deren Eigenschaften samt Tabellen mit Feldern und "Stored Procedures".
  • Linux
    Die Linux Funktion ist ein Python-Skript, welches auf dem Server

Vielleicht macht Sie eine Musterdokumentation meines virtuellen Servers neugierig, die Skripte in ihrem LAN auszuprobieren

Word 2003: sydi-srv01.doc
Word 2007 sydi-srv01.docx
Beide gepackt sydi-srv01.zip

SYDI erstellt mittels dem aktuellen Word eine DOC-Datei. Interessanter ist natürlich der Export als XML-Datei und die Konvertierung in ein Wiki

Zusammenfassung

SYDI ist kostenfrei und in wenigen Minuten bereit, ihre Server besser und schneller zu dokumentieren, als Sie dies von Hand könnten. Das einzige, was ihnen bleibt, ist die Verbindung der Dokumente mit einem bestehenden Dokumentationssystem und optional eine geplante Ausführung. Sie müssen eigentlich "nur" noch die Konzeptdokumente beisteuern.

Weitere Links