Ruft Methoden der Windows-Verwaltungsinstrumentation (Windows Management Instrumentation, WMI) auf.
Syntax
Invoke-WmiMethod [-Klasse] <string> [[-ArgumentList] <Object[]>] [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Bestätigung] [-WhatIf] [<CommonParameters>] Invoke-WmiMethod [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Bestätigung] [-WhatIf] [<CommonParameters>] Invoke-WmiMethod -InputObject <ManagementObject> [-ArgumentList <Object[]>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Bestätigung] [-WhatIf] [<CommonParameters>] Invoke-WmiMethod -Path <string> [-ArgumentList <Object[]>] [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Bestätigung] [-WhatIf] [<CommonParameters>] Invoke-WmiMethod [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Bestätigung] [-WhatIf] [<CommonParameters>] Invoke-WmiMethod [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Bestätigung] [-WhatIf] [<CommonParameters>]
Beschreibung
Das Cmdlet "Invoke-WmiMethod" ruft WMI-Methoden auf.
Parameter
-ArgumentList <Object[]>
Gibt die Parameter an, die an die aufgerufene Methode übergeben werden sollen. Bei dem Wert dieses Parameters muss es sich um ein Array mit Objekten handeln, und diese müssen in der für die aufgerufene Methode erforderlichen Reihenfolge angezeigt werden.
Wichtig: Der zweite $null-Wert ist erforderlich, da der Befehl andernfalls einen Fehler generiert, z. B. "Das Objekt des Typs 'System.Byte' kann nicht in Typ 'System.Array' umgewandelt werden".
Im Folgenden ein Beispiel, in dem ein Objektarray ($binSD) gefolgt von einem NULL-Wert ($null) verwendet wird:
PS C:\> $acl = Get-Acl test.txt
PS C:\> $binSD = $acl.GetSecurityDescriptorBinaryForm()
PS C:\> invoke-wmimethod -class Win32_SecurityDescriptorHelper -Name BinarySDToSDDL -argumentlist $binSD, $null
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben 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 Invoke-WmiMethod für einen Remotecomputer 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 Substantiv "Job" enthalten (die Job-Cmdlets). Um die Auftragsergebnisse abzurufen, verwenden Sie das Cmdlet "Receive-Job".
Hinweis: Um diesen Parameter für Remotecomputer zu verwenden, müssen lokale Computer und Remotecomputer für Remoting konfiguriert werden. Außerdem müssen Sie Windows PowerShell in Windows Vista und höheren Versionen von Windows mit der Option "Als Administrator ausführen" starten. Weitere Informationen finden Sie unter "about_Remote_Requirements".
Weitere Informationen über Windows PowerShell-Hintergrundaufträge finden Sie unter "about_Jobs" und "about_Remote_Jobs".
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Authentication <AuthenticationLevel>
Gibt die für die WMI-Verbindung zu verwendende Authentifizierungsebene an. Gültige Werte:
-1: Unchanged
0: Default
1: None (Es wird keine Authentifizierung ausgeführt.)
2: Connect (Die Authentifizierung wird nur ausgeführt, wenn der Client eine Beziehung mit der Anwendung herstellt.)
3: Call (Die Authentifizierung wird nur zu Beginn eines Aufrufs ausgeführt, wenn die Anwendung die Anforderung empfängt.)
4: Packet (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 Authentifizierungsebenen werden verwendet, und alle Daten werden verschlüsselt.)
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Authority <string>
Gibt die Autorität an, die zum Authentifizieren der WMI-Verbindung verwendet werden soll. Sie können die Standard-NTLM- oder Kerberos-Authentifizierung angeben. Legen Sie für die Verwendung von NTLM die Authority-Einstellung auf "ntlmdomain:<Domänenname>" fest, wobei <Domänenname> einen gültigen NTLM-Domänennamen darstellt. Geben Sie für die Verwendung von Kerberos "kerberos:<Domänenname\Servername>" an. Sie können die Authority-Einstellung nicht einschließen, wenn Sie eine Verbindung mit dem lokalen Computer herstellen.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Klasse <string>
Gibt die WMI-Klasse an, die eine aufzurufende statische Methode enthält.
Erforderlich? |
true |
Position? |
1 |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-ComputerName <string[]>
Gibt den Computer an, für den der Verwaltungsvorgang ausgeführt werden soll. Bei dem Wert kann es sich um einen vollqualifizierten Domänennamen, einen NetBIOS-Namen oder eine IP-Adresse handeln. Um den Namen des lokalen Computers anzugeben, verwenden Sie den Computernamen, "localhost" oder einen Punkt (.). Der lokale Computer ist der Standardwert. Wenn sich der Remotecomputer in einer anderen Domäne als der Benutzer befindet, ist ein vollqualifizierter Domänenname erforderlich. Sie können den Wert für diesen Parameter auch festlegen, indem Sie den Wert über die Pipeline an den Parameter übergeben.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Credential <PSCredential>
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. B. "User01", "Domain01\User01" oder "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 zur Eingabe eines Kennworts aufgefordert.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-EnableAllPrivileges
Aktiviert alle Berechtigungen des aktuellen Benutzers, bevor der Befehl den WMI-Aufruf ausführt.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Impersonation <ImpersonationLevel>
Gibt die zu verwendende Identitätswechselebene an. Gültige Werte:
0: Default (Liest die lokale Registrierung für die Standard-Identitätswechselebene, die normalerweise auf "3: Impersonate" festgelegt ist.)
1: Anonymous (Verbirgt die Anmeldeinformationen des Aufrufers.)
2: Identify (Ermöglicht es Objekten, die Anmeldeinformationen des Aufrufers abzufragen.)
3: Impersonate (Ermöglicht es Objekten, die Anmeldeinformationen des Aufrufers zu verwenden.)
4: Delegate (Ermöglicht es Objekten, anderen Objekten die Verwendung der Anmeldeinformationen des Aufrufers zu gestatten.)
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-InputObject <ManagementObject>
Gibt ein ManagementObject-Objekt an, das als Eingabe verwendet werden soll. Wenn dieser Parameter verwendet wird, werden alle anderen Parameter außer "Flag" und "Argument" ignoriert.
Erforderlich? |
true |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
true (ByValue) |
Platzhalterzeichen akzeptieren? |
false |
-Locale <string>
Gibt das bevorzugte Gebietsschema für WMI-Objekte an. Geben Sie den Wert des Locale-Parameters als Array im Format "MS_<LCID>" in der gewünschten Reihenfolge an.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Name <string>
Gibt den Namen der aufzurufenden Methode an. Dieser Parameter ist erforderlich und kann nicht NULL oder leer sein.
Erforderlich? |
true |
Position? |
2 |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Namespace <string>
Bei Verwendung mit dem Class-Parameter gibt dieser Parameter den WMI-Repositorynamespace an, in dem sich die WMI-Klasse bzw. das WMI-Objekt befindet, auf die oder das verwiesen wird.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Path <string>
Gibt den WMI-Objektpfad einer WMI-Klasse oder den WMI-Objektpfad einer Instanz einer WMI-Klasse an. Die angegebene Klasse oder Instanz muss die im Name-Parameter angegebene Methode enthalten.
Erforderlich? |
true |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-ThrottleLimit <int>
Hiermit kann der Benutzer einen Einschränkungswert für die Anzahl von WMI-Vorgängen angeben, die gleichzeitig ausgeführt werden können. Dieser Parameter wird zusammen mit dem AsJob-Parameter verwendet. Die Drosselungsgrenze gilt nur für den aktuellen Befehl und nicht für die Sitzung oder den Computer.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Bestätigung
Fordert Sie vor der Ausführung des Befehls zur Bestätigung auf.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-WhatIf
Beschreibt die Auswirkungen einer Ausführung des Befehls, ohne den Befehl tatsächlich auszuführen.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
<CommonParameters>
Dieses Cmdlet unterstützt die folgenden allgemeinen Parameter: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer und -OutVariable. Weitere Informationen finden Sie unter about_Commonparameters.
Eingaben und Ausgaben
Der Eingabetyp ist der Typ der Objekte, die über die Pipeline an das Cmdlet übergeben werden können. Der Rückgabetyp ist der Typ der Objekte, die das Cmdlet zurückgibt.
Eingaben |
None Dieses Cmdlet nimmt keine Eingabe an. |
Ausgaben |
None Dieses Cmdlet generiert keine Ausgabe. |
Beispiel 1
C:\PS>invoke-wmimethod -path win32_process -name create -argumentlist notepad.exe __GENUS : 2 __CLASS : __PARAMETERS __SUPERCLASS : __DYNASTY : __PARAMETERS __RELPATH : __PROPERTY_COUNT : 2 __DERIVATION : {} __SERVER : __NAMESPACE : __PATH : ProcessId : 4844 ReturnValue : 0 Beschreibung ----------- Mit diesem Befehl wird eine Instanz von Editor gestartet, indem die Create-Methode der Win32_Process-Klasse aufgerufen wird. Hinweis: Die ReturnValue-Eigenschaft wird mit 0 und die ProcessId-Eigenschaft mit einer ganzen Zahl (der nächsten Prozess-ID-Nummer) aufgefüllt, wenn der Befehl abgeschlossen wird.
Beispiel 2
C:\PS>invoke-wmimethod -path "CIM_DataFile.Name='C:\scripts\test.txt'" -Name Rename -ArgumentList "C:\scripts\test_bu.txt" __GENUS : 2 __CLASS : __PARAMETERS __SUPERCLASS : __DYNASTY : __PARAMETERS __RELPATH : __PROPERTY_COUNT : 1 __DERIVATION : {} __SERVER : __NAMESPACE : __PATH : ReturnValue : 0 Beschreibung ----------- Mit diesem Befehl wird eine Datei umbenannt. Er verweist mithilfe des Path-Parameters auf eine Instanz der CIM_DataFile-Klasse. Anschließend wird die Rename-Methode auf die betreffende Instanz angewendet. Hinweis: Die ReturnValue-Eigenschaft wird mit 0 aufgefüllt, wenn der Befehl abgeschlossen wird.
Siehe auch