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-CimInstanceProperty-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