Freigeben über


Get-WmiObject

Ruft Instanzen von Klassen der Windows-Verwaltungsinstrumentation (Windows Management Instrumentation, WMI) 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 Get-WmiObject Cmdlet ruft Instanzen von WMI-Klassen oder Informationen zu den verfügbaren WMI-Klassen ab. Verwenden Sie den Parameter "ComputerName ", um einen Remotecomputer anzugeben. 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 Query-Parameter angegeben ist, führt das Cmdlet eine WMI-Abfragesprache (WQL)-Anweisung aus.

Das Get-WmiObject Cmdlet verwendet keine Windows PowerShell-Remoting zum Ausführen von Remotevorgängen. Sie können den Parameter "ComputerName " des Get-WmiObject Cmdlets auch dann verwenden, 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 verfügt die __Server-Eigenschaft des zurückgegebenen Objekts Get-WmiObject über einen PSComputerName-Alias . Dadurch kann der Quellcomputername leichter in die Ausgabe und in Berichte aufgenommen werden.

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 Gruppe "Administratoren " 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 Format-List Cmdlet, das die PSComputerName-Eigenschaft zur Standardausgabe hinzufügt. PSComputerName ist ein Alias der __Server-Eigenschaft der objekte, die Get-WmiObject zurückgegeben werden. 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 Stop-Service Cmdlets.

Beispiel 6: Abrufen des BIOS auf dem lokalen Computer

In diesem Beispiel werden die BIOS-Informationen vom lokalen Computer abgerufen. Der Parameter Property des Format-List Cmdlets wird verwendet, um alle Eigenschaften des zurückgegebenen Objekts in einer Liste anzuzeigen. Standardmäßig werden nur die in der Types.ps1xml Konfigurationsdatei 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 Get-WmiObject Cmdlets 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

Hinweis

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

Parameter

-Amended

Ruft einen Wert ab, der angibt, ob die von WMI zurückgegebenen Objekte ergänzte Informationen enthalten sollen, oder legt diesen Wert fest. Normalerweise handelt es sich bei ergänzten Informationen um lokalisierbare Informationen, die an das WMI-Objekt angefügt sind, z. B. Objekt- und Eigenschaftenbeschreibungen.

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, deren Ausführung viel Zeit in Anspruch nimmt.

Wenn Sie den AsJob-Parameter verwenden, gibt der Befehl ein Objekt zurück, das den Hintergrundauftrag darstellt, und zeigt dann die Eingabeaufforderung an. Sie können die Sitzung weiterhin verwenden, während der Auftrag abgeschlossen wird. Wenn Get-WmiObject der 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 Receive-Job Cmdlet, 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 für die WMI-Verbindung zu verwendende Authentifizierungsebene an. Gültige Werte sind:

  • -1: Unverändert
  • 0: Standard
  • 1: Keine (keine Authentifizierung ausgeführt.)
  • 2: Verbinden (Authentifizierung wird nur ausgeführt, wenn der Client eine Beziehung mit der Anwendung herstellt.)
  • 3: Anruf (Die Authentifizierung wird nur am Anfang jedes Anrufs ausgeführt, wenn die Anwendung die Anforderung empfängt.)
  • 4: Paket (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 Standard-NTLM- oder Kerberos-Authentifizierung angeben. Um NTLM zu verwenden, legen Sie die Autoritätseinstellung auf ntlmdomain:<DomainName>, wobei <DomainName> ein gültiger NTLM-Domänenname identifiziert wird. Um Kerberos zu verwenden, geben Sie an kerberos:<DomainName>\<ServerName>. Sie können die Authority-Einstellung 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 als der lokale Computer befindet, ist der vollqualifizierte Domänenname erforderlich.

Die Standardeinstellung ist der lokale Computer. Um den lokalen Computer anzugeben, z. B. in einer Liste der Computernamen, verwenden localhostSie den lokalen Computernamen oder einen Punkt (.).

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

Dieser Parameter beruht nicht auf Windows PowerShell-Remoting, bei dem die WS-Verwaltung verwendet wird. Sie können den Parameter Get-WmiObject "ComputerName" auch dann verwenden, wenn Ihr Computer nicht für die Ausführung von Remotebefehlen für die WS-Verwaltung 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. Der Standardwert ist der aktuelle Benutzer. Geben Sie einen Benutzernamen ein, z User01. B. , Domain01\User01oder User@Contoso.com. Oder geben Sie ein PSCredential-Objekt ein, z. B. ein Objekt, das vom Get-Credential Cmdlet zurückgegeben wird. Wenn Sie einen Benutzernamen eingeben, werden Sie zur Eingabe eines Kennworts aufgefordert. 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 Direktzugriff auf den WMI-Anbieter für die angegebene Klasse angefordert wird, unabhängig von deren Basisklasse oder abgeleiteten Klassen.

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 ausfü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 WQL (WMI Query Language)-Syntax.

Wichtig

Schließen Sie das Where-Schlüsselwort nicht in den Wert des Parameters ein. Die folgenden Befehle geben z. B. nur die logischen Datenträger mit einer DeviceID von c: und Diensten zurück, die den 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.

Zulässige Werte für diesen Parameter:

  • 0: Standard. Liest die lokale Registrierung für die Standardidentitätswechselebene. Der Standardwert ist in der Regel auf Identitätswechsel festgelegt.
  • 1: Anonym. Verbirgt die Anmeldeinformationen des Aufrufers.
  • 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: Delegieren. Ermöglicht es Objekten, anderen Objekten die Verwendung der Anmeldeinformationen des Aufrufers zu gestatten.
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 vom Namespace-Parameter angegeben wird.

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

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 im 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 List-Parameter 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 an.

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. Von diesem Parameter werden keine Ereignisabfragen unterstützt.

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 der WMI-Vorgänge 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 keine Eingabe an Get-WmiObject.

Ausgaben

PSObject or System.Management.Automation.RemotingJob

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

Hinweise

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

  • gwmi

Für den Zugriff auf WMI-Informationen auf einem Remotecomputer muss das Cmdlet unter einem Konto ausgeführt werden, das auf dem Remotecomputer Mitglied der lokalen Administratorengruppe ist. Die Standardzugriffssteuerung für den WMI-Namespace des Remote-Repositorys kann auch so geändert werden, dass anderen Konten Zugriffsrechte gewährt werden.

Standardmäßig werden nur einige Eigenschaften einer WMI-Klasse angezeigt. Der Satz von Eigenschaften, die für jede WMI-Klasse angezeigt werden, wird in der Types.ps1xml Konfigurationsdatei angegeben. Um alle Eigenschaften eines WMI-Objekts abzurufen, verwenden Sie die Get-Member Oder Format-List Cmdlets.