Invoke-CimMethod
Ruft eine Methode einer CIM-Klasse auf.
Syntax
Invoke-CimMethod
[-ClassName] <String>
[-ComputerName <String[]>]
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-CimMethod
[-ClassName] <String>
-CimSession <CimSession[]>
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-CimMethod
-ResourceUri <Uri>
[-ComputerName <String[]>]
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-CimMethod
[-ResourceUri <Uri>]
[-InputObject] <CimInstance>
-CimSession <CimSession[]>
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-CimMethod
[-ResourceUri <Uri>]
[-InputObject] <CimInstance>
[-ComputerName <String[]>]
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-CimMethod
-ResourceUri <Uri>
-CimSession <CimSession[]>
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-CimMethod
[-CimClass] <CimClass>
[-ComputerName <String[]>]
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-CimMethod
[-CimClass] <CimClass>
-CimSession <CimSession[]>
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-CimMethod
-Query <String>
[-QueryDialect <String>]
[-ComputerName <String[]>]
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-CimMethod
-Query <String>
[-QueryDialect <String>]
-CimSession <CimSession[]>
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Beschreibung
Dieses Cmdlet ist nur auf der Windows-Plattform verfügbar.
Das Invoke-CimMethod
Cmdlet ruft eine Methode einer CIM-Klasse oder CIM-Instanz mithilfe der durch den Arguments-Parameter angegebenen Name-Wert-Paare auf.
Wenn der InputObject-Parameter nicht angegeben ist, funktioniert das Cmdlet auf eine der folgenden Arten:
- Wenn weder der Parameter ComputerName noch der CimSession-Parameter angegeben ist, funktioniert dieses Cmdlet unter Verwendung einer COM-Sitzung (Component Object Model) für die lokale Windows-Verwaltungsinstrumentation (Windows Management Instrumentation, WMI).
- Wenn entweder der Parameter ComputerName oder der CimSession-Parameter angegeben ist, funktioniert dieses Cmdlet mit dem CIM-Server, der entweder durch den ComputerName-Parameter oder den CimSession-Parameter angegeben wird.
Wenn der InputObject-Parameter angegeben ist, funktioniert das Cmdlet auf eine der folgenden Arten:
- Wenn weder der Parameter ComputerName noch der CimSession-Parameter angegeben wird, verwendet dieses Cmdlet den CIM-Sitzungs- oder Computernamen aus dem Eingabeobjekt.
- Wenn der Parameter ComputerName oder der CimSession-Parameter angegeben ist, verwendet dieses Cmdlet entweder den CimSession-Parameterwert oder den ComputerName-Parameterwert. Dieses Szenario tritt allerdings nur selten auf.
Beispiele
Beispiel 1: Aufrufen einer Methode
In diesem Beispiel wird die Terminate-Methode der klasse Win32_Process aufgerufen.
Invoke-CimMethod -Query 'select * from Win32_Process where name like "notepad%"' -MethodName "Terminate"
Beispiel 2: Aufrufen einer Methode mithilfe des CIM-Instanzobjekts
In diesem Beispiel wird das CIM-Instanzobjekt abgerufen und in einer Variablen mit dem Namen $x
des Get-CimInstance
Cmdlets gespeichert. Der Inhalt der Variablen wird dann als InputObject für das Invoke-CimMethod
Cmdlet verwendet. Die GetOwner-Methode wird für die CimInstance aufgerufen.
$x = Get-CimInstance -Query 'Select * from Win32_Process where name like "notepad%"'
Invoke-CimMethod -InputObject $x -MethodName GetOwner
Beispiel 3: Aufrufen einer statischen Methode mithilfe von Argumenten
In diesem Beispiel wird die Create-Methode mit dem Parameter Arguments aufgerufen.
Invoke-CimMethod -ClassName Win32_Process -MethodName "Create" -Arguments @{
CommandLine = 'notepad.exe'; CurrentDirectory = "C:\windows\system32"
}
Beispiel 4: Clientseitige Überprüfung
In diesem Beispiel wird die clientseitige Überprüfung für die xyz-Methode ausgeführt, indem ein CimClass-Objekt an Invoke-CimMethod
übergeben wird.
$c = Get-CimClass -ClassName Win32_Process
Invoke-CimMethod -CimClass $c -MethodName "xyz" -Arguments @{ CommandLine = 'notepad.exe' }
Parameter
-Arguments
Gibt die Parameter an, die an die aufgerufene Methode übergeben werden sollen. Geben Sie die Werte für diesen Parameter als Name-Wert-Paare an, die in einer Hashtabelle gespeichert sind. Die Reihenfolge der eingegebenen Werte ist nicht wichtig.
Typ: | IDictionary |
Position: | 1 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-CimClass
Gibt ein CIM-Klassenobjekt an, das eine CIM-Klassendefinition auf dem Server darstellt. Verwenden Sie diesen Parameter beim Aufrufen einer statischen Methode einer Klasse.
Sie können das Get-CimClass
Cmdlet verwenden, um eine Klassendefinition vom Server abzurufen.
Die Verwendung dieses Parameters führt zu besseren clientseitigen Schemaüberprüfungen.
Typ: | CimClass |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-CimSession
Führt den Befehl mithilfe der angegebenen CIM-Sitzung aus. Geben Sie eine Variable ein, die die CIM-Sitzung enthält, oder einen Befehl, der die CIM-Sitzung erstellt oder abruft, z. B. die New-CimSession
Oder Get-CimSession
Cmdlets. Weitere Informationen finden Sie unter about_CimSession.
Typ: | CimSession[] |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-ClassName
Gibt den Namen der CIM-Klasse an, für die der Vorgang ausgeführt werden soll. Dieser Parameter wird nur für statische Methoden verwendet. Sie können den Tabstoppabschluss verwenden, um die Liste der Klassen zu durchsuchen, da PowerShell eine Liste von Klassen vom lokalen WMI-Server abruft, um eine Liste der Klassennamen bereitzustellen.
Typ: | String |
Aliase: | Class |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-ComputerName
Gibt den Namen des Computers an, auf dem Der CIM-Vorgang ausgeführt werden soll. Sie können einen vollqualifizierten Domänennamen (Fully Qualified Domain Name, FQDN), einen NetBIOS-Namen oder eine IP-Adresse angeben.
Bei Verwendung dieses Parameters erstellt das Cmdlet mithilfe des WsMan-Protokolls eine temporäre Sitzung auf dem angegebenen Computer. Andernfalls führt das Cmdlet den Vorgang auf dem lokalen Computer mithilfe des Component Object Model (COM) aus.
Stellen Sie eine Verbindung mit einer CIM-Sitzung her, um eine bessere Leistung zu erzielen, wenn mehrere Vorgänge auf demselben Computer ausgeführt werden.
Typ: | String[] |
Aliase: | CN, ServerName |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Confirm
Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.
Typ: | SwitchParameter |
Aliase: | cf |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-InputObject
Gibt ein CIM-Instanzobjekt an, das als Eingabe zum Aufrufen einer Methode verwendet werden soll. Dieser Parameter kann nur zum Aufrufen von Instanzmethoden verwendet werden. Um statische Klassenmethoden aufzurufen, verwenden Sie den Parameter "Class " oder den CimClass-Parameter .
Typ: | CimInstance |
Aliase: | CimInstance |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-MethodName
Gibt den Namen der zu aufrufenden CIM-Methode an. Dieser Parameter ist erforderlich und kann nicht NULL oder leer sein. Verwenden Sie zum Aufrufen der statischen Methode einer CIM-Klasse den Parameter "ClassName " oder " CimClass ".
Typ: | String |
Aliase: | Name |
Position: | 2 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Namespace
Gibt den Namespace für den CIM-Vorgang an. Der Standardnamespace ist root/cimv2. Sie können die Registerkartenabschluss verwenden, um die Liste der Namespaces zu durchsuchen, da PowerShell eine Liste von Namespaces vom lokalen WMI-Server abruft, um die Liste der Namespaces bereitzustellen.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-OperationTimeoutSec
Gibt die Zeitspanne an, die das Cmdlet auf eine Antwort vom Computer wartet. Standardmäßig ist der Wert 0, was bedeutet, dass das Cmdlet den Standardtimeoutwert für den Server verwendet.
Wenn der Parameter "OperationTimeoutSec " auf einen Wert festgelegt ist, der kleiner als das Standardzeitlimit der Verbindung von 3 Minuten ist, können Netzwerkfehler, die länger als der Wert des OperationTimeoutSec-Parameters dauern, nicht wiederhergestellt werden.
Typ: | UInt32 |
Aliase: | OT |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Query
Gibt eine Abfrage an, die auf dem CIM-Server ausgeführt werden soll. Eine Methode wird für die Instanzen aufgerufen, die als Ergebnis der Abfrage empfangen wurden. Sie können den Abfragedialekt mithilfe des QueryDialect-Parameters angeben.
Wenn der angegebene Wert doppelte Anführungszeichen ("
), einfache Anführungszeichen ('
) oder einen umgekehrten Schrägstrich (\
) enthält, müssen Sie diese Zeichen escapen, indem Sie sie dem umgekehrten Schrägstrich (\
) voranstellen. Wenn der angegebene Wert den WQL LIKE-Operator verwendet, müssen Sie die folgenden Zeichen escapen, indem Sie sie in eckige Klammern (): Prozent ([]
%
), Unterstrich (_
) oder öffnende eckige Klammer ([
) einschließen.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-QueryDialect
Gibt die Abfragesprache an, die für den Abfrageparameter verwendet wird. Die zulässigen Werte für diesen Parameter sind: WQL oder CQL.
Der Standardwert ist WQL.
Typ: | String |
Position: | Named |
Standardwert: | WQL |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-ResourceUri
Gibt den URI (Uniform Resource Identifier) der Ressourcenklasse oder -instanz an. Der URI wird verwendet, um einen bestimmten Ressourcentyp auf einem Computer zu identifizieren, z. B. Datenträger oder Prozesse.
Ein URI besteht aus einem Präfix und einem Pfad zu einer Ressource. Zum Beispiel:
http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_LogicalDisk
http://intel.com/wbem/wscim/1/amt-schema/1/AMT_GeneralSettings
Wenn Sie diesen Parameter nicht angeben, wird standardmäßig der DMTF-Standardressourcen-URI http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/
verwendet, und der Klassenname wird an ihn angefügt.
ResourceURI kann nur mit CIM-Sitzungen verwendet werden, die mit dem WSMan-Protokoll erstellt wurden, oder beim Angeben des ComputerName-Parameters , der eine CIM-Sitzung mit WSMan erstellt.
Wenn Sie diesen Parameter ohne Angabe des ComputersName-Parameters angeben oder eine MIT DCOM-Protokoll erstellte CIM-Sitzung angeben, wird ein Fehler angezeigt. Das DCOM-Protokoll unterstützt den ResourceURI-Parameter nicht.
Wenn sowohl der Parameter "ResourceUri" als auch der Parameter "Filter" angegeben werden, wird der Parameter "Filter" ignoriert.
Typ: | Uri |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-WhatIf
Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Typ: | SwitchParameter |
Aliase: | wi |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
Sie können eine CIM-Klasse an dieses Cmdlet weiterleiten.
Sie können eine CIM-Instanz an dieses Cmdlet weiterleiten.
Ausgaben
Dieses Cmdlet gibt ein Objekt zurück.
Hinweise
PowerShell enthält die folgenden Aliase für Invoke-CimMethod
:
- Windows:
icim
Dieses Cmdlet ist nur auf Windows-Plattformen verfügbar.