scroller
Goto Top

Powershell . PC Inventaisierung übers Netz - Monitorinformationen

Hi,

ich möchte WIndows PCs übers netz inventarisieren.
man bekommt ja praktisch alles über WMI nicht jedoch daten zu den Bildschirmen
und das obwohl diese ziemlich detailiert in der Registry liegen.

Allerdings gestaltet sich das auslesen etwas schwiereig.
Deshalb bin ich auf der Suche nach einem Tool das mir die Daten

(Hersteller, Typ, Seriennummer, Herstelldatum)

übers Netz besorgen kann.

Es sollte Freeware und scriptfähig sein.
hat mir jemand einen guten Tip?

Danke!
SC

Content-Key: 155573

Url: https://administrator.de/contentid/155573

Printed on: April 19, 2024 at 15:04 o'clock

Member: O-Marc
O-Marc Nov 23, 2010 at 06:54:28 (UTC)
Goto Top
Mir gefällt Lansweeper ganz gut. Das gibt es in mehreren kostenpflichtigen Versionen, aber ebenso ist eine freie Demoversion ist verfügbar. Mit der kann man viel anstellen.
Member: Scroller
Scroller Nov 23, 2010 at 07:59:28 (UTC)
Goto Top
Hi,

Danke für Deinen Tipp.
habs sofort geteestet.Lansweeper gibt zum Bildschirm
jedoch auch nur die WMI-Daten zurück (Plug & Play monitor)

Gruss
SC
Member: O-Marc
O-Marc Nov 23, 2010 at 12:20:16 (UTC)
Goto Top
man bekommt ja praktisch alles über WMI nicht jedoch daten zu den Bildschirmen und das obwohl diese ziemlich detailiert in der Registry liegen.

Wo stehen diese Angaben denn in der Registry und wie sehen sie aus? Du könntest über ein Script die entsprechenden Schlüssel exportieren. Pro Client würde dann eine Datei entstehen. Z.B. so:

reg export HKLM\Software\MyCo\MyApp c:\AppBkUp.reg


Und die Inhalte dieser Dateien könntest Du zusammenfassen, z.B. mit

type c:\*.reg >>c:\zusammenfassung.txt

Ob man dann damit etwas anfangen kann, hängt jedoch davon ab, wie die Informationen in den reg-Dateien aussehen.
Member: Scroller
Scroller Nov 23, 2010 at 13:11:09 (UTC)
Goto Top
hi

unter
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY\

gibts zu jedem Bildschirm der mal angeschlossen war undunterm Schlüssel EDID dann die Infos
im Binary Format. Wobei man das noch lesbar machen könnte, woher weis ich aber welcher
der (oder die aktuellen bei Mehreren Monitoren an einem Rechner) sind?

gruss
sc
Member: O-Marc
O-Marc Nov 23, 2010 at 14:17:21 (UTC)
Goto Top
Das weiß ich leider nicht. Wenn es an der Stelle nicht hinterlegt ist, dann vielleicht an einer anderen.
Member: jeanluc
jeanluc Nov 26, 2010 at 11:01:44 (UTC)
Goto Top
Hallo,

wie ein anderen in diesem Forum schon geschrieben hat, liegen die detaillierten Informationen in der Registry unter HKLM\SYSTEM\CurrentControlSet\Enum\DISPLAY. Wie gesagt. Die Daten sind binär codiert, enthalten allerdings alle Informationen zu Modell, Seriennummer und Hersteller.

JDisc Discovery (http://www.jdisc.com) liest diese Informationen aus und ermittelt aus den Binärdaten den/die angeschlossenen Monitore. Eine Bedingung gibt es allerdings. Wenn die Monitore erst nach dem Windows Start eingeschaltet werden, dann schreibt Windows die Monitorinformationen leider nicht in die Registry.

Frei ist das Produkt nur für bis zu 25 Geräten.

Ansonsten gibt es VBS Scripte im Internet, die die EDID Information auslesen und dekodieren. Einfach mal nach vbscript und EDID suchen. Damit kannst du dir selber ein script bauen, das die Daten ausliest. Die Registry kannst du ja auch entweder über VBS (falls der Remote Registry Service auf dem Zielrechner läuft) oder über WMI (falls der Wmi Registry Provider läuft) auslesen.

Grüße
TT
Member: jannik.wack
jannik.wack Sep 10, 2013 at 14:44:08 (UTC)
Goto Top
Hi, wenn du mit Powershell programmierst kannst du mal folgendes versuchen:

$Name = "TestPC1"
$PCInfo = get-wmiobject win32_computersystem -computer $Name
$BIOSInfo = get-wmiobject Win32_Bios -computer $Name
$All = Get-WmiObject -Namespace root\wmi -Class wmiMonitorID -ComputerName $Name

$PCNAME = $Name
$PCHersteller = $PCInfo.Manufacturer
$PCModell = $null
$PCModell = $PCInfo.Model += [char]$_
$PCSN = $BIOSInfo.SerialNumber

foreach ($monitor in $All)
{
$serial = $null
$product = $null
$manufacturer = $null
$monitor.SerialNumberID | foreach {$serial += [char]$_}
$monitor.ProductCodeID | foreach {$product += [char]$_}
$monitor.ManufacturerName | foreach {$manufacturer += [char]$_}


Write-Host "PC Informationen"
Write-Host "PCName : $PCNAME"
Write-Host "Hersteller : $PCHersteller"
Write-Host "Modell : $PCModell"
Write-Host "SN : $PCSN"
Write-Host ""
Write-Host "Monitorinformationen"
Write-Host "Name : $Name M"
Write-Host "Hersteller : $manufacturer"
Write-Host "Modell : $product"
Write-Host "SN : $serial"
Write-Host "
"

Viele Grüße