Wir zeigen Ihnen mit welchen Befehlen und Tricks Windows Systeme ganz einfach per PowerShell inventarisiert werden können.
Im Windows-Umfeld hat sich PowerShell vor allem für Tätigkeiten zur Automatisierung etabliert. Die Vorteile liegen auf der Hand: Keine Installation erforderlich, eine große Anwenderschaft und damit umfangreiche Dokumentation.
Perfekte Voraussetzungen also um PowerShell für die Inventarisierung von Windows PCs einzusetzen.
Die Inventarisierung mittels PowerShell setzt intern auf die per Standard aktivierte WMI-Schnittstelle von Windows Systemen, welche speziell für die Abfrage von Systemparametern und Hardware-Informationen ausgelegt ist.
Besonderer Vorteil hieran: WMI kann auch Remote per Netzwerk angesprochen werden, wodurch auch eine Inventarisierung im gesamten Netzwerk ohne physische Anmeldung am Endgerät erfolgen kann.
Die Voraussetzungen für eine erfolgreiche Abfrage von WMI mit PowerShell sind recht minimal:
Get-CimInstance -ClassName Win32_SystemEnclosure -Namespace 'root\CIMV2' -Property ChassisTypes | Select-Object ExpandProperty ChassisTypes
Bei den ausgegebenen Werten handelt es sich dabei um bestimmte Schlüssel-Werte. Deren Auflösung kann in der zugehörigen Microsoft Dokumentation eingesehen werden. Nachfolgend finden sich einige gängige Beispiele:
Die installierte Windows Edition und der jeweilige Versionsstand ist in der WMI-Klasse Win32_OperatingSystem abgelegt:
$osInfo = Get-WmiObject -Class Win32_OperatingSystem -ErrorAction Stop
Write-Host "Windows-Edition: $osInfo.Caption"
Write-Host "Windows-Version: $osInfo.Version"
Auf den Systemen der meisten gängigen PC, Notebook bzw. Server-Hersteller sind die Hersteller- und Modellinformationen in der Klasse Win32_ComputerSystem abgelegt.
$csInfo = Get-WmiObject -Class Win32_ComputerSystem -ErrorAction Stop
Write-Host "Hersteller: $csInfo.Manufacturer"
Write-Host "Modell: $csInfo.Model"
Nicht jeder Hersteller folgt hier einem einheitlichen Standard. Teilweise sind im Attribut Model nur Hersteller-interne Modellcodes wie z.B. "239237G" abgelegt. In diesen Fällen kann eine zusätzliche Abfrage des Attributs SystemFamily helfen.
Bei allen OEM Lieferanten wie beispielsweise Dell, HP, Lenovo und Co. entspricht die im BIOS abgelegte Seriennumer auch der tatsächlichen Seriennummer, die auf dem Typenschild ersichtlich ist.
$bios = Get-WmiObject -Class Win32_BIOS -ErrorAction Stop
Write-Host "Seriennummer: $bios.Serialnumber"
Lediglich bei manuell zusammengestellten Geräten aus Einzelkomponenten (Individualsysteme) findet sich hier dementsprechend nur die Seriennummer des verbauten Mainboards.
Jetzt unser kostenloses PowerShell Inventory Skript für die Inventarisierung von Windows-Systemen herunterladen.
WMI bietet auch ein - leider etwas verstecktes - Berechtigungsmanagement. Hierüber kann die Abfrage auf WMI Namespaces auch von Benutzern ohne administrative Rechte durchgeführt werden.
Öffenen Sie hierzu zunächst das Startmenü und Suchen Sie hier nach "wmigmt.msc". Alternativ kann auch die Tastenkombination "Windows-Taste + R -> wmimgmt.msc" verwendet werden.
Klicken Sie hier mit der rechten Maustaste auf "WMI-Kontrolle (Lokal)" und wählen die Option "Einstellungen" aus.
Im nächsten Schritt wechseln Sie in den Tab "Sicherheit" und klicken anschließend einmal auf den ersten Eintrag "Root". Abschließend im unteren Bereich den Button "Sicherheit" anklicken um die Berechtigungseinstellungen zu öffnen.
Rufen Sie hier direkt über "Erweitert" die ausführlichen Einstellungsoptionen auf.
Fügen Sie hier einen neuen Benutzer der Liste hinzu.
Stellen Sie hierbei sicher, dass der Benutzer auch auf alle untergeordneten Namespaces berechtigt wird. Zusätzlich aktivieren wir in diesem Punkt bereits die Remoteaktivierung, welcher später auch eine Abfrage aus der Ferne per Netzwerk ermöglicht.
Für administrative Benutzer ist der Remotezugriff per WMI per Standard aktiv. Hier ist keine weitere Konfiguration notwendig.
Wird hingegen ein nicht-administrativer Benutzer für die Abfrage verwendet, muss die Remoteaktivierung in "wmimgmt.msc" gesetzt und der Benutzer zudem auch in die lokale Gruppe "Distributed COM-Benutzer" aufgenommen werden.
Die WMI Abfrage gegen einen entfernten Computer ist dann über die Angabe des zusätzlichen Parameters "-ComputerName" wie folgt möglich:
Get-WmiObject -Class Win32_BIOS -ComputerName 10.0.3.200 -ErrorAction Stop
Um für die Abfrage einen anderen Benutzer zu verwenden, kann der Parameter "-Credential" verwendet werden. Hierzu erzeugen wir zunächst ein neues Authentifizierungsobjekt und übergeben dieses dann an die Abfragefunktion.
$Password = Read-Host -AsSecureString -Prompt "Enter password for Account: "
$Credential = New-Object System.Management.Automation.PSCredential ("Domain\Username", $Password)
Get-WmiObject -Class Win32_BIOS -ComputerName 10.0.3.200 -Credential $Credential -ErrorAction Stop
Mittels PowerShell können über die WMI Schnittstelle sehr schnell und einfach grundlegende Inventar-Informationen von Windows-Systemen abgerufen werden. Durch die Vielzahl der verscheidenen WMI Namespaces und Tabellen sind auch viele weitere sehr detaillierte Daten abrufbar.
Mit unserem kostenlosen Network Inventory Tool vereinfachen wir die umfangreiche und schnelle Inventarisierung von Geräten im Netzwerk auf nur einen einzigen Befehl. Inkl. einer Importfähigen Inventarliste im CSV oder JSON Format.
Geschäftsführer / CEO
Gründer und Geschäftsführer der EntekSystems GmbH. Herr Kostka verantwortet bei uns die Bereiche technischer Vertrieb und Leitung des Tagesgeschäfts.
Weitere Artikel und Beiträge
Wir zeigen Ihnen was es mit SNMP Agents, Managern, Traps, OIDs und MIBs auf sich hat und wie SNMP in der Praxis sicher eingesetzt werden kann.
IT-Inventarisierung ist wie ein gutes Rezept: Wie können die richtigen Zutaten und eine präzise Zubereitung dafür sorgen, dass Ihre IT optimal funktioniert? In diesem Artikel werfen wir einen Blick darauf, wie Sie Ihre IT-Inventarisierung erfolgreich „zubereiten“.
Der Helpdesk-Alltag ist oft überlastet durch Support-Anfragen und IT-Verwaltung. Wann ist es Zeit für ein IT Asset Management (ITAM)-System? In diesem Artikel beleuchten wir die Anzeichen für den Bedarf und die Vorteile eines Umstiegs, um Ihre Helpdesk-Operationen zu optimieren.