Erfassen von Informationen über Computer
Dieses Beispiel gilt nur für Windows-Plattformen.
Cmdlets des Moduls CimCmdlets sind die wichtigsten Cmdlets für einfache Tasks zur Systemverwaltung. Alle kritischen Subsystemeinstellungen werden über WMI verfügbar gemacht. Darüber hinaus behandelt WMI Daten als Objekte, die zu Sammlungen eines oder mehrerer Elemente gehören. Da PowerShell ebenfalls mit Objekten arbeitet und über eine Pipeline verfügt, mit der Sie einzelne oder mehrere Objekte auf die gleiche Weise behandeln können, ermöglicht der generische WMI-Zugriff Ihnen, einige erweiterte Aufgaben mit sehr geringem Aufwand auszuführen.
Auflisten von Desktopeinstellungen
Wir beginnen mit einem Befehl, der Informationen über die Desktops auf dem lokalen Computer erfasst.
Get-CimInstance -ClassName Win32_Desktop
Dadurch werden Informationen zu allen Desktops zurückgegeben, ganz gleich, ob sie verwendet werden oder nicht.
Hinweis
Einige WMI-Klassen geben sehr detaillierte Informationen zurück, die häufig Metadaten über die WMI-Klasse enthalten.
Da die meisten dieser Metadateneigenschaften über Namen verfügen, die mit Cim beginnen, können Sie die Eigenschaften mit Select-Object
filtern. Geben Sie dem Parameter -ExcludeProperty mit „Cim*“ als Wert an. Beispiel:
Get-CimInstance -ClassName Win32_Desktop | Select-Object -ExcludeProperty "CIM*"
Um die Metadaten zu filtern, verwenden Sie einen Pipelineoperator (|), um die Ergebnisse des Befehls Get-CimInstance
an Select-Object -ExcludeProperty "CIM*"
zu senden.
Auflisten von BIOS-Informationen
Die WMI-Klasse Win32_BIOS gibt kompakte und vollständige Informationen zum System-BIOS auf dem lokalen Computer zurück:
Get-CimInstance -ClassName Win32_BIOS
Auflisten von Prozessorinformationen
Sie können allgemeine Prozessorinformationen mithilfe der WMI-Klasse Win32_Processor abrufen. Allerdings möchten Sie die Daten wahrscheinlich filtern:
Get-CimInstance -ClassName Win32_Processor | Select-Object -ExcludeProperty "CIM*"
Wenn Sie eine Zeichenfolge mit einer allgemeinen Beschreibung der Prozessorfamilie erhalten möchten, lassen Sie die SystemType-Eigenschaft zurückgeben:
Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -Property SystemType
SystemType
----------
X86-based PC
Auflisten von Informationen zum Computerhersteller und -modell
Informationen zum Computermodell sind auch über Win32_ComputerSystem verfügbar. Zum Bereitstellen von OEM-Daten ist keine Filterung der angezeigten Standardausgabe erforderlich:
Get-CimInstance -ClassName Win32_ComputerSystem
Name PrimaryOwnerName Domain TotalPhysicalMemory Model Manufacturer
---- ---------------- ------ ------------------- ----- ------------
MyPC Jane Doe WORKGROUP 804765696 DA243A-ABA 6415cl NA910 Compaq Presario 06
Die Ausgabe von Befehlen, die Informationen direkt von bestimmter Hardware zurückgeben, kann nur so gut sein, wie die vorhandenen Daten. Einige Informationen wurden von den Hardwareherstellern nicht ordnungsgemäß konfiguriert und sind daher möglicherweise nicht verfügbar.
Auflisten installierter Hotfixes
Mit Win32_QuickFixEngineering können Sie alle installierten Hotfixes auflisten:
Get-CimInstance -ClassName Win32_QuickFixEngineering
Diese Klasse gibt eine Liste von Hotfixes zurück, die wie folgt aussieht:
Source Description HotFixID InstalledBy InstalledOn PSComputerName
------ ----------- -------- ----------- ----------- --------------
Security Update KB4048951 Administrator 12/16/2017 .
Wenn Sie eine kompaktere Ausgabe erhalten möchten, können Sie bestimmte Eigenschaften ausschließen. Sie können zwar den Get-CimInstance
Property-Parameter von verwenden, um nur die HotFixID auszuwählen. Dennoch werden weitere Informationen zurückgegeben, da standardmäßig alle Metadaten angezeigt werden:
Get-CimInstance -ClassName Win32_QuickFixEngineering -Property HotFixID
InstalledOn :
Caption :
Description :
InstallDate :
Name :
Status :
CSName :
FixComments :
HotFixID : KB4533002
InstalledBy :
ServicePackInEffect :
PSComputerName :
CimClass : root/cimv2:Win32_QuickFixEngineering
CimInstanceProperties : {Caption, Description, InstallDate, Name…}
CimSystemProperties : Microsoft.Management.Infrastructure.CimSystemProperties
...
Die zusätzlichen Daten werden zurückgegeben, weil der Property-Parameter in Get-CimInstance
die von WMI-Klasseninstanzen zurückgegebenen Eigenschaften, nicht aber das an die PowerShell zurückgegebene Objekt einschränkt. Um die Ausgabe zu verringern, verwenden Sie Select-Object
:
Get-CimInstance -ClassName Win32_QuickFixEngineering -Property HotFixId |
Select-Object -Property HotFixId
HotFixId
--------
KB4048951
Auflisten von Informationen zur Betriebssystemversion
Die Klasseneigenschaften Win32_OperatingSystem umfassen Informationen zur Version und zum Service Pack. Sie können mit Win32_OperatingSystem explizit nur diese Eigenschaften auswählen, um eine Zusammenfassung von Versionsinformationen abzurufen:
Get-CimInstance -ClassName Win32_OperatingSystem |
Select-Object -Property BuildNumber,BuildType,OSType,ServicePackMajorVersion,ServicePackMinorVersion
Sie können beim Property-Parameter auch Platzhalterzeichen verwenden. Da alle Eigenschaften, die entweder mit Build oder Service Pack beginnen, hier wichtig sind, können wir das Beispiel auf das folgende Format kürzen:
Get-CimInstance -ClassName Win32_OperatingSystem |
Select-Object -Property Build*,OSType,ServicePack*
BuildNumber : 18362
BuildType : Multiprocessor Free
OSType : 18
ServicePackMajorVersion : 0
ServicePackMinorVersion : 0
Auflisten der lokalen Benutzer*innen und Besitzer*innen
Allgemeine Informationen zu lokalen Benutzer*innen finden Sie mit einer Auswahl von Eigenschaften der Win32_OperatingSystem-Klasse. Sie können die anzuzeigenden Eigenschaften wie folgt explizit auswählen:
Get-CimInstance -ClassName Win32_OperatingSystem |
Select-Object -Property NumberOfLicensedUsers, NumberOfUsers, RegisteredUser
Eine kompaktere Version mit Platzhaltern ist:
Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object -Property *user*
Abrufen des verfügbaren Speicherplatzes
Um den Speicherplatz und den freien Speicherplatz auf lokalen Laufwerken anzuzeigen, können Sie die Win32_LogicalDisk-Klasse verwenden. Sie müssen nur Instanzen mit einem DriveType-Wert von „3“ anzuzeigen. Dieser Wert wird von WMI für Festplatten mit fester Größe verwendet.
Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3"
DeviceID DriveType ProviderName VolumeName Size FreeSpace PSComputerName
-------- --------- ------------ ---------- ---- --------- --------------
C: 3 Local Disk 203912880128 65541357568 .
Q: 3 New Volume 122934034432 44298250240 .
Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3" |
Measure-Object -Property FreeSpace,Size -Sum |
Select-Object -Property Property,Sum
Property Sum
-------- ---
FreeSpace 109839607808
Size 326846914560
Abrufen von Informationen zur Anmeldesitzung
Allgemeine Informationen zu Benutzern zugeordneten Anmeldesitzungen können Sie über die WMI-Klasse Win32_LogonSession abrufen:
Get-CimInstance -ClassName Win32_LogonSession
Abrufen der auf einem Computer angemeldeten Benutzer*innen
Mit Win32_ComputerSystem können Sie die auf einem bestimmten Computer angemeldeten Benutzer*innen anzeigen. Dieser Befehl gibt nur den auf dem Systemdesktop angemeldeten Benutzer zurück:
Get-CimInstance -ClassName Win32_ComputerSystem -Property UserName
Abrufen der lokalen Uhrzeit eines Computers
Sie können die aktuelle lokale Zeit auf einem bestimmten Computer mit der WMI-Win32_LocalTime-Klasse abrufen.
Get-CimInstance -ClassName Win32_LocalTime
Day : 23
DayOfWeek : 1
Hour : 8
Milliseconds :
Minute : 52
Month : 12
Quarter : 4
Second : 55
WeekInMonth : 4
Year : 2019
PSComputerName :
Anzeigen des Dienststatus
Zum Anzeigen des Status aller Dienste auf einem bestimmten Computer können Sie das Cmdlet Get-Service
verwenden. Für Remotesysteme können Sie die Klasse WMI-Win32_Service verwenden. Wenn Sie die Ergebnisse außerdem mit Select-Object
nach Status, Name und DisplayName filtern, ist das Ausgabeformat fast identisch mit dem von Get-Service
:
Get-CimInstance -ClassName Win32_Service |
Select-Object -Property Status,Name,DisplayName
Um für die Dienste mit langen Namen die Anzeige der vollständigen Namen zu ermöglichen, können Sie mit den Parametern AutoSize und WrapFormat-Table
verwenden. Mit diesen Parametern wird die Spaltenbreite optimiert und ermöglicht, dass lange Namen umgebrochen und nicht abgeschnitten werden:
Get-CimInstance -ClassName Win32_Service |
Format-Table -Property Status, Name, DisplayName -AutoSize -Wrap