blowdow
Goto Top

Angeschlossene Bildschirm-Seriennummern per WMI herausfinden

Guten Tag allerseits

Über die Suche habe ich leider nichts gefunden, wie auch mit Dr. google nicht das passende.

Über das Netzwerk möchte ich gerne die Seriennummer des Bildschirmes (1 oder 2 BS) herausfinden. Ich habe gelesen, dies sollte am besten mit WMI gehen. Gefunden habe ich den WMI-Befehl:

wmic path Win32_MonitorDetails

Heraus kommt bei mir lediglich:

Node - CPName
ERROR:
Description = Invalid class


Müsste ich denn zuvor diese "class" irgendwie installieren oder aktivieren?

Oder, wenn nicht per WMI, gäbe es eine andere einfache Abfrage für die Seriennummer der angehängten Bildschirme? VBS? Batch?

Ich danke euch und Gruss
blowdow

Content-ID: 244938

Url: https://administrator.de/forum/angeschlossene-bildschirm-seriennummern-per-wmi-herausfinden-244938.html

Ausgedruckt am: 25.12.2024 um 05:12 Uhr

colinardo
Lösung colinardo 29.07.2014 aktualisiert um 12:24:44 Uhr
Goto Top
Hallo blowdow,
im Namespace root\wmi findest du die gewünschten Informationen in der Klasse WMIMonitorID. Die Seriennummer besteht dort aus einem Array von ASCII Werten die in Char umgewandelt die Seriennummer ergeben:
gwmi WmiMonitorID -Namespace root\wmi | %{($_.SerialNumberID -ne $null | %{[char]$_}) -join ""}
liest die Seriennummern von allen angeschlossenen Monitoren aus (Powershell).

Grüße Uwe
blowdow
blowdow 29.07.2014 um 12:14:51 Uhr
Goto Top
Hallo Uwe

Danke für deine Antwort.

Ich komme leider nicht ganz weiter. Denn, wenn ich deinen Befehl in einer CMD/DOS-Box eingebe, so kommt die Meldung:

'gwmi' is not recognized as an internal or external command,
operable program or batch file.

Gebe ich den Befehl in einem "wmic" ein, so kommt die Meldung:

gwmi - Alias not found.
wmic:root\cli>
colinardo
Lösung colinardo 29.07.2014 aktualisiert um 12:44:03 Uhr
Goto Top
Das ist ja auch ein Powershell Befehl face-wink

Wen du es mit wmic auf einer normalen Konsole machen willst lautet der Befehl:
wmic /Namespace:\\root\wmi Path WmiMonitorID get SerialNumberID
Wie oben bereits geschrieben ist die Ausgabe ein Array aus ASCII-Dezimalwerten die, umgewandelt die Seriennummer bilden. Ein Batch-Script für die Umwandlung von ASCII Werten in Zeichen gibt es hier.
blowdow
blowdow 29.07.2014 um 13:55:18 Uhr
Goto Top
Nun hat dein Befehl super funktioniert. Dankeschön!

Unter deinem Link gibt es für mich zu viele verschiedene Codes und Code-Teile usw. Blicke da leider nicht ganz durch... Braucht es für die Umwandlung denn tatsächlich ein Script, welches über 200 Zeilen lang ist?
colinardo
colinardo 29.07.2014 aktualisiert um 14:08:15 Uhr
Goto Top
Zitat von @blowdow:

Unter deinem Link gibt es für mich zu viele verschiedene Codes und Code-Teile usw. Blicke da leider nicht ganz durch...
Braucht es für die Umwandlung denn tatsächlich ein Script, welches über 200 Zeilen lang ist?
entweder das Script, oder du nutzt eine externe exe die das erledigt. Oder ein VBS das du in dein Batch-Script integrierst.

Deswegen habe ich ja ein Powershell-Script gepostet, das macht das schon automatisch, und das ihr Batchies langsam mal umsteigt face-wink ich arbeite ja heute auch nicht mehr mit Win 3.1 face-smile
colinardo
colinardo 29.07.2014 aktualisiert um 14:32:00 Uhr
Goto Top
Zitat von @blowdow:
Braucht es für die Umwandlung denn tatsächlich ein Script, welches über 200 Zeilen lang ist?
nicht unbedingt, wenn du es mit einem temporärem VBS innerhalb der Batch machst:
@echo off &setlocal
set "tempvbs=%temp%\chr.vbs"  

:: VBS Erzeugen
echo arrInput = Split(Replace(Replace(Replace(WScript.Arguments(0),"{",""),"}","")," ",""),",",-1,1)>"%tempvbs%"  
echo For i = 0 To UBound(arrInput)>>"%tempvbs%"  
echo strOut = strOut ^& Chr(arrInput(i))>>"%tempvbs%"  
echo Next>>"%tempvbs%"  
echo WScript.Echo strOut>>"%tempvbs%"  
:: -------------------------------

:: Seriennummer-Array exxtrahieren und an das VBS verfüttern, die Ausgabe ist dann die Seriennnummer
for /f "tokens=2 delims==" %%a in ('wmic /Namespace:\\root\wmi Path WmiMonitorID get SerialNumberID /format:list ^| findstr /b SerialNumberID') DO @(  
 	cscript //NOLOGO "%tempvbs%" "%%a"  
)
Grüße Uwe
blowdow
blowdow 07.08.2014 um 08:29:06 Uhr
Goto Top
Hi Uwe

Ich melde mich dann schon noch, bin bisher einfach noch nicht dazu gekommen alles zu testen. Dies nur als Info face-smile

MFG