Mit Visual Basic Script kann man sehr vieles anstellen, aber in diesem Artikel beschäftige ich mich mit dem Auslesen und Ausgabe in eine Textdatei der Computerinformationen. Meine Anwendung des Skripts ist für DELL Computer in einem Netzwerk.
Das Skript beschränkt sich auf folgende Informationen:
- Computername
- BIOS Seriennummer
- Service-Tag
- RAM-Größe
- Computermodell
- Benutzername (Aktuell angemeldeter Benutzer)
Natürlich können noch viele weitere Informationen ausgelesen und auch ausgegeben werden, das kann jeder für sich entscheiden und auch anpassen. Mit dem WMI Code Creator von Microsoft kann man sich wunderbar alle WMI-Classen und Typen anzeigen lassen. Eine Skriptausgabe in VBS, VB.Net und C# ist u.a. auch möglich.
Falls Ihr weitere Hilfe hierzu benötigen solltet, meldet euch ruhig bei mir. Dieses VBS-Skript kann geändert und auch weitergegeben werden.
' ***************************************************
'
' VBScript erstellt von Lukas Prelovsky
' Blog: http://lukas.prelovsky.de
' © 2011 - Lukas Prelovsky
'
' Author: Lukas Prelovsky
' Erstellungsatum: 16.02.2011
' Letztes Änderungsdatum: 17.02.2011
' Version: 0.3
'
' Dieses Skript liest bestimmte Computerinformationen
' aus und gibt diese in einer Textdatei aus.
'
' ***************************************************
Option Explicit
On Error Resume Next
Dim strComputer
Dim objItem, colItems
Dim objWMIService
Dim FSO 'File System Object
Dim InfoDatei
Dim Pfad
Dim Verbindungsstatus 'Status der Netzwerkkarte
Dim PCInfo_Name 'Computername
Dim PCInfo_BIOS_SN 'BIOS Seriennummer
Dim PCInfo_RAM 'Vorhandener RAM
Dim PCInfo_Modell 'Computermodell
Dim PCInfo_ServiceTag 'Service-Tag (DELL Hardware)
Dim PCInfo_Benutzer 'Benutzername des aktuellen Benutzers
strComputer = "." 'Der lokale Computer wird verwendet
Pfad = "" 'Pfad zum Speichern der Informationsdateien
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkConnection",,48)
For Each objItem in colItems
Verbindungsstatus = objItem.ConnectionState
Next
'Überprüfung, ob eine Netzwerkverbindung besteht:
'Falls keine Netzwerkverbindung besteht wird das Skript beendet. Diese Abfragewird nur benötigt,
'wenn die Informationsdatei auf ein Netzwerklaufwerk (UNC-Pfad) geschrieben werden soll.
'Wenn der Speicherort lokal sein soll, dann können diese 3 Zeilen auskommentiert werden.
If Not Verbindungsstatus = "Connected" Then
WScript.Quit
End If
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem",,48)
For Each objItem in colItems
PCInfo_Name = objItem.Name
PCInfo_Benutzer = objItem.UserName
PCInfo_RAM = objItem.TotalPhysicalMemory
Next
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_BIOS",,48)
For Each objItem in colItems
PCInfo_BIOS_SN = objItem.SerialNumber
Next
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystemProduct",,48)
For Each objItem in colItems
PCInfo_Modell = objItem.Name
PCInfo_ServiceTag = objItem.IdentifyingNumber
Next
Dim RAM
Dim Datei
RAM = Round(PCInfo_RAM / 1024 / 1024) 'Aufrunden und Umrechnen des Arbeitsspeichers
Datei = PCInfo_Name & ".txt" 'Definition des Dateinamens, bestehend aus <PCInfo_Name>.txt
Set InfoDatei = FSO.CreateTextFile(Pfad & Datei, True) 'Datei erstellen, falls bereits vorhanden, wird diese überschrieben
InfoDatei.WriteLine("Computerinformationen erstellt am " & Date & " um " & Time & " Uhr") 'Informationszeile mit Datum- und Uhrzeitangabe
If CStr(Err.Number) <> 0 Then 'Überprüfen, ob beim Schreiben der Datei evtl. Fehler entstehen. Falls ja, wird das Skript beendet
WScript.Echo "Fehler beim Schreiben der Datei!"
WScript.Quit
Else
InfoDatei.WriteLine("------------------------------------------------------------")
InfoDatei.WriteLine("Name: " & vbTab & vbTab & vbTab & PCInfo_Name) 'Ausgabe Computername
InfoDatei.WriteLine("Benutzer: " & vbTab & vbTab & PCInfo_Benutzer) 'Ausghabe Benutzername
InfoDatei.WriteLine("Modell: " & vbTab & vbTab & PCInfo_Modell) 'Ausgabe Computermodell
InfoDatei.WriteLine("BIOS-Seriennummer: " & vbTab & PCInfo_BIOS_SN) 'Ausgabe BIOS Seriennummer
InfoDatei.WriteLine("Service Tag: " & vbTab & vbTab & PCInfo_ServiceTag) 'Ausgabe Service-Tag (DELL Hardware)
InfoDatei.WriteLine("RAM: " & vbTab & vbTab & vbTab & RAM & " MB") 'Ausgabe Arbeitsspeicher
InfoDatei.Close
End If