Freigeben über


Get-WmiObject

Ruft Instanzen von WMI-Klassen (Windows Management Instrumentation) oder Informationen zu den verfügbaren Klassen ab.

Syntax

Get-WmiObject
   [-Class] <String>
   [[-Property] <String[]>]
   [-Filter <String>]
   [-Amended]
   [-DirectRead]
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [<CommonParameters>]
Get-WmiObject
   [[-Class] <String>]
   [-Recurse]
   [-Amended]
   [-List]
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [<CommonParameters>]
Get-WmiObject
   [-Amended]
   [-DirectRead]
   -Query <String>
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [<CommonParameters>]
Get-WmiObject
   [-Amended]
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [<CommonParameters>]
Get-WmiObject
   [-Amended]
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [<CommonParameters>]

Beschreibung

Ab PowerShell 3.0 wurde dieses Cmdlet durch Get-CimInstanceersetzt.

Das cmdlet Get-WmiObject ruft Instanzen von WMI-Klassen oder Informationen zu den verfügbaren WMI-Klassen ab. Verwenden Sie zum Angeben eines Remotecomputers den Parameter ComputerName. Wenn der parameter List angegeben ist, ruft das Cmdlet Informationen zu den WMI-Klassen ab, die in einem angegebenen Namespace verfügbar sind. Wenn der parameter Query angegeben ist, führt das Cmdlet eine WMI-Abfragesprache (WQL)-Anweisung aus.

Das Cmdlet Get-WmiObject verwendet keine Windows PowerShell-Remoting zum Ausführen von Remotevorgängen. Sie können den parameter ComputerName des Cmdlets Get-WmiObject verwenden, auch wenn Ihr Computer die Anforderungen für Windows PowerShell-Remoting nicht erfüllt oder nicht für remoting in Windows PowerShell konfiguriert ist.

Ab Windows PowerShell 3.0 weist die __Server-Eigenschaft des Get-WmiObject zurückgegebenen Objekts einen PSComputerName Alias auf. Dadurch ist es einfacher, den Namen des Quellcomputers in Ausgabe und Berichte einzuschließen.

Beispiele

Beispiel 1: Abrufen von Prozessen auf dem lokalen Computer

In diesem Beispiel werden die Prozesse auf dem lokalen Computer abgerufen.

Get-WmiObject -Class Win32_Process

Beispiel 2: Ruft Dienste auf einem Remotecomputer ab

In diesem Beispiel werden die Dienste auf einem Remotecomputer angezeigt. Der parameter ComputerName gibt die IP-Adresse eines Remotecomputers an. Standardmäßig muss das aktuelle Benutzerkonto Mitglied der Administratoren Gruppe auf dem Remotecomputer sein.

Get-WmiObject -Class Win32_Service -ComputerName 10.1.4.62

Beispiel 3: Abrufen von WMI-Klassen im Stamm- oder Standardnamespace des lokalen Computers

In diesem Beispiel werden die WMI-Klassen im Stamm- oder Standardnamespace des lokalen Computers ab.

Get-WmiObject -Namespace "root/default" -List

Beispiel 4: Abrufen eines benannten Diensts auf mehreren Computern

In diesem Beispiel wird der WinRM-Dienst auf den Computern abgerufen, die durch den Wert des parameters ComputerName angegeben werden.

Get-WmiObject -Query "select * from win32_service where name='WinRM'" -ComputerName Server01, Server02 |
  Format-List -Property PSComputerName, Name, ExitCode, Name, ProcessID, StartMode, State, Status

PSComputerName : SERVER01
Name           : WinRM
ExitCode       : 0
Name           : WinRM
ProcessID      : 844
StartMode      : Auto
State          : Running
Status         : OK

PSComputerName : SERVER02
Name           : WinRM
ExitCode       : 0
Name           : WinRM
ProcessID      : 932
StartMode      : Auto
State          : Running
Status         : OK

Ein Pipelineoperator (|) sendet die Ausgabe an das cmdlet Format-List, wodurch der Standardausgabe die PSComputerName-Eigenschaft hinzugefügt wird. PSComputerName ist ein Alias der __Server Eigenschaft der Objekte, die Get-WmiObject zurückgeben. Dieser Alias wurde in PowerShell 3.0 eingeführt.

Beispiel 5: Beenden eines Diensts auf einem Remotecomputer

In diesem Beispiel wird der WinRM-Dienst auf einem Remotecomputer beendet. Get-WmiObject ruft die Instanz des WinRM-Dienstobjekts auf Server01 ab. Anschließend wird die StopService--Methode der Win32_Service WMI-Klasse für dieses Objekt aufgerufen.

(Get-WmiObject -Class Win32_Service -Filter "name='WinRM'" -ComputerName Server01).StopService()

Dies entspricht der Verwendung des cmdlets Stop-Service.

Beispiel 6: Abrufen des BIOS auf dem lokalen Computer

In diesem Beispiel werden die BIOS-Informationen vom lokalen Computer abgerufen. Der parameter Property des cmdlets Format-List wird verwendet, um alle Eigenschaften des zurückgegebenen Objekts in einer Liste anzuzeigen. Standardmäßig werden nur die in der konfigurationsdatei Types.ps1xml definierten Teilmengen von Eigenschaften angezeigt.

Get-WmiObject -Class Win32_Bios | Format-List -Property *

Status                : OK
Name                  : Phoenix ROM BIOS PLUS Version 1.10 A05
Caption               : Phoenix ROM BIOS PLUS Version 1.10 A05
SMBIOSPresent         : True
__GENUS               : 2
__CLASS               : Win32_BIOS
__SUPERCLASS          : CIM_BIOSElement
__DYNASTY             : CIM_ManagedSystemElement
__RELPATH             : Win32_BIOS.Name="Phoenix ROM BIOS PLUS Version 1.10
__PROPERTY_COUNT      : 27
__DERIVATION          : {CIM_BIOSElement, CIM_SoftwareElement, CIM_LogicalElement,
__SERVER              : Server01
__NAMESPACE           : root\cimv2
__PATH                : \\SERVER01\root\cimv2:Win32_BIOS.Name="Phoenix ROM BIOS
BiosCharacteristics   : {7, 9, 10, 11...}
BIOSVersion           : {DELL   - 15, Phoenix ROM BIOS PLUS Version 1.10 A05}
BuildNumber           :
CodeSet               :
CurrentLanguage       : en|US|iso8859-1
Description           : Phoenix ROM BIOS PLUS Version 1.10 A05
IdentificationCode    :
InstallableLanguages  : 1
InstallDate           :
LanguageEdition       :
ListOfLanguages       : {en|US|iso8859-1}
Manufacturer          : Dell Inc.
OtherTargetOS         :
PrimaryBIOS           : True
ReleaseDate           : 20101103000000.000000+000
SerialNumber          : 8VDM9P1
SMBIOSBIOSVersion     : A05
SMBIOSMajorVersion    : 2
SMBIOSMinorVersion    : 6
SoftwareElementID     : Phoenix ROM BIOS PLUS Version 1.10 A05
SoftwareElementState  : 3
TargetOperatingSystem : 0
Version               : DELL   - 15
Scope                 : System.Management.ManagementScope
Path                  : \\SERVER01\root\cimv2:Win32_BIOS.Name="Phoenix ROM BIOS
Options               : System.Management.ObjectGetOptions
ClassPath             : \\JUNE-PC\root\cimv2:Win32_BIOS
Properties            : {BiosCharacteristics, BIOSVersion, BuildNumber, Caption...}
SystemProperties      : {__GENUS, __CLASS, __SUPERCLASS, __DYNASTY...}
Qualifiers            : {dynamic, Locale, provider, UUID}
Site                  :
Container             :

Beispiel 7: Abrufen der Dienste auf einem Remotecomputer

In diesem Beispiel wird der parameter Credential des Cmdlets Get-WmiObject verwendet, um die Dienste auf einem Remotecomputer abzurufen. Der Wert des Parameters Credential ist ein Benutzerkontoname. Der Benutzer wird zur Eingabe eines Kennworts aufgefordert.

Get-WmiObject Win32_Service -Credential FABRIKAM\administrator -ComputerName Fabrikam

Anmerkung

Anmeldeinformationen können nicht verwendet werden, wenn sie auf den lokalen Computer ausgerichtet sind.

Parameter

-Amended

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die von WMI zurückgegebenen Objekte geänderte Informationen enthalten sollen. In der Regel sind geänderte Informationen lokalisierbare Informationen, z. B. Objekt- und Eigenschaftsbeschreibungen, die dem WMI-Objekt zugeordnet sind.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-AsJob

Führt den Befehl als Hintergrundauftrag aus. Verwenden Sie diesen Parameter, um Befehle auszuführen, die lange dauern.

Wenn Sie den parameter AsJob verwenden, gibt der Befehl ein Objekt zurück, das den Hintergrundauftrag darstellt, und zeigt dann die Eingabeaufforderung an. Sie können weiterhin in der Sitzung arbeiten, während der Auftrag abgeschlossen ist. Wenn Get-WmiObject mit dem parameter ComputerName verwendet wird, wird der Auftrag auf dem lokalen Computer erstellt, und die Ergebnisse von Remotecomputern werden automatisch an den lokalen Computer zurückgegeben. Verwenden Sie zum Verwalten des Auftrags die Cmdlets, die das Job Substantiv enthalten. Verwenden Sie das Cmdlet Receive-Job, um die Auftragsergebnisse abzurufen.

Weitere Informationen zu Windows PowerShell-Hintergrundaufträgen finden Sie unter about_Jobs und about_Remote_Jobs.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Authentication

Gibt die Authentifizierungsebene an, die mit der WMI-Verbindung verwendet werden soll. Gültige Werte sind:

  • -1: Unverändert
  • 0: Standard-
  • 1: Keine (Keine Authentifizierung wurde ausgeführt.)
  • 2: Connect (Die Authentifizierung wird nur ausgeführt, wenn der Client eine Beziehung mit der Anwendung herstellt.)
  • 3: Anruf (Die Authentifizierung erfolgt nur zu Beginn jedes Anrufs, wenn die Anwendung die Anforderung empfängt.)
  • 4: Paket- (Die Authentifizierung wird für alle Daten ausgeführt, die vom Client empfangen werden.)
  • 5: PacketIntegrity- (Alle Daten, die zwischen dem Client und der Anwendung übertragen werden, werden authentifiziert und überprüft.)
  • 6: PacketPrivacy (Die Eigenschaften der anderen Authentifizierungsstufen werden verwendet, und alle Daten werden verschlüsselt.)
Typ:AuthenticationLevel
Zulässige Werte:Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Authority

Gibt die Autorität an, die zum Authentifizieren der WMI-Verbindung verwendet werden soll. Sie können die standardmäßige NTLM- oder Kerberos-Authentifizierung angeben. Um NTLM zu verwenden, legen Sie die Autoritätseinstellung auf ntlmdomain:<DomainName>fest, wobei <DomainName> einen gültigen NTLM-Domänennamen identifiziert. Geben Sie kerberos:<DomainName>\<ServerName>an, um Kerberos zu verwenden. Sie können die Autoritätseinstellung nicht einschließen, wenn Sie eine Verbindung mit dem lokalen Computer herstellen.

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Class

Gibt den Namen einer WMI-Klasse an. Wenn dieser Parameter verwendet wird, ruft das Cmdlet Instanzen der WMI-Klasse ab.

Typ:String
Aliase:ClassName
Position:1
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-ComputerName

Gibt den Zielcomputer für den Verwaltungsvorgang an. Geben Sie einen vollqualifizierten Domänennamen (FQDN), einen NetBIOS-Namen oder eine IP-Adresse ein. Wenn sich der Remotecomputer in einer anderen Domäne befindet als der lokale Computer, ist der vollqualifizierte Domänenname erforderlich.

Der Standardwert ist der lokale Computer. Um den lokalen Computer anzugeben, z. B. in einer Liste von Computernamen, verwenden Sie localhost, den lokalen Computernamen oder einen Punkt (.).

Wenn Sie einen Remotecomputer angeben, muss Ihr aktuelles Konto oder das Konto, das Sie mit dem Parameter Anmeldeinformationen angeben, über entsprechende Berechtigungen für den Zugriff auf die Informationen verfügen.

Dieser Parameter basiert nicht auf Windows PowerShell-Remoting, das WS-Management verwendet. Sie können den ComputerName Parameter von Get-WmiObject verwenden, auch wenn Ihr Computer nicht für die Ausführung WS-Management Remotebefehle konfiguriert ist.

Typ:String[]
Aliase:Cn
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Credential

Gibt ein Benutzerkonto an, das über die Berechtigung zum Ausführen dieser Aktion verfügt. Die Standardeinstellung ist der aktuelle Benutzer. Geben Sie einen Benutzernamen ein, z. B. User01, Domain01\User01oder User@Contoso.com. Oder geben Sie ein PSCredential--Objekt ein, z. B. ein Objekt, das vom Cmdlet Get-Credential zurückgegeben wird. Wenn Sie einen Benutzernamen eingeben, werden Sie aufgefordert, ein Kennwort einzugeben. Anmeldeinformationen können nicht verwendet werden, wenn sie auf den lokalen Computer ausgerichtet sind.

Typ:PSCredential
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-DirectRead

Gibt an, ob der direkte Zugriff auf den WMI-Anbieter für die angegebene Klasse ohne Bezug auf die Basisklasse oder auf die abgeleiteten Klassen angefordert wird.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-EnableAllPrivileges

Aktiviert alle Berechtigungen des aktuellen Benutzers, bevor der Befehl den WMI-Aufruf vor sich führt.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Filter

Gibt eine Where Klausel an, die als Filter verwendet werden soll. Verwendet die Syntax der WMI-Abfragesprache (WQL).

Wichtig

Schließen Sie nicht die Where Schlüsselwort in den Wert des Parameters ein. Die folgenden Befehle geben beispielsweise nur die logischen Datenträger zurück, die eine DeviceID- von c: und Diensten mit dem Namen "WinRM" aufweisen, ohne das Schlüsselwort Where zu verwenden.

Get-WmiObject Win32_LogicalDisk -filter "DeviceID = 'c:' "

Get-WmiObject win32_service -filter "name='WinRM'"

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Impersonation

Gibt die zu verwendende Identitätswechselebene an.

Die zulässigen Werte für diesen Parameter sind:

  • 0: Standard-. Liest die lokale Registrierung für die Standardidentitätswechselebene. Der Standardwert ist in der Regel auf Identitätswechselfestgelegt.
  • 1: Anonyme. Blendet die Anmeldeinformationen des Aufrufers aus.
  • 2: Identifizieren. Ermöglicht Es Objekten, die Anmeldeinformationen des Aufrufers abzufragen.
  • 3: Identitätswechsel. Ermöglicht es Objekten, die Anmeldeinformationen des Aufrufers zu verwenden.
  • 4: Delegat. Ermöglicht Objekten die Verwendung der Anmeldeinformationen des Aufrufers für andere Objekte.
Typ:ImpersonationLevel
Zulässige Werte:Default, Anonymous, Identify, Impersonate, Delegate
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-List

Ruft die Namen der WMI-Klassen im WMI-Repositorynamespace ab, der durch den Namespace Parameter angegeben wird.

Wenn Sie den Parameter List angeben, aber nicht den parameter Namespace, verwendet Get-WmiObject standardmäßig den Root\Cimv2--Namespace. Dieses Cmdlet verwendet nicht den Standardnamespace Registrierungseintrag im HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\Scripting Registrierungsschlüssel, um den Standardnamespace zu bestimmen.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Locale

Gibt das bevorzugte Gebietsschema für WMI-Objekte an. Geben Sie einen Wert in MS_<LCID> Format ein.

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Namespace

Bei Verwendung mit dem Parameter Class gibt der parameter Namespace den WMI-Repositorynamespace an, in dem sich die angegebene WMI-Klasse befindet. Bei Verwendung mit dem parameter List gibt sie den Namespace an, aus dem WMI-Klasseninformationen gesammelt werden sollen.

Typ:String
Aliase:NS
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Property

Gibt die WMI-Klasseneigenschaften an, aus denen dieses Cmdlet Informationen abruft. Geben Sie die Eigenschaftennamen ein.

Typ:String[]
Position:1
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Query

Führt die angegebene WMI Query Language (WQL)-Anweisung aus. Dieser Parameter unterstützt keine Ereignisabfragen.

Typ:String
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Recurse

Durchsucht den aktuellen Namespace und alle anderen Namespaces nach dem Klassennamen, der durch den Parameter Class angegeben wird.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-ThrottleLimit

Gibt die maximale Anzahl von WMI-Vorgängen an, die gleichzeitig ausgeführt werden können. Dieser Parameter ist nur gültig, wenn der AsJob Parameter im Befehl verwendet wird.

Typ:Int32
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

Eingaben

None

Sie können eingaben nicht an Get-WmiObjectweitergeleitet werden.

Ausgaben

PSObject or System.Management.Automation.RemotingJob

Wenn Sie den parameter AsJob verwenden, gibt das Cmdlet ein Auftragsobjekt zurück. Andernfalls hängt das Get-WmiObject zurückgegebene Objekt vom Wert des Class-Parameters ab.

Hinweise

Windows PowerShell enthält die folgenden Aliase für Get-WmiObject:

  • gwmi

Um auf WMI-Informationen auf einem Remotecomputer zuzugreifen, muss das Cmdlet unter einem Konto ausgeführt werden, das Mitglied der lokalen Administratorgruppe auf dem Remotecomputer ist. Oder die Standardzugriffskontrolle im WMI-Namespace des Remoterepositorys kann geändert werden, um Zugriffsrechte für andere Konten zu gewähren.

Standardmäßig werden nur einige der Eigenschaften jeder WMI-Klasse angezeigt. Der Satz von Eigenschaften, die für jede WMI-Klasse angezeigt werden, wird in der konfigurationsdatei Types.ps1xml angegeben. Verwenden Sie zum Abrufen aller Eigenschaften eines WMI-Objekts die cmdlets Get-Member oder Format-List.