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-CimInstance
ersetzt.
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ändert0
: Standard1
: 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 localhost
Sie 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\User01
oder 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.