Delen via


Invoke-CimMethod

Hiermee wordt een methode van een CIM-klasse aangeroepen.

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

Description

Deze cmdlet is alleen beschikbaar op het Windows-platform.

De Invoke-CimMethod cmdlet roept een methode van een CIM-klasse of CIM-exemplaar aan met behulp van de naam-waardeparen die zijn opgegeven door de parameter Argumenten .

Als de parameter InputObject niet is opgegeven, werkt de cmdlet op een van de volgende manieren:

  • Als noch de parameter ComputerName noch de parameter CimSession is opgegeven, werkt deze cmdlet op lokale Windows Management Instrumentation (WMI) met behulp van een COM-sessie (Component Object Model).
  • Als de parameter ComputerName of de parameter CimSession is opgegeven, werkt deze cmdlet met de CIM-server die is opgegeven door de parameter ComputerName of de parameter CimSession .

Als de parameter InputObject is opgegeven, werkt de cmdlet op een van de volgende manieren:

  • Als noch de parameter ComputerName noch de parameter CimSession is opgegeven, gebruikt deze cmdlet de CIM-sessie of computernaam van het invoerobject.
  • Als de parameter ComputerName of de parameter CimSession is opgegeven, gebruikt deze cmdlet de parameterwaarde CimSession of de parameterwaarde ComputerName . Dit is geen veelvoorkomend scenario.

Voorbeelden

Voorbeeld 1: Een methode aanroepen

In dit voorbeeld wordt de methode Terminate van de klasse Win32_Process aangeroepen.

Invoke-CimMethod -Query 'select * from Win32_Process where name like "notepad%"' -MethodName "Terminate"

Voorbeeld 2: Een methode aanroepen met behulp van het CIM-exemplaarobject

In dit voorbeeld wordt het CIM-exemplaarobject opgehaald en opgeslagen in een variabele met de naam $x met behulp van de Get-CimInstance cmdlet. De inhoud van de variabele wordt vervolgens gebruikt als het InputObject voor de Invoke-CimMethod cmdlet. De methode GetOwner wordt aangeroepen voor de CimInstance.

$x = Get-CimInstance -Query 'Select * from Win32_Process where name like "notepad%"'
Invoke-CimMethod -InputObject $x -MethodName GetOwner

Voorbeeld 3: Een statische methode aanroepen met behulp van argumenten

In dit voorbeeld wordt de Creatie-methode met de naam aangeroepen met behulp van de parameter Argumenten.

Invoke-CimMethod -ClassName Win32_Process -MethodName "Create" -Arguments @{
  CommandLine = 'notepad.exe'; CurrentDirectory = "C:\windows\system32"
}

Voorbeeld 4: Validatie aan clientzijde

In dit voorbeeld wordt validatie aan de clientzijde uitgevoerd voor de xyz-methode door een CimClass-object door te geven aan Invoke-CimMethod.

$c = Get-CimClass -ClassName Win32_Process
Invoke-CimMethod -CimClass $c -MethodName "xyz" -Arguments @{ CommandLine = 'notepad.exe' }

Parameters

-Arguments

Hiermee geeft u de parameters die moeten worden doorgegeven aan de aangeroepen methode. Geef de waarden voor deze parameter op als naam-waardeparen, opgeslagen in een hashtabel. De volgorde van de ingevoerde waarden is niet belangrijk.

Type:IDictionary
Position:1
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-CimClass

Hiermee geeft u een CIM-klasseobject dat een CIM-klassedefinitie op de server vertegenwoordigt. Gebruik deze parameter bij het aanroepen van een statische methode van een klasse.

U kunt de Get-CimClass cmdlet gebruiken om een klassedefinitie op te halen van de server.

Het gebruik van deze parameter resulteert in betere schemavalidaties aan de clientzijde.

Type:CimClass
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-CimSession

Hiermee wordt de opdracht uitgevoerd met behulp van de opgegeven CIM-sessie. Voer een variabele in die de CIM-sessie bevat of een opdracht waarmee de CIM-sessie wordt gemaakt of ophaalt, zoals de New-CimSession cmdlets of Get-CimSession . Zie about_CimSession voor meer informatie.

Type:CimSession[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ClassName

Hiermee geeft u de naam op van de CIM-klasse waarvoor de bewerking moet worden uitgevoerd. Deze parameter wordt alleen gebruikt voor statische methoden. U kunt tabvoltooiing gebruiken om door de lijst met klassen te bladeren, omdat PowerShell een lijst met klassen ophaalt van de lokale WMI-server om een lijst met klassenamen op te geven.

Type:String
Aliases:Class
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ComputerName

Hiermee geeft u de naam op van de computer waarop u de CIM-bewerking wilt uitvoeren. U kunt een FQDN (Fully Qualified Domain Name), een NetBIOS-naam of een IP-adres opgeven.

Wanneer u deze parameter gebruikt, maakt de cmdlet een tijdelijke sessie naar de opgegeven computer met behulp van het WsMan-protocol. Anders voert de cmdlet de bewerking uit op de lokale computer met behulp van Component Object Model (COM).

Maak verbinding met behulp van een CIM-sessie voor betere prestaties wanneer meerdere bewerkingen op dezelfde computer worden uitgevoerd.

Type:String[]
Aliases:CN, ServerName
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Confirm

Hiermee wordt u gevraagd om bevestiging voordat u de cmdlet uitvoert.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Hiermee geeft u een CIM-exemplaarobject op dat moet worden gebruikt als invoer om een methode aan te roepen. Deze parameter kan alleen worden gebruikt om exemplaarmethoden aan te roepen. Als u statische methoden van de klasse wilt aanroepen, gebruikt u de parameter Class of de parameter CimClass .

Type:CimInstance
Aliases:CimInstance
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-MethodName

Hiermee geeft u de naam van de CIM-methode aan te roepen. Deze parameter is verplicht en mag niet null of leeg zijn. Als u de statische methode van een CIM-klasse wilt aanroepen, gebruikt u de parameter ClassName of CimClass .

Type:String
Aliases:Name
Position:2
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Namespace

Hiermee geeft u de naamruimte voor de CIM-bewerking. De standaardnaamruimte is root/cimv2. U kunt tabvoltooiing gebruiken om door de lijst met naamruimten te bladeren, omdat PowerShell een lijst met naamruimten ophaalt van de lokale WMI-server om de lijst met naamruimten op te geven.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-OperationTimeoutSec

Hiermee geeft u de hoeveelheid tijd die de cmdlet wacht op een antwoord van de computer. Standaard is de waarde 0, wat betekent dat de cmdlet de standaard time-outwaarde voor de server gebruikt.

Als de parameter OperationTimeoutSec is ingesteld op een waarde die kleiner is dan de standaardtime-out voor opnieuw proberen van de verbinding van 3 minuten, kunnen netwerkfouten die langer duren dan de waarde van de parameter OperationTimeoutSec niet worden hersteld.

Type:UInt32
Aliases:OT
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Query

Hiermee geeft u een query die moet worden uitgevoerd op de CIM-server. Er wordt een methode aangeroepen op de exemplaren die zijn ontvangen als gevolg van de query. U kunt het querydialect opgeven met behulp van de parameter QueryDialect .

Als de opgegeven waarde dubbele aanhalingstekens ("), enkele aanhalingstekens (') of een backslash (\) bevat, moet u deze tekens escapen door ze te voorzien van het backslashteken (\). Als de opgegeven waarde gebruikmaakt van de WQL LIKE-operator, moet u de volgende tekens laten ontsnappen door deze tussen vierkante haken te zetten ([]): percentage (%), onderstrepingsteken (_) of vierkante haak openen ([).

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-QueryDialect

Hiermee geeft u de querytaal op die wordt gebruikt voor de queryparameter. De acceptabele waarden voor deze parameter zijn: WQL of CQL.

De standaardwaarde is WQL.

Type:String
Position:Named
Default value:WQL
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ResourceUri

Hiermee geeft u de resource-id (URI) van de resourceklasse of het exemplaar op. De URI wordt gebruikt om een specifiek type resource, zoals schijven of processen, op een computer te identificeren.

Een URI bestaat uit een voorvoegsel en een pad naar een resource. Bijvoorbeeld:

http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_LogicalDisk

http://intel.com/wbem/wscim/1/amt-schema/1/AMT_GeneralSettings

Als u deze parameter niet opgeeft, wordt standaard de standaard-URI http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/ van de DMTF-resource gebruikt en wordt de klassenaam eraan toegevoegd.

ResourceURI kan alleen worden gebruikt met CIM-sessies die zijn gemaakt met behulp van het WSMan-protocol, of bij het opgeven van de parameter ComputerName , waarmee een CIM-sessie wordt gemaakt met behulp van WSMan.

Wanneer u deze parameter opgeeft zonder de parameter ComputerName op te geven, of wanneer u een CIM-sessie opgeeft die is gemaakt met behulp van het DCOM-protocol, krijgt u een fout. Het DCOM-protocol biedt geen ondersteuning voor de parameter ResourceURI .

Als zowel de parameter ResourceUri als de filterparameter zijn opgegeven, wordt de filterparameter genegeerd.

Type:Uri
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Hiermee wordt weergegeven wat er zou gebeuren als u de cmdlet uitvoert. De cmdlet wordt niet uitgevoerd.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Invoerwaarden

CimClass

U kunt een CIM-klasse doorspezen naar deze cmdlet.

CimInstance

U kunt een CIM-exemplaar doorspezen naar deze cmdlet.

Uitvoerwaarden

PSCustomObject

Deze cmdlet retourneert een object.

Notities

PowerShell bevat de volgende aliassen voor Invoke-CimMethod:

  • Windows:
    • icim

Deze cmdlet is alleen beschikbaar op Windows-platforms.