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!