Get-WmiObject ist das wichtigste Cmdlet für allgemeine Systemverwaltungsaufgaben. Alle wichtigen Subsystemeinstellungen werden über WMI verfügbar gemacht. Ferner werden Daten von WMI als Objekte in Auflistungen mit mindestens einem Element behandelt. Da Windows PowerShell auch Objekte verwendet und über eine Pipeline verfügt, um einzelne oder mehrere Objekte auf die gleiche Weise zu behandeln, können mit einem allgemeinen WMI-Zugriff problemlos verschiedene komplexe Aufgaben durchgeführt werden.

Die folgenden Beispiele veranschaulichen das Erfassen bestimmter Informationen durch Verwenden von Get-WmiObject für einen beliebigen Computer. Der ComputerName-Parameter wird mit dem Punkt im Wert (.) angegeben, dieser stellt den lokalen Computer dar. Sie können einen Namen oder eine IP-Adresse angeben, die mit einem beliebigen, über WMI erreichbaren Computer verknüpft ist. Um Informationen über den lokalen Computer abzurufen, können Sie -ComputerName. auslassen.

Auflisten der Desktopeinstellungen

Mit dem folgenden Befehl können Sie Informationen über jeden Desktop auf dem lokalen Computer sammeln.

Get-WmiObject -Class Win32_Desktop -ComputerName .

Mit diesem Befehl werden Informationen über jeden Desktop zurückgegeben, unabhängig davon, ob dieser verwendet wird.

Hinweis:

Die von WMI-Klassen zurückgegebenen Informationen können zahlreiche Details einschließlich Metadaten über die WMI-Klasse enthalten. Da die Namen der meisten Metadateneigenschaften mit einem doppelten Unterstrich beginnen, können Sie die Eigenschaften mit Select-Object filtern. Geben Sie nur die Eigenschaften an, die mit einem alphanumerischen Zeichen beginnen, indem Sie als Eigenschaftenwert [a-z]* angeben. Beispiel:

Get-WmiObject -Class Win32_Desktop -ComputerName . | Select-Object -Property [a-z]*

Zum Filtern der Metadaten senden Sie die Ergebnisse des Befehls "Get-WmiObject" mit dem Pipelineoperator (|) an Select-Object -Property [a-z]*.

Auflisten von BIOS-Informationen

Mit der Win32_BIOS-WMI-Klasse werden relativ kompakte und vollständige Informationen über das System-BIOS auf dem lokalen Computer zurückgegeben.

Get-WmiObject -Class Win32_BIOS -ComputerName .

Auflisten von Prozessorinformationen

Mit der Win32_Processor-WMI-Klasse können Sie allgemeine Informationen zum Prozessor abrufen. Es empfiehlt sich jedoch, diese Informationen zu filtern:

Get-WmiObject -Class Win32_Processor -ComputerName . | Select-Object -Property [a-z]*

Um eine allgemeine Beschreibungszeichenfolge für die Prozessorfamilie anzuzeigen, können Sie einfach die SystemType-Eigenschaft von Win32_ComputerSystem zurückgeben:

PS> Get-WmiObject -Class Win32_ComputerSystem -ComputerName . | Select-Object -Property SystemType
SystemType
----------
X86-based PC

Auflisten von Computerhersteller und Modell

Informationen zum Computermodell können auch mit Win32_ComputerSystem abgerufen werden. Für die Standardausgabe ist kein Filter zur Anzeige der OEM-Daten erforderlich:

PS> Get-WmiObject -Class Win32_ComputerSystem
Domain              : WORKGROUP
Manufacturer        : Compaq Presario 06
Model               : DA243A-ABA 6415cl NA910
Name                : MyPC
PrimaryOwnerName    : Jane Doe
TotalPhysicalMemory : 804765696

Die Qualität der Ausgabe solcher Befehle, mit denen Informationen direkt von der Hardware zurückgegeben werden, wird durch die verfügbaren Daten bestimmt. Einige Informationen werden von Hardwareherstellern nicht korrekt konfiguriert und können daher möglicherweise nicht abgerufen werden.

Auflisten installierter Hotfixes

Mit Win32_QuickFixEngineering können Sie alle installierten Hotfixes auflisten:

Get-WmiObject -Class Win32_QuickFixEngineering -ComputerName .

Diese Klasse gibt die folgende Hotfixliste zurück:

Description         : Update for Windows XP (KB910437)
FixComments         : Update
HotFixID            : KB910437
Install Date        :
InstalledBy         : Administrator
InstalledOn         : 12/16/2005
Name                :
ServicePackInEffect : SP3
Status              :

Um eine kompaktere Ausgabe zu erreichen, können Sie einige Eigenschaften ausschließen. Mit dem Get-WmiObject Property-Parameter können Sie zwar nur die HotFixID auswählen, es werden aber dennoch mehr Informationen ausgegeben, da standardmäßig alle Metadaten angezeigt werden:

PS> Get-WmiObject -Class Win32_QuickFixEngineering -ComputerName . -Property HotFixId
HotFixID         : KB910437
__GENUS          : 2
__CLASS          : Win32_QuickFixEngineering
__SUPERCLASS     :
__DYNASTY        :
__RELPATH        :
__PROPERTY_COUNT : 1
__DERIVATION     : {}
__SERVER         :
__NAMESPACE      :
__PATH           :

Die zusätzlichen Daten werden zurückgegeben, da durch den Property-Parameter in Get-WmiObject die von den Instanzen der WMI-Klasse zurückgegeben Eigenschaften statt des an Windows PowerShell zurückgegebenen Objekts eingeschränkt werden. Zum Verkleinern der Ausgabe verwenden Sie Select-Object:

PS> Get-WmiObject -Class Win32_QuickFixEngineering -ComputerName . -Property Hot
FixId | Select-Object -Property HotFixId
HotFixId
--------
KB910437

Auflisten von Informationen über die Betriebssystemversion

Die Eigenschaften der Win32_OperatingSystem-Klasse schließen Sie Informationen zur Version und zum Service Pack ein. Sie können eine dieser Eigenschaften explizit auswählen, um von Win32_OperatingSystem eine Zusammenfassung der Versionsinformationen abzurufen:

Get-WmiObject -Class Win32_OperatingSystem -ComputerName . | Select-Object -Property BuildNumber,BuildType,OSType,ServicePackMajorVersion,ServicePackMinorVersion

Mit dem Parameter Select-Object Property können Sie auch Platzhalter verwenden. Da in diesem Zusammenhang alle Eigenschaften verwendet werden müssen, die mit Build oder ServicePack beginnen, kann folgende Kurzform benutzt werden:

PS> Get-WmiObject -Class Win32_OperatingSystem -ComputerName . | Select-Object -Property Build*,OSType,ServicePack*

BuildNumber             : 2600
BuildType               : Uniprocessor Free
OSType                  : 18
ServicePackMajorVersion : 2
ServicePackMinorVersion : 0

Auflisten von lokalen Benutzern und Besitzern

Allgemeine Informationen zu lokalen Benutzern, z. B. die Anzahl der lizenzierten Benutzer, die aktuelle Anzahl der Benutzer und der Name des Besitzers, können durch Auswahl der Win32_OperatingSystem-Eigenschaften angezeigt werden. Sie können die Eigenschaften explizit auswählen, um folgende Anzeige zu erhalten:

Get-WmiObject -Class Win32_OperatingSystem -ComputerName . | Select-Object -Property NumberOfLicensedUsers,NumberOfUsers,RegisteredUser

Nachfolgend finden Sie eine kompaktere Darstellung mit Platzhaltern:

Get-WmiObject -Class Win32_OperatingSystem -ComputerName . | Select-Object -Property *user*

Abrufen von verfügbarem Speicherplatz

Mit der Win32_LogicalDisk-WMI-Klasse können Sie den verfügbaren Speicherplatz sowie den freien Speicherplatz für die lokalen Laufwerke anzeigen. Sie können die Anzeige auf Laufwerke mit DriveType 3 einschränken, da dieser Wert von WMI für Festplatten vergeben wird.

Get-WmiObject -Class Win32_LogicalDisk -Filter "DriveType=3" -ComputerName .

DeviceID     : C:
DriveType    : 3
ProviderName :
FreeSpace    : 65541357568
Size         : 203912880128
VolumeName   : Local Disk

DeviceID     : Q:
DriveType    : 3
ProviderName :
FreeSpace    : 44298250240
Size         : 122934034432
VolumeName   : New Volume

PS> Get-WmiObject -Class Win32_LogicalDisk -Filter "DriveType=3" -ComputerName . | Measure-Object -Property FreeSpace,Size -Sum

Get-WmiObject -Class Win32_LogicalDisk -Filter "DriveType=3" -ComputerName . | Measure-Object -Property FreeSpace,Size -Sum | Select-Object -Property Property,Sum

Abrufen von Informationen über die Anmeldesitzung

Mit der Win32_LogonSession-WMI-Klasse können Sie allgemeine Informationen zu Anmeldesitzungen für Benutzer abrufen:

Get-WmiObject -Class Win32_LogonSession -ComputerName .

Anmelden von Benutzern an einem Computer

Mit Win32_ComputerSystem können Sie den Benutzer anzeigen, der an einem bestimmten Computersystem angemeldet ist. Mit diesem Befehl werden nur Informationen über den am Systemdesktop angemeldeten Benutzer zurückgegeben:

Get-WmiObject -Class Win32_ComputerSystem -Property UserName -ComputerName .

Abrufen der Ortszeit von einem Computer

Mit der Win32_LocalTime-WMI-Klasse können Sie Informationen zur aktuellen Ortszeit für einen bestimmten Computer abrufen. Da mit dieser Klasse standardmäßig alle Metadaten angezeigt werden, sollten Sie Select-Object als Filter verwenden:

PS> Get-WmiObject -Class Win32_LocalTime -ComputerName . | Select-Object -Property [a-z]*


Day          : 15
DayOfWeek    : 4
Hour         : 12
Milliseconds :
Minute       : 11
Month        : 6
Quarter      : 2
Second       : 52
WeekInMonth  : 3
Year         : 2006

Anzeigen des Dienststatus

Zum Anzeigen des Status für alle Dienste auf einem bestimmten Computer können Sie, wie bereits beschrieben, das Cmdlet Get-Service auf lokaler Ebene verwenden. Bei Remotesystemen können Sie die Win32_Service-WMI-Klasse verwenden. Wenn Sie die Ergebnisse für Status, Name und DisplayName auch mit Select-Object filtern, ist das Ausgabeformat mit dem von Get-Service fast identisch:

Get-WmiObject -Class Win32_Service -ComputerName . | Select-Object -Property Status,Name,DisplayName

Wenn Sie die vollständige Anzeige von Namen für selten verwendete Dienste mit extrem langen Namen ermöglichen möchten, können Sie Format-Table mit dem AutoSize-Parameter und dem Wrap-Parameter verwenden, um die Spaltenbreite zu optimieren und lange Namen zu umbrechen, anstatt sie abzuschneiden:

Get-WmiObject -Class Win32_Service -ComputerName . | Format-Table -Property Status,Name,DisplayName -AutoSize -Wrap




Inhaltsverzeichnis