Zurück zu PowerShell
System Profi

Registry & WMI/CIM

Registry-Werte lesen und setzen, Hardware und System über WMI/CIM abfragen.

Registry lesen und schreiben

PowerShell behandelt die Registry wie ein Dateisystem mit den Laufwerken HKLM: und HKCU:.

# Registry-Schluessel auflisten
Get-ChildItem HKCU:\Software\Microsoft\Windows\CurrentVersion\Run

# Bestimmten Wert lesen
Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name ProgramFilesDir

# Neuen Wert erstellen
New-ItemProperty -Path "HKCU:\Software\MeineTool" -Name "Einstellung" -Value "Aktiv" -PropertyType String

# Wert aendern
Set-ItemProperty -Path "HKCU:\Software\MeineTool" -Name "Einstellung" -Value "Inaktiv"

# Wert loeschen
Remove-ItemProperty -Path "HKCU:\Software\MeineTool" -Name "Einstellung"

# Ganzen Schluessel loeschen
Remove-Item -Path "HKCU:\Software\MeineTool" -Recurse

WMI/CIM-Abfragen

Get-CimInstance ersetzt das ältere Get-WmiObject und ist schneller und sicherer.

InformationBefehl
BetriebssystemGet-CimInstance Win32_OperatingSystem
BIOS-InformationenGet-CimInstance Win32_BIOS
FestplattenGet-CimInstance Win32_DiskDrive
RAM-ModuleGet-CimInstance Win32_PhysicalMemory
NetzwerkadapterGet-CimInstance Win32_NetworkAdapter -Filter "NetEnabled=True"
Installierte SoftwareGet-CimInstance Win32_Product

Erweiterte CIM-Abfragen

# Mit Filter (schneller als Where-Object)
Get-CimInstance Win32_Service -Filter "StartMode='Auto' AND State='Stopped'"

# WQL-Query (SQL-aehnlich)
Get-CimInstance -Query "SELECT * FROM Win32_LogicalDisk WHERE DriveType=3 AND FreeSpace < 10737418240"

# Festplattenstatus mit Formatierung
Get-CimInstance Win32_LogicalDisk -Filter "DriveType=3" | ForEach-Object {
    [PSCustomObject]@{
        Laufwerk = $_.DeviceID
        GesamtGB = [math]::Round($_.Size / 1GB, 1)
        FreiGB   = [math]::Round($_.FreeSpace / 1GB, 1)
        FreiProzent = [math]::Round(($_.FreeSpace / $_.Size) * 100, 1)
    }
} | Format-Table -AutoSize

Tipp: Get-CimInstance funktioniert auch remote mit -ComputerName. Für eine Liste aller WMI-Klassen: Get-CimClass -Namespace root/cimv2 | Where-Object CimClassName -like "Win32_*"