Die geneigte Administratorin benötigt oft eine Übersicht über die IP-Konfigurationen ihrer Rechner. Neben der reinen Adressliste zählen dazu häufig auch die eingetragenen DNS-Server – etwa dann, wenn ein alter Server durch einen neuen ersetzt und dieser dann bei den Clients eingetragen werden muss. Eine WMI-basierte Skriptlösung kann dabei helfen.
Unser Skript “Bert” verbindet sich per WMI (Windows Management Instrumentation) mit einem Windows-System und liest die wichtigen Eckdaten der IP-Konfiguration aus. Diese zeigt er als separierte Liste auf der Kommandozeile an. Leitet man diese Ausgabe in eine zentrale Datei auf einem Server um, so entsteht eine CSV-Datei, aus der man etwa mit Excel die IP-Konfigurationen direkt verarbeiten kann. Das Skript funktioniert lokal und über das Netzwerk.
Bert. IP-Auswertungsskript (1,4 KiB, 3.985-mal heruntergeladen, letzte Änderung am 7. Dezember 2011)
Syntax und Verwendung
Die Grundsyntax von Bert sieht folgendermaßen aus:
cscript //nologo Bert.vbs [Rechner] /header:[yes|no]
Es handelt sich um ein Konsolenskript, daher muss es mit cscript aufgerufen werden. Der Schalter “//nologo” unterdrückt die Ausgabe der WSH-Informationen, sodass nur die eigentliche Ausgabe des Skripts erscheint. Mit dem Schalter “/header” gibt man an, ob die Spaltenüberschriften in der Ausgabe erscheinen sollen. Lässt man diese nur beim ersten Rechner ausgeben und unterdrückt sie bei allen anderen, so kann man die Ausgabe in einer einzigen Datei sammeln, die dann einmalig mit den Spaltenüberschriften beginnt.
Das Skript erfasst folgende Daten:
- Computername
- Adaptername
- MAC-Adresse
- DHCP-Nutzung
- IP-Adressen
- DNS-Server
Gibt man keinen Rechnernamen an, so wertet Bert die IP-Konfiguration des lokalen Rechners aus. Wenn man einen entfernten Rechner über das Netzwerk auswerten möchte, benötigt man dort Administratorrechte (das ist bei lokaler Ausführung nicht nötig), oder man muss die WMI-Berechtigungen auf dem Remote-System bearbeiten. Außerdem darf keine Firewall die WMI-Schnittstelle blockieren.
Eine zentrale Sammlung der Konfigurationen in der Datei “IP-Daten.txt” in einer Dateifreigabe zeigt folgendes Beispiel:
cscript //nologo C:\Pfad\Bert.vbs DC01 /header:yes > \\SERVER007\IPData$\IP-Daten.txt cscript //nologo C:\Pfad\Bert.vbs EX01 /header:no >> \\SERVER007\IPData$\IP-Daten.txt cscript //nologo C:\Pfad\Bert.vbs SQL01 /header:no >> \\SERVER007\IPData$\IP-Daten.txt
Um die Einschränkungen bei der Remote-Auswertung zu umgehen, kann man Bert auch aus einem Start- oder Logonskript aufrufen. Da normale Anwender die WMI-Schnittstelle lokal aufrufen dürfen, sind hierzu keine besonderen Benutzerrechte nötig. In diesem Fall muss man darauf achten, dass für die Anwender (bei Logonskripts) bzw. für die Computerkonten (bei Startskripts) Schreibrechte auf die Sammel-Datei bestehen.
Um beim Einsatz per Logonskript Schreibkonflikte durch gleichzeitigen Zugriff auf die Zieldatei zu vermeiden, kann man z.B. über folgendes Batch die Daten des lokalen Rechners in jeweils eine eigene Datei schreiben:
@echo off rem Schreibt die IP-Grundkonfiguration des Rechners in eine Textdatei
SET Target=\\SERVER\IPData$\Clients\%computername%.txt SET Bert=\\SERVER\IPData$\Bert.vbs COPY %Bert% "%userprofile%" cscript //nologo "%userprofile%\Bert.vbs" /header:no > %Target% DEL "%userprofile%\Bert.vbs"
Dieses Batch kopiert zunächst die Skriptdatei ins lokale Userprofil, damit es keine Berechtigungsfehler beim Aufruf von einem Share aus gibt. Das Ergebnis der Ausführung landet dann in einer Textdatei auf einer Dateifreigabe, die den Namen des lokalen Rechners trägt. Am ende entfernt das Batch die Skriptdatei wieder vom System.
In der Freigabe liegen dann zahlreiche Dateien – eine pro Rechner. Um sie nachträglich zu einer Datei zusammenzufassen, eignet sich dieses Kommando, das man in einem CMD-Fenster aus dem Ordner ausführt, wo die Dateien liegen:
for /F "usebackq" %i in (`dir /b`) do @type %i | find /i ";" >> "IP-Konfigs Clients.txt"
http://faq-o-matic.net/?p=3633