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
Ü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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 244938
Url: https://administrator.de/contentid/244938
Ausgedruckt am: 23.11.2024 um 00:11 Uhr
7 Kommentare
Neuester Kommentar
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:
liest die Seriennummern von allen angeschlossenen Monitoren aus (Powershell).
Grüße Uwe
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 ""}
Grüße Uwe
Das ist ja auch ein Powershell Befehl
Wen du es mit wmic auf einer normalen Konsole machen willst lautet der Befehl:
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.
Wen du es mit wmic auf einer normalen Konsole machen willst lautet der Befehl:
wmic /Namespace:\\root\wmi Path WmiMonitorID get SerialNumberID
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.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?
Deswegen habe ich ja ein Powershell-Script gepostet, das macht das schon automatisch, und das ihr Batchies langsam mal umsteigt ich arbeite ja heute auch nicht mehr mit Win 3.1
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:Braucht es für die Umwandlung denn tatsächlich ein Script, welches über 200 Zeilen lang ist?
@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"
)