WMI-Klassen nach Klassennamen durchsuchen

WMI-Klassen gibt es wie Sand am Meer. Wenn ich mir nicht mehr sicher bin, wie meine gewünschte Klasse heißt, so starte ich einfach eine Suche nach dem Klassennamen mit einem Suchkriterium, hier z.B. “network”. Als Ergebnis erhalte ich dann alle Klassen-Bezeichnungen die mit “Win32″ beginnen und “network” enthalten.

1
Get-Wmiobject -list | Select-Object Name | Select-String -pattern "Win32\w+network"

Windowsversion ermitteln und ausgeben

Für ein Loginskript habe ich einige häufig verwendete Windowsparameter, wie z.B. die Version, Edition, Architektur, das Service Pack und den Produktnamen abgefragt. Als Informationsquelle nutze ich die Registry und WMI.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Windows Edition per Registry ermitteln
$tmp_WinPN = Get-ItemProperty "HKLM:\Software\Microsoft\Windows NT\CurrentVersion" | Select-Object ProductName
$tmp_WinPN.ProductName
 
# Windows Service Pack per Registry ermitteln
$tmp_WinSP = Get-ItemProperty "HKLM:\Software\Microsoft\Windows NT\CurrentVersion" | Select-Object CSDVersion
$tmp_WinSP.CSDVersion
 
# Windows-Version per WMI ermitteln
$tmp_WinVer = Get-Wmiobject "Win32_OperatingSystem" | Select-Object Version
$tmp_WinVer.Version
 
# Architektur  per WMI ermitteln
$tmp_ProcArc = Get-Wmiobject "Win32_Processor" | Select-Object AddressWidth
[String]::Concat($tmp_ProcArc.AddressWidth,"-Bit")

Benutzerkonten anzeigen deren Kennwort nicht abläuft

Im kommenden Beispiel werden alle lokalen Benutzeraccounts angezeigt, deren Kennwort nicht abläuft, also das Häkchen “Kennwort läuft nicht ab” in den Benutzereigenschaften gesetzt ist.

1
Get-Wmiobject Win32_Account | Where-Object {$_.PasswordExpires -eq 0} | Select-Object Name, Domain, FullName

Informationen zu lokalen Laufwerken per WMI anzeigen

Per WMI suchen wir uns alle lokalen Laufwerke (Typ 2) heraus und lassen uns den Laufwerkbuchstaben, die Bezeichnung, Gesamtgröße und den freien Platz von jedem Datenträger ausgeben.

1
Get-Wmiobject Win32_LogicalDisk | Where-Object {$_.DriveType -eq 3} | Select-Object DeviceID, VolumeName, Size, FreeSpace

Andere Möglichkeit:

1
Get-Wmiobject Win32_LogicalDisk -Filter "DriveType = 3" -computer localhost | Select-Object DeviceID, VolumeName, Size, FreeSpace