Bildschirm / Monitor Seriennummer auslesen mit PowerShell
Um die Seriennummer von angeschlossenen Monitoren auszulesen, muss man sich nicht unbedingt über den Tisch beugen. Um Informationen zum Monitor zu bekommen hilft Windows PowerShell.
Clker-Free-Vector-Images / Pixabay
Vor allem auch, wenn man automatisiert alle Monitore, beziehungsweise Bildschirme im Netzwerk mit den Seriennummern inventarisieren will, ist der folgende PowerShell Befehl sehr von nutzen. Steuern kann man dies per PsExec oder per Logon Sript als Gruppenrichtlinie. Der Befehl gibt natürlich (wenn mehrere Monitore angeschlossen sind) die Seriennummern von beiden Bildschirmen aus, oder auch von noch mehr Bildschirmen. Auch bei drei oder mehreren Monitoren ist das kein Problem.
Um zu Starten müsst ihr lediglich die PowerShell GUI, bzw. Befehlszeile starten, und den nachfolgenden Befehl eingeben.
Seriennummer des Monitors mit PowerShell auslesen
Im Grunde ist dies ein einfacher PowerShell Befehl unter Windows, welcher alle nützlichen Informationen zum angeschlossenen Bildschirm liefert. In der Regel sind folgende Informationen zum Bildschirm relevant:
- Hersteller
- Seriennummer
Aber nun zum eigentlichen Befehl. Wie bekommt man nun die Infos zum Monitor?
- PowerShell starten
- Befehl ausführen
- Seriennummer wird aufgelistet
get-wmiobject wmimonitorid -namespace root\wmi|foreach-object{($_.SerialnumberID|foreach-object{[char]$_}) -join ""}
Ich hoffe wir konnten euch weiterhelfen, damit ihr alle Details zur Bildausgabe-Hardware bekommt, am Besten sogar automatisiert.
Es sind zwei Monitore angeschlossen und es wird eine Nummer, nur aus Zahlen bestehend, ausgeworfen. Kein Modellname/-nummer, keine Auflösung, kein Herstellername.
Guten Morgen @thor42,
Hast du genau meinen PowerShell Code ausgeführt?
Bei mir werden die Modell-Nummern ausgegeben.
Gruß Johannes
wie kann man dann beide Seriennummern in die zwischenablage kopieren ? Mit dem Befehl |Clip kopiert er nur die 1. Seriennummer.
Gruß
Alex
Hallo Alexander,
am Besten schreibst du dein Ergebnis in eine Variable und lässt dann dieses mit einer Schleife in deine Zwischenablage “anhängen” mit
-append
.Das sollte dann so aussehen:
$result = get-wmiobject wmimonitorid -namespace rootwmi|foreach-object{($_.SerialnumberID|foreach-object{[char]$_}) -join ""}
foreach($monitor in $result){
Set-Clipboard $monitor -Append}
Gruß Johannes
Mit diesem Befehl bekommt man alle Informationen zu den Monitoren:
get-wmiobject wmimonitorid -namespace root\wmi
So klappt’s:
$A = Invoke-Command -Computername XXX -ScriptBlock {GWMI -Query "Select * FROM WMIMonitorID" -Namespace RootWMI}
$A | % {$_.UserFriendlyName = ($_.UserFriendlyName -ne $null | % {if ($_ -ne 0) {[char]$_}}) -join "";
$_.SerialNumberID = ($_.SerialNumberID -ne $null | % {if ($_ -ne 0) {[char]$_}}) -join ""}