Freigeben über


Invoke-CimMethod

Ruft eine Methode einer CIM-Klasse auf.

Syntax

ClassNameComputerSet (Standardwert)

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>]

ResourceUriComputerSet

Invoke-CimMethod
    [[-Arguments] <IDictionary>]
    [-MethodName] <String>
    -ResourceUri <Uri>
    [-ComputerName <String[]>]
    [-Namespace <String>]
    [-OperationTimeoutSec <UInt32>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

CimInstanceSessionSet

Invoke-CimMethod
    [-InputObject] <CimInstance>
    [[-Arguments] <IDictionary>]
    [-MethodName] <String>
    -CimSession <CimSession[]>
    [-ResourceUri <Uri>]
    [-OperationTimeoutSec <UInt32>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

CimInstanceComputerSet

Invoke-CimMethod
    [-InputObject] <CimInstance>
    [[-Arguments] <IDictionary>]
    [-MethodName] <String>
    [-ResourceUri <Uri>]
    [-ComputerName <String[]>]
    [-OperationTimeoutSec <UInt32>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

ResourceUriSessionSet

Invoke-CimMethod
    [[-Arguments] <IDictionary>]
    [-MethodName] <String>
    -ResourceUri <Uri>
    -CimSession <CimSession[]>
    [-Namespace <String>]
    [-OperationTimeoutSec <UInt32>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

CimClassComputerSet

Invoke-CimMethod
    [-CimClass] <CimClass>
    [[-Arguments] <IDictionary>]
    [-MethodName] <String>
    [-ComputerName <String[]>]
    [-OperationTimeoutSec <UInt32>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

CimClassSessionSet

Invoke-CimMethod
    [-CimClass] <CimClass>
    [[-Arguments] <IDictionary>]
    [-MethodName] <String>
    -CimSession <CimSession[]>
    [-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>]

QuerySessionSet

Invoke-CimMethod
    [[-Arguments] <IDictionary>]
    [-MethodName] <String>
    -Query <String>
    -CimSession <CimSession[]>
    [-QueryDialect <String>]
    [-Namespace <String>]
    [-OperationTimeoutSec <UInt32>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Beschreibung

Dieses Cmdlet ist nur auf der Windows-Plattform verfügbar.

Das Cmdlet Invoke-CimMethod ruft eine Methode einer CIM-Klasse oder CIM-Instanz unter Verwendung der durch den Parameter Arguments angegebenen Name-Wert-Paare auf.

Wenn der parameter InputObject 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 lokale Windows-Verwaltungsinstrumentation (Windows Management Instrumentation, WMI).
  • Wenn entweder der Parameter ComputerName oder der Parameter CimSession angegeben ist, funktioniert dieses Cmdlet mit dem CIM-Server, der durch entweder den Parameter ComputerName oder CimSession 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 wird, verwendet dieses Cmdlet den CIM-Sitzungs- oder Computernamen aus dem Eingabeobjekt.
  • Wenn entweder der Parameter ComputerName oder der Parameter CimSession angegeben wird, dann verwendet dieses Cmdlet entweder den Wert des Parameters CimSession oder den Wert des Parameters ComputerName. Dies ist kein häufiges Szenario.

Beispiele

Beispiel 1: Aufrufen einer Methode

Dieses Beispiel ruft die Methode Terminate der Klasse Win32_Process auf.

$method = @{
  Query = 'select * from Win32_Process where name like "notepad%"'
  MethodName = "Terminate"
}
Invoke-CimMethod @method

Beispiel 2: Aufrufen einer Methode mithilfe des CIM-Instanzobjekts

In diesem Beispiel wird das CIM-Instanzobjekt abgerufen und in einer Variablen namens $x mithilfe des Cmdlets Get-CimInstance gespeichert. Der Inhalt der Variablen wird dann als InputObject für das Cmdlet Invoke-CimMethod genutzt. Die Methode GetOwner 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 aufgerufen, die mit dem Parameter Arguments benannt wird.

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 Foo--Methode ausgeführt, indem ein CimClass--Objekt an Invoke-CimMethodübergeben wird.

$c = Get-CimClass -ClassName Win32_Process
Invoke-CimMethod -CimClass $c -MethodName "Foo" -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.

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

CimClassComputerSet
Position:0
Obligatorisch.:True
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
CimClassSessionSet
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_CimSession.

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
ResourceUriSessionSet
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. Sie können die Tab-Vervollständigung 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.

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.

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 über eine CIM-Sitzung her, um die Leistung zu verbessern, wenn mehrere Operationen auf demselben Computer ausgeführt werden.

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
CimInstanceComputerSet
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. Um statische Klassenmethoden aufzurufen, verwenden Sie den parameter Class oder den parameter CimClass.

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 die statische Methode einer CIM-Klasse aufzurufen, verwenden Sie den ClassName- oder den CimClass-Parameter.

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
ResourceUriComputerSet
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
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 OperationTimeoutSec-Parameter auf einen Wert festgelegt ist, der kleiner als das Standardzeitlimit für Verbindungswiederholungsversuche von 3 Minuten ist, können Netzwerkfehler, die länger als der Wert des OperationTimeoutSec-Parameters dauern, nicht wiederhergestellt werden.

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 durch einen vorangestellten umgekehrten Schrägstrich (\) ersetzen. Wenn der angegebene Wert den WQL LIKE-Operator verwendet, müssen Sie die folgenden Zeichen durch Einschließen in eckige Klammern ([]) vermeiden: 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:WQL
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:

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 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 wenn sie den ComputerName Parameter angeben, der eine CIM-Sitzung mit WSMan erstellt.

Wenn Sie diesen Parameter angeben, ohne den ComputerName Parameter anzugeben, oder wenn Sie eine MIT DCOM-Protokoll erstellte CIM-Sitzung angeben, wird ein Fehler angezeigt. Das DCOM-Protokoll unterstützt den parameter ResourceUri nicht.

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

CimInstanceComputerSet
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False
CimInstanceSessionSet
Position:Named
Obligatorisch.:False
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

CimClass

Sie können eine CIM-Klasse über die Pipeline an dieses Cmdlet übergeben.

CimInstance

Sie können eine CIM-Instanz über die Pipeline an dieses Cmdlet übergeben.

Ausgaben

PSCustomObject

Dieses Cmdlet gibt ein Objekt zurück.

Hinweise

PowerShell enthält die folgenden Aliase für Invoke-CimMethod:

  • Fenster:
    • icim

Dieses Cmdlet ist nur auf Windows-Plattformen verfügbar.