Computerinformationen mittels Visual Basic Script auslesen und speichern

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

Druckwarteschlange per Visual Basic Script starten und stoppen

Diese paar Zeilen Quellcode zeigen, wie man die Windows Druckwarteschlange (Windows-Dienst: Print Spooler) per Visual Basic Script starten und auch stoppen kann. In diesem Code wird nach dem Stop oder dem Start eine Meldung in einer MessageBox erscheinen, welche angibt, ob die Druckwarteschlange gestartet, oder beendet wurde.

1. Druckwarteschlange stoppen

Set objShell = CreateObject("WScript.Shell")

objShell.Run "net stop spooler", 0, True
MsgBox "Druckwarteschlange wurde beendet."

2. Druckwarteschlange starten

Set objShell = CreateObject("WScript.Shell")

objShell.Run "net start spooler", 0, True
MsgBox "Druckwarteschlange wurde gestartet."