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

Frage Entwicklung VB for Applications

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, 18049 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
Dateierweiterungen in eine Textdatei schreiben
gelöst Frage von joe65Batch & Shell3 Kommentare

Hallo, ich hab nach längerer Zeit wieder mal ein Batch-Problem. Ich möchte alle Dateierweiterungen (txt, docx, jpg, etc.) die ...

Neue Wissensbeiträge
CPU, RAM, Mainboards

Meltdown und Spectre: Intel zieht Microcode-Updates für Prozessoren zurück

Information von keine-ahnung vor 2 StundenCPU, RAM, Mainboards1 Kommentar

Moin, extrem lutztig. Nur gut, dass ich noch nicht beim Probanden-Bingo mitgemacht habe :-) LG, Thomas

Router & Routing

PfSense als Addon auf QNAP

Information von magicteddy vor 16 StundenRouter & Routing3 Kommentare

Moin, für Spielereien eine ganz nette Idee aber ich fürchte das soetwas auch als echte Firewall genutzt wird: In ...

Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 22 StundenDatenschutz1 Kommentar

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Microsoft

Letzte Updates für Win10 und Server2016 müssen bei Bedarf über den Update catalogue in den WSUS importiert werden!

Tipp von DerWoWusste vor 1 TagMicrosoft1 Kommentar

automatisch kommt da nichts an im WSUS und auch nicht im SCCM. Siehe Hinweise zum Bezug der jeweils neuesten ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement25 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Server
TEMP-Profile
Frage von Forseti2003Windows Server17 Kommentare

Guten Morgen, wer kennt sie nicht, die lieben Temporären Benutzerprofile, vorallem immer dann, wenn man sie am wenigsten braucht. ...

Multimedia & Zubehör
Welches Tablet für die Verkäufer?
Frage von Hendrik2586Multimedia & Zubehör14 Kommentare

Guten Morgen meine Lieben, vielleicht könnt ihr mir ja helfen. Es geht um unsere Außendienstmitarbeiter /Verkäufer. Sie sollen demnächst ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...