Logo faq-o-matic.net
Logo faq-o-matic.net

Cindy: WMI-Dokuskript für Windows-Rechner

von veröffentlicht am24. Januar 2011, 06:43 Uhr Kurzlink und Zitatlink einblenden
Kategorie Kategorie: Dokumentation, Tools, VBScript, Windows   Translate with Microsoft Translator Translate EN   Die angezeigte Seite drucken
Zuletzt aktualisiert: 15. August 2011

imageDas VBS-Skript Cindy liest per WMI zahlreiche Konfigurationsinformationen von einem Windows-System und gibt sie als übersichtlichen Report aus. Das ist nützlich, um die Rahmendaten eines Servers oder Clients schnell zu Dokumentationszwecken zu erfassen.

Cindy läuft auf allen aktuellen Windows-Plattformen. Getestet wurde es u.a. mit Windows 7 (32 Bit), Windows Server 2008 R2, Windows Server 2008 (64 Bit), Windows Server 2003 (32 Bit) und Windows XP (32 Bit). Es sollte aber auch auf älteren Windows-Versionen laufen, wenn dort WMI nachinstalliert wurde.

In der vorliegenden Fassung erfasst Cindy die wichtigsten Daten zu:

  • Betriebssystem
  • CPU und Arbeitsspeicher
  • Festplatten, Partitionen und logischen Laufwerken
  • Netzwerkkarten und IP-Konfiguration
  • Lokalen Benutzern und Gruppen
  • Freigaben
  • Diensten, installierter Software und Hotfixes

Dabei beschränkt das Skript sich bewusst auf die relevanten Rahmendaten, um den Bericht nicht zu überfrachten. Es ist allerdings leicht, zusätzliche Informationen abzufragen; dazu weiter unten mehr.

Achtung: Wie ich just in einem Artikel von Torsten Meringer las, hat die von Cindy verwendete WMI-Klasse "Win32_Product" einen unschönen Nebeneffekt (um nicht zu sagen: einen ärgerlichen Fehler). Fragt man über sie die installierte Software ab, so führt sie für jedes einzelne Produkt eine MSI-Repatarur aus. Das sorgt nicht nur für eine unnötig lange Ausführungszeit des Skripts, sondern belastet auch das Zielsystem. Im Application-Eventlog des ausgewerteten Systems findet man dann pro Produkt ein Ereignis mit der ID 1035, das auf diesen Vorgang hinweist.

Für eine einmalige Ausführung von Cindy ist das sicher tolerabel. Wer das Skript auf einer größeren Zahl von Rechnern einsetzen oder automatisiert ausführen will, sollte aber prüfen, ob er auf die Produktinformation verzichten kann. In diesem Fall sollte man folgende Zeile löschen oder durch Voranstellen eines Apostroph auskommentieren:

dctWMI.Add "Win32_Product", "InstallDate,InstallLocation,Vendor,Version"

Der folgende KB-Artikel benennt das Problem und schlägt eine Abhilfe vor: http://support.microsoft.com/kb/974524
Leider aber ist die dort empfohlene WMI-Klasse standardmäßig nicht vorhanden, sondern setzt voraus, dass ein SCCM- oder SMS-Client auf dem System installiert ist!

Download

Cindy findet sich hier zum Download. Man entpacke es an geeigneter Stelle.

Download: Cindy.vbs (v 1.4)  Cindy.vbs (v 1.4) (5,1 KiB, 3.154 hits)

Anwendung

Cindy ist ein Kommandozeilen-Skript und gibt seinen Bericht auch auf der Konsole aus. Daher sollte man seine Ausgabe in eine Datei umleiten. Es ist notwendig, das Skript mit “cscript.exe” zu starten. Ein typischer Aufruf sieht so aus:

C:\Pfad>cscript //nologo cindy.vbs > report.txt

Der Schalter //nologo sorgt dafür, dass das Start-Banner des Script Host unterdrückt wird. So landet nur der Report selbst in der Ausgabedatei.

Das Skript benötigt zwischen 30 Sekunden und mehreren Minuten für seine Arbeit. Der obige Aufruf liest die Daten des lokalen Rechners aus. Um einen anderen Computer zu dokumentieren, übergibt man dem Skript einfach dessen Namen:

C:\Pfad>cscript //nologo cindy.vbs DC01 > DC01.txt

Zur lokalen Ausführung reichen Benutzerrechte aus. Für die Remote-Dokumentation können administrative Rechte auf dem Zielsystem erforderlich sein, außerdem darf WMI nicht per Berechtigung oder Firewall eingeschränkt sein.

Erweiterung

Um den Report zu erweitern, kann man sehr einfach zusätzliche WMI-Klassen oder -Eigenschaften hinzufügen. Dazu bearbeitet man im Skriptcode die folgenden Zeilen (hier nur ein Auszug):

dctWMI.Add "Win32_PhysicalMemory", "BankLabel,Capacity"
dctWMI.Add "Win32_DiskDrive", "InterfaceType,Index,Size"
dctWMI.Add "Win32_DiskPartition", "Size"
dctWMI.Add "Win32_LogicalDisk", "Size,FreeSpace"

Um etwa die “Maximum Block Size” für Platten mit aufzunehmen, ergänzt man die Eigenschaft “MaxBlockSize” in der Zeile mit “Win32_DiskDrive”:

dctWMI.Add "Win32_DiskDrive", "InterfaceType,Index,Size,MaxBlockSize"

Will man z.B. Informationen zu den Lüftern mit aufnehmen, fügt man eine komplette Zeile nach diesem Muster in den Block ein:

dctWMI.Add "Win32_Fan", "DesiredSpeed"

Umgekehrt lassen sich Informationen aus dem Bericht entfernen, indem man die zuständige Zeile löscht oder auskommentiert.

Die Eigenschaft “Caption”, die den Namen des jeweiligen Elements enthält, berücksichtigt Cindy immer von selbst. Welche WMI-Objekte und -Eigenschaften zur Verfügung stehen, erfährt man z.B. auf den MSDN-Seiten bei Microsoft oder in vielen anderen Quellen.

Hier eine Code-Erweiterung von Robert Riebisch. Sie verändert zwei vorhandene Zeilen und fügt eine neue hinzu, um ergänzende Daten auszugeben (Laufzeit, Systemtyp, Uptime).

dctWMI.Add "Win32_ComputerSystem", "AutomaticManagedPagefile,AutomaticResetBootOption,Domain,DomainRole,Manufacturer,Model,NumberOfProcessors,NumberOfLogicalProcessors,PrimaryOwnerName,SystemType,TotalPhysicalMemory"
dctWMI.Add "Win32_OperatingSystem", "BootDevice,CodeSet,CountryCode,CurrentTimeZone,InstallDate,LastBootUpTime,OSArchitecture,OSLanguage,ServicePackMajorVersion,ServicePackMinorVersion,SystemDevice,WindowsDirectory"
dctWMI.Add "Win32_BaseBoard", "Manufacturer,Model,Name,Product,SerialNumber,Version"

Code

Wer mag, kann Cindy gern an seinen Bedarf anpassen. Es wäre dann nett, wenn ein Hinweis auf das Originalskript und auf faq-o-matic.net im Code verbleibt.

© 2005-2014 bei faq-o-matic.net. Alle Rechte an den Texten liegen bei deren Autorinnen und Autoren.

Jede Wiederveröffentlichung der Texte oder von Auszügen daraus - egal ob kommerziell oder nicht - bedarf der ausdrücklichen Genehmigung durch die jeweiligen Urheberinnen oder Urheber.

Das Impressum findet sich unter: http://www.faq-o-matic.net/impressum/

Danke, dass du faq-o-matic.net nutzt. Du hast ein einfaches Blog sehr glücklich gemacht!