Invoke-CimMethod
Ruft eine Methode einer CIM-Klasse auf.
Syntax
ClassNameComputerSet (Standard)
Invoke-CimMethod
[-ClassName] <String>
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-ComputerName <String[]>]
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ClassNameSessionSet
Invoke-CimMethod
[-ClassName] <String>
[[-Arguments] <IDictionary>]
[-MethodName] <String>
-CimSession <CimSession[]>
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ResourceUriSessionSet
Invoke-CimMethod
[[-Arguments] <IDictionary>]
[-MethodName] <String>
-ResourceUri <Uri>
-CimSession <CimSession[]>
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ResourceUriComputerSet
Invoke-CimMethod
[[-Arguments] <IDictionary>]
[-MethodName] <String>
-ResourceUri <Uri>
[-ComputerName <String[]>]
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
CimInstanceComputerSet
Invoke-CimMethod
[-InputObject] <CimInstance>
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-ResourceUri <Uri>]
[-ComputerName <String[]>]
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
CimInstanceSessionSet
Invoke-CimMethod
[-InputObject] <CimInstance>
[[-Arguments] <IDictionary>]
[-MethodName] <String>
-CimSession <CimSession[]>
[-ResourceUri <Uri>]
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
CimClassSessionSet
Invoke-CimMethod
[-CimClass] <CimClass>
[[-Arguments] <IDictionary>]
[-MethodName] <String>
-CimSession <CimSession[]>
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
CimClassComputerSet
Invoke-CimMethod
[-CimClass] <CimClass>
[[-Arguments] <IDictionary>]
[-MethodName] <String>
[-ComputerName <String[]>]
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
QuerySessionSet
Invoke-CimMethod
[[-Arguments] <IDictionary>]
[-MethodName] <String>
-Query <String>
-CimSession <CimSession[]>
[-QueryDialect <String>]
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
QueryComputerSet
Invoke-CimMethod
[[-Arguments] <IDictionary>]
[-MethodName] <String>
-Query <String>
[-QueryDialect <String>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-OperationTimeoutSec <UInt32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Beschreibung
Das Cmdlet Invoke-CimMethod ruft eine Methode einer CIM-Klasse oder CIM-Instanz unter Verwendung der Name-Wert-Paare auf, die durch den Parameter Arguments angegeben werden.
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 Parameter InputObject angegeben ist, funktioniert das Cmdlet auf eine der folgenden Arten:
- Wenn weder der ComputerName-Parameter noch der CimSession-Parameter angegeben ist, verwendet dieses Cmdlet die CIM-Sitzung oder den Computernamen aus dem Eingabeobjekt.
- Wenn der Parameter ComputerName oder CimSession angegeben ist, verwendet dieses Cmdlet entweder den Parameterwert CimSession oder den Parameterwert ComputerName. Hinweis: Dies ist nicht sehr häufig.
Beispiele
Beispiel 1: Aufrufen einer Methode
Invoke-CimMethod -Query 'select * from Win32_Process where name like "notepad%"' -MethodName "Terminate"
Mit diesem Befehl wird die Methode Terminate für die CIM-Klasse mit dem Namen Win32_Process aufgerufen. Die CIM-Klasse wird durch die Abfrage "Select * from Win32_Process where name like 'notepad%'" abgerufen.
Beispiel 2: Aufrufen einer Methode mithilfe des CIM-Instanzobjekts
$x = Get-CimInstance -Query 'Select * from Win32_Process where name like "notepad%"'
Invoke-CimMethod -InputObject $x -MethodName GetOwner
Mit diesem Befehlssatz wird das CIM-Instanzobjekt abgerufen und mit dem Cmdlet Get-CimInstance in einer Variablen mit dem Namen $x gespeichert. Der Inhalt der Variablen wird dann als InputObject für das Cmdlet Invoke-CimMethod verwendet, und die GetOwner-Methode wird für die CimInstance aufgerufen.
Beispiel 3: Aufrufen einer statischen Methode
Invoke-CimMethod -ClassName Win32_Process -MethodName "Create" -Arguments @{ Path = "notepad.exe" }
Mit diesem Befehl wird die statische Methode Create für die Klasse mit dem Namen Win32_Process mit den Argumenten aufgerufen, die durch den Parameter Arguments angegeben werden.
Beispiel 4: Aufrufen einer Methode mithilfe von Argumenten
Invoke-CimMethod -ClassName Win32_Process -MethodName "Create" -Arguments @{ CommandLine = 'notepad.exe'; CurrentDirectory = "C:\windows\system32" }
Mit diesem Befehl wird die Methode Create mithilfe des Arguments Parameters aufgerufen.
Beispiel 5: Clientseitige Validierung
$c = Get-CimClass -ClassName Win32_Process
Invoke-CimMethod -CimClass $c -MethodName "xyz" -Arguments @{ CommandLine = 'notepad.exe' }
Dieser Satz von Befehlen führt eine clientseitige Überprüfung für die Methode mit dem Namen xyz durch, indem ein CimClass-Objekt an das Cmdlet Invoke-CimMethod übergeben wird.
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.
Parametereigenschaften
| Typ: | IDictionary |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | 1 |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | 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 Cmdlet Get-CimClass verwenden, um eine Klassendefinition vom Server abzurufen.
Die Verwendung dieses Parameters führt zu besseren clientseitigen Schemaüberprüfungen.
Parametereigenschaften
| Typ: | CimClass |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
CimClassSessionSet
| Position: | 0 |
| Obligatorisch: | True |
| Wert aus Pipeline: | True |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
CimClassComputerSet
| Position: | 0 |
| Obligatorisch: | True |
| Wert aus Pipeline: | True |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | 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_CimSessions.
Parametereigenschaften
| Typ: | CimSession[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
ClassNameSessionSet
| Position: | Named |
| Obligatorisch: | True |
| Wert aus Pipeline: | True |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
CimInstanceSessionSet
| Position: | Named |
| Obligatorisch: | True |
| Wert aus Pipeline: | True |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
CimClassSessionSet
| Position: | Named |
| Obligatorisch: | True |
| Wert aus Pipeline: | True |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
QuerySessionSet
| Position: | Named |
| Obligatorisch: | True |
| Wert aus Pipeline: | True |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | 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. Hinweis: Sie können die Tabulatorvervollständigung verwenden, um die Liste der Klassen zu durchsuchen, da Windows PowerShell eine Liste der Klassen vom lokalen WMI-Server abruft, um eine Liste der Klassennamen bereitzustellen.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | Klasse |
Parametersätze
ClassNameComputerSet
| Position: | 0 |
| Obligatorisch: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
ClassNameSessionSet
| Position: | 0 |
| Obligatorisch: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | 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.
Wenn Sie diesen Parameter angeben, erstellt das Cmdlet mithilfe des WsMan-Protokolls eine temporäre Sitzung auf dem angegebenen Computer.
Wenn Sie diesen Parameter nicht angeben, führt das Cmdlet den Vorgang auf dem lokalen Computer mithilfe des Component Object Model (COM) aus.
Wenn mehrere Vorgänge auf demselben Computer ausgeführt werden, bietet die Verbindung mit einer CIM-Sitzung eine bessere Leistung.
Parametereigenschaften
| Typ: | String[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | China, Servername |
Parametersätze
ClassNameComputerSet
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
ResourceUriComputerSet
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
CimClassComputerSet
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
QueryComputerSet
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
-Confirm
Fordert Sie zur Bestätigung auf, bevor Sie das Cmdlet ausführen.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | False |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | vgl |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | 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. Verwenden Sie zum Aufrufen statischer Klassenmethoden den Class-Parameter oder den CimClass-Parameter.
Parametereigenschaften
| Typ: | CimInstance |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | CimInstance |
Parametersätze
CimInstanceComputerSet
| Position: | 0 |
| Obligatorisch: | True |
| Wert aus Pipeline: | True |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
CimInstanceSessionSet
| Position: | 0 |
| Obligatorisch: | True |
| Wert aus Pipeline: | True |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-MethodName
Gibt den Namen der zu aufrufenden CIM-Methode an. Dieser Parameter ist obligatorisch und darf nicht null oder leer sein.
Um eine statische Methode einer CIM-Klasse aufzurufen, verwenden Sie den Parameter ClassName oder CimClass.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | Name |
Parametersätze
(All)
| Position: | 2 |
| Obligatorisch: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
-Namespace
Gibt den Namespace für den CIM-Vorgang an.
Der Standardnamespace ist root/cimv2. Sie können die Registerkartenvervollständigung verwenden, um die Liste der Namespaces zu durchsuchen, da PowerShell eine Liste der Namespaces vom lokalen WMI-Server abruft, um die Liste der Namespaces bereitzustellen.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
ClassNameComputerSet
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
ClassNameSessionSet
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
ResourceUriSessionSet
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
ResourceUriComputerSet
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
QuerySessionSet
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
QueryComputerSet
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | 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 robuste Verbindungsretrytimeout von 3 Minuten ist, können Netzwerkfehler, die mehr als der Wert des OperationTimeoutSec-Parameters dauern, nicht wiederhergestellt werden, da der Vorgang auf dem Server zu einem Timeout vor dem erneuten Herstellen der Verbindung führen kann.
Parametereigenschaften
| Typ: | UInt32 |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | OT |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Query
Gibt eine Abfrage an, die auf dem CIM-Server ausgeführt werden soll. Für die Instanzen, die Sie als Ergebnis der Abfrage erhalten, wird eine Methode aufgerufen.
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 ([]) einschließen: Prozent (%), Unterstrich (_) oder öffnende eckige Klammer ([).
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
QuerySessionSet
| Position: | Named |
| Obligatorisch: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
QueryComputerSet
| Position: | Named |
| Obligatorisch: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | 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.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
QuerySessionSet
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
QueryComputerSet
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
-ResourceUri
Gibt den URI (Uniform Resource Identifier) der Ressourcenklasse oder -instanz an. Der URI wird verwendet, um einen bestimmten Ressourcentyp zu identifizieren, z. B. Datenträger oder Prozesse, auf einem Computer.
Ein URI besteht aus einem Präfix und einem Pfad zu einer Ressource. Beispiel:
https://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 URI der DMTF-Standardressource http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/ verwendet, und der Klassenname wird daran 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, da das DCOM-Protokoll den ResourceURI-Parameter nicht unterstützt.
Wenn sowohl der Parameter "ResourceUri" als auch der Parameter "Filter" angegeben werden, wird der Parameter "Filter" ignoriert.
Parametereigenschaften
| Typ: | Uri |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
ResourceUriSessionSet
| Position: | Named |
| Obligatorisch: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
ResourceUriComputerSet
| Position: | Named |
| Obligatorisch: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
-WhatIf
Zeigt, was passiert, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | False |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | Wi |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
CommonParameters
Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.
Eingaben
CIM class
Dieses Cmdlet akzeptiert eine CIM-Klasse als Eingabeobjekt.
CIM instance
Dieses Cmdlet akzeptiert eine CIM-Instanz als Eingabeobjekt.
Ausgaben
PSCustomObject
Dieses Cmdlet gibt ein Objekt zurück.