feedback www.dieseyer.de • 
dieseyer.de

WSH - Inventar - Projekt

Neu in der Version v2.9 vom 10.09.2002:
Von der ursprünglichen Idee abweichend, die Inventarisierung per LoginSkript durchzuführen, kann man die Daten jetzt per Diskette oder CD sammeln. Dazu müssen die Dateien aus inv-29CD nur auf den Datenträger kopiert werden. Näheres gibt es am Seitenende.

Lösung:
Also habe ich zwei Skripte (inventar.VBS und SWinventar.VBS) geschrieben, mit denen sich die wesentlichen Angaben ermitteln lassen. Als Hilfe-Datei lässt sich diese Datei verwenden: dse-wsh-inventar29.html. Außer den Skripten sind zwei Programme (Regobj.dll und SysID.exe ) erforderlich, die von 'Unabhängigen' kommen:

    SysID.exe von http://www.sysid.subnet.dk
    RegObj.dll von http://msdn.microsoft.com/vbasic/downloads/addins.asp

Leider wird das Programm SysID.exe nicht weiter gepflegt, so dass nur ältere Prozessoren korrekt angezeigt werden - für die neueren CPU's werden nur die CPU-ID's oder -Flags angezeigt. Oder, wenn jemand ein Programm kennt, das als Nachfolger in Frage kommt, möge er mir das bitte mitteilen.

Anwendung:
Im LoginScript wird der Aufruf von inventar.VBS eingetragen, damit alle PC's irgendwann mal dran sind und gelistet werden. Dazu am Besten mit den letzten Zeilen im LoginScript in das Laufwerk bzw. den Pfad wechseln und das Skript starten:
    f:
    cd \temp
    wscript f:\temp\inventar.vbs
Ab Internet Explorer 5 ist wscript.exe (Windows Script Engine) immer verfügbar. Im Verzeichnis f:\temp wird f:\temp\#inventar\ angelegt, in dem für jeden geprüften PC ein Verzeichnis #PCNAME erstellt wird. Durch den Aufruf im LoginScript ist es eine Frage der Zeit, bis von jedem PC die ersten Info's in den Verzeichnissen vorliegen.

inventar.VBS ermittelt die IP- und damit die Netzwerkkonfiguration mittels IPCONFIG bzw. WINIPCFG. RAM- und CPU-Info's stellt SysID.exe zur Verfügung (siehe #PCNAME-SysID.TXT). Das wird alles in (f:\temp) .\#inventar\#PCNAME\#PCNAME.TXT gespeichert.

Läuft auf dem getesteten PC Win9x/ME, wird anschließend sofort die Liste der installierten Software in (f:\temp) .\#inventar\#PCNAME\#PCNAME-SW.TXT gespeichert. Für PC's mit WinNT/2k muss gelegentlich SWinventar.VBS von einem User mit netzwerkweiten Administrator-Rechten gestartet werden (von einem PC oder Server mit WinNT/2k/XP; Win9x/ME dürfte nicht gehen).

Hintergrund: Zum Auslesen der Registry benutzt SWinventar.VBS die Regobj.dll von MS. Mit Regobj.dll läßt sich nicht nur die Registry des eigenen PC's auslesen, sondern auch die von entfernten (remote) PC's. Dazu muss die Regobj.dll auf dem PC installiert/registriert werden. Der Zugriff der Registry auf remote PC's setzt in der Regel Administrator-Rechte voraus. Deshalb muss man sich auf einem PC mit netzwerkweiten Administrator-Rechten anmelden um SWinventar.VBS zu starten. Damit werden dann die Registry-Werte von den remote PC's ausgelesen.

SWinventar.VBS ermittelt an Hand der vorhandenen #PCNAME.TXT - Dateien, welche PC's im Netz eingeloggt waren. Gibt es die #PCNAME-SW.TXT. noch nicht, wird sie erstellt und mit Daten gefült. Gibt es diese Datei schon, was bei Win9x/ME-PC's und bei bereits geprüften WinNT/2k-PC's der Fall sein sollte, wird die erneut Prüfung übersprungen.

Zunächst versucht SWinventar.VBS, jeden PC per PING zu erreichen. Von den PC's, die antworten, wird ein Teil der Registry ausgelesen und in die Datei #PCNAME-SW.TXT abgespeichert.

Um alle PC's zu erreichen sollte SWinventar.VBS automatisch und regelmäßig (alle 30min?) gestartet werden. Unter Win2k-Servern und -Arbeitsstationen war dies über 'geplante Tasks' erfolgreich zu realisieren.

Jeder Aufruf von inventar.VBS und SWinventar.VBS wird in (f:\temp) .\#inventar\inventar.log protokolliert.

Inventar.VBS & SWinventar.VBS von CD starten:
inventar.VBS und SWinventar.VBS könne jetzt auch von Diskette oder CD gestartet werden. Es folgt dann eine Abfrage, wo die Daten gespeichert werden sollen: ob auf Diskette, Netzlaufwerk oder einen lokalen Datenträger.
Will man die Autostartfunktion beim Einlegen einer CD nutzen, müssen noch einige Dateien zusätzlich kopiert werden. Alle Dateien befinden sich in inv-29CD. Die vollständige Dateiliste sieht so aus:
    Autorun.inf startet Shelexec.exe, das CDStart.VBS startet.
    Shelexec.exe ist in Shelexec.zip von naughter.com enthalten und startet die CDStart.VBS.
    CDstart.VBS startet inventar.VBS & SWinventar.VBS mit dem Parameter A:
    inventar.VBS wertet u.a. SysID.exe aus und benutzt bei Win9x RegObj.DLL.
    swinventar.VBS benutzt bei RegObj.DLL.
    Sysid.exe
    Regobj.dll

Offene Probleme: Um die HardWare eines PC's besser auslesen zu können, wäre es SCHÖN, die PnP-Routine der HardWare-Erkennung auszubeuten. Wenn dazu jemand eine Idee hat, würde ich mich über eine eMail mit Tips freuen!



© 2002 by Dietmar Seyer • all rights reserved • dieseyer@gmx.de