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
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
Please also mark the comments that contributed to the solution of the article
Content-Key: 155573
Url: https://administrator.de/contentid/155573
Printed on: April 23, 2024 at 14:04 o'clock
7 Comments
Latest comment
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.
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
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
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
$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