Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Hardware per WMI mit VB Script auslesen und in Textdatei schreiben

Mitglied: johnsch

johnsch (Level 1) - Jetzt verbinden

07.12.2008, aktualisiert 08.12.2008, 18149 Aufrufe, 7 Kommentare

Hallo,
ich bin kein VB Script Freak aber mit cmd kann ich leider nicht das realisieren was ich brauche.
ich möchte per VB Script bestimmte Hardware und Angaben des Rechners auslesen und in eine Textdatei schreiben.
z. Bsp. BIOS serial Nummer, Grafikkarte, wieviel Arbeitsspeicher und welche RAM module, die Netzwerkkarten inklusive Bluetooth und die MAC Adressen.

Als Anregung habe ich mir das WMI Script von der PC Welt heruntergeladen, das war recht einfach gehalten.
Leider passt meine Denkweise nicht.


Mein VB Code funktioniert nicht so wie ich es mir vorstellen würde:

on error resume next
set wmi = GetObject("winmgmts:")

WScript.Echo wmi.ExecQuery('select * from win32_BIOS')

habe auch schon andere Möglichkeiten probiert:

on error resume next
set wmi = GetObject("winmgmts:")
erg = "select * from win32_BIOS"
set ergebnis = wmi.ExecQuery(erg)

WScript.Echo wmi.ExecQuery(ergebnis)

wo liegt mein Denkfehler?

und gleich noch ne Frage, wie kann ich die WMI Abfrage so anpassen das nicht alle Werte zum Query ausgegeben werden sonder nur bestimmte,
z. Bsp. beim BIOS nur die SerialNumber ?
Mitglied: dog
07.12.2008 um 23:15 Uhr
01.
' WMI Provider - SWbemServices 
02.
Set wmi = GetObject("winmgmts:\\.\root\cimv2") 
03.
'SWbemObjectSet 
04.
set biosSet = wmi.ExecQuery("SELECT * FROM Win32_BIOS") 
05.
'SWbemObject 
06.
Set biosInfo = biosSet.ItemIndex(0) 
07.
' String 
08.
Msgbox biosInfo.SerialNumber
Grüße

Max
Bitte warten ..
Mitglied: bastla
07.12.2008 um 23:24 Uhr
Hallo johnsch und willkommen im Forum!

Das Ergebnis der Abfrage erhältst Du generell in Form einer Aufzählung.

Mit dem WMI Code Creator kannst Du ein entsprechendes Script erzeugen lassen - etwas gekürzt sähe das etwa so aus:
01.
strComputer = "."  
02.
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")  
03.
Set colItems = objWMIService.ExecQuery( _ 
04.
    "SELECT * FROM Win32_BIOS")  
05.
For Each objItem in colItems  
06.
    Wscript.Echo "SerialNumber: " & objItem.SerialNumber 
07.
Next
Grüße
bastla
Bitte warten ..
Mitglied: johnsch
08.12.2008 um 16:52 Uhr
hallo, danke f. die antworten.
der tipp mit dem wmi code creator war sehr hilfreich.

so geht es:

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_BIOS",,48)
For Each objItem in colItems
Wscript.Echo "SerialNumber: " & objItem.SerialNumber
Next

aber jetzt frag ich mich, muss man das mit einer For Each schleife auslesen oder kann man das Item SerialNumber nicht direkt ansprechen?

Und was bedeutet die 48 in
objWMIService.ExecQuery( _
"SELECT * FROM Win32_BIOS",,48)

gruss john
Bitte warten ..
Mitglied: bastla
08.12.2008 um 17:21 Uhr
Hallo johnsch!

So geht es:
Freut mich, dass wir einigermaßen übereinstimmende Scripts erhalten haben (allerdings ist meines schöner formatiert ) ...

muss man das mit einer For Each schleife auslesen oder kann man das Item SerialNumber nicht direkt ansprechen?
Ja
colItems(0).SerialNumber
scheitert bei mir mit "SWbemObjectSet: Allgemeiner Fehler" - warum, kann ich Dir leider (auch mit Hilfe von Accessing a Collection) nicht beantworten.

Und was bedeutet die 48 ...
http://msdn.microsoft.com/en-us/library/aa393866(VS.85).aspx

Grüße
bastla
Bitte warten ..
Mitglied: johnsch
08.12.2008 um 17:41 Uhr
hi, bin gerade am bastlen und wieder auf das nächste problem gestossen.

Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_NetworkAdapter",,48)
For Each objItem in colItems
Wscript.Echo "Description: " & objItem.Description
Next

Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_NetworkAdapter",,48)

For Each objItem in colItems
Wscript.Echo "MACAddress: " & objItem.MACAddress
Next

hiermit lasse ich mir die netzwerkkarten auflisten und dann die mac adressen.
wie bekomme ich die MAC adressen zu der dazugehörigen netzwerkkarte?
sonst hab ich nur eine liste mit netzwerkkarten, wobei hier auch die ganzen WAN Miniport und Virtual Machine Network Services Driver usw. mit aufgelistet werden. und darunter alle mac adressen, da man dann manuell der richtigen netzwerkkarte zuweisen müsste.

das wäre auch für andere angaben hilfreich, z. bsp. wenn man die festplatten mit der entsprechenden größe auflistet. so hat man immer 2 listen, die man dann verhackstücken muss.

gruss john
Bitte warten ..
Mitglied: bastla
08.12.2008, aktualisiert 24.07.2012
Hallo johnsch!

Einfach alles in einer Schleife abhandeln (sind ja jeweils nur unterschiedliche Eigenschaften des gerade aktuellen Objektes):
01.
For Each objItem in colItems 
02.
    Wscript.Echo "Description: " & objItem.Description 
03.
    Wscript.Echo "MACAddress: " & objItem.MACAddress 
04.
Next
Grüße
bastla
Bitte warten ..
Mitglied: johnsch
08.12.2008 um 17:55 Uhr
ja super, da hätte ich auch selber drauf kommen können.
danke
gruss john
Bitte warten ..
Ähnliche Inhalte
Entwicklung

Silent VB Script Hardware Inventarisierung

Frage von Silent08Entwicklung3 Kommentare

Huhu Leute ;) Suche ein VB Script zur Inventarisierung der Hardware im Netzwerk, welches auf dem Clients in SIlent ...

Entwicklung

VB Script gesucht um Videodateien auslesen zu können.

gelöst Frage von templierEntwicklung7 Kommentare

Hallo zusammen, ich habe einen Kunden der auf seinem SAN hunderte von Präsentationsvideos angesammelt hat. Diese sollen nun in ...

VB for Applications

VB-Script in VB-Script starten und Parameter übergeben

gelöst Frage von denkisVB for Applications7 Kommentare

Hallo liebe Scriptgemeinde, ich muss mehrere Rechner für den Übergang in eine neue Domäne vorbereiten. Dafür sind drei wesentliche ...

Batch & Shell

Einen Pfeil in eine textdatei mit batch Schreiben

gelöst Frage von johannes0073Batch & Shell2 Kommentare

Ich stehe vor dem Problehm das ich mit batch datei 1 batch datei 2 Schreiben will das proplehm ist ...

Neue Wissensbeiträge
Windows 7

Windows 7 - Server 2008 R2: Exploit für Total Meltdown verfügbar

Information von kgborn vor 13 StundenWindows 7

Kleine Information für Administratoren, die für die Updates von Windows 7 SP1 und Windows Server 2008 R2 SP1 verantwortlich ...

Sicherheit

Zero Day-Schwachstelle im Internet Explorer - wird von APT bereits ausgenutzt

Information von kgborn vor 23 StundenSicherheit

Im Kernel des Internet Explorer scheint es eine Zero Day-Lücke zu geben, die von staatlichen Akteuren (APT) im Rahmen ...

Microsoft
Folder Security Viewer-Lizenzen zu gewinnen
Information von kgborn vor 23 StundenMicrosoft

Ich nehme das Thema mal in Absprache mit Frank hier auf, da es für den einen oder anderen Administrator ...

Hardware

Feueralarm killt Festplatten in Rechenzentrum - führt zu größerem Ausfall

Information von kgborn vor 1 TagHardware12 Kommentare

Noch ein kleiner Beitrag für Administratoren, die in Rechenzentren aktiv sind - so als Fingerzeig. Denn es gibt Szenarien, ...

Heiß diskutierte Inhalte
Linux
Linux Server oder Windows Server - lohnt eine Umstellung auf Linux und ebenso basierende SW bei einer langfristigen Planung?
Frage von motus5Linux25 Kommentare

Wir brauchen bei uns einen neuen Server. Dieser wird als Fileserver, Domäne Controller sowie Exchange Server verwendet. Wir versuchen ...

DSL, VDSL
ISP Wechsel auf Vodefone Koax, Gebäudeverkabelung nur per Cat 7
gelöst Frage von wusa88DSL, VDSL18 Kommentare

Hallo Zusammen, ich bin momentan bei Mnet als Glasfaser Kunde und möchte Preis/Leistungs-Technisch zu Kabel Deutschland / Vodafone wechseln. ...

Windows Server
Domänencontroller trennen
Frage von Akit57Windows Server14 Kommentare

Hallo, ich hoffe das mir hier jemand meine Frage trotz der spärlichen Informationen die ich geben kann beantworten kann: ...

Peripheriegeräte
Bild über Netzwerk an Monitor
Frage von Ghost108Peripheriegeräte12 Kommentare

Hallo zusammen, ich möchte gerne folgendes realisieren: Ich habe 4 virtuelle Maschinen (Windows 7). Gerne möchte ich jetzt in ...