Compartir a través de


Invoke-CimMethod

Invoca un método de una clase CIM.

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

El Invoke-CimMethod cmdlet invoca un método de una clase CIM o una instancia CIM mediante los pares nombre-valor especificados por el parámetro Arguments .

Si no se especifica el parámetro InputObject , el cmdlet funciona de una de las maneras siguientes:

  • Si no se especifica el parámetro ComputerName ni el parámetro CimSession , este cmdlet funciona en la sesión local de Instrumental de administración de Windows (WMI) mediante una sesión del modelo de objetos componentes (COM).
  • Si se especifica el parámetro ComputerName o el parámetro CimSession, este cmdlet funciona con el servidor CIM especificado por el parámetro ComputerName o el parámetro CimSession.

Si se especifica el parámetro InputObject , el cmdlet funciona de una de las maneras siguientes:

  • Si no se especifica el parámetro ComputerName ni el parámetro CimSession , este cmdlet usa la sesión CIM o el nombre de equipo del objeto de entrada.
  • Si se especifica el parámetro ComputerName o el parámetro CimSession , este cmdlet usa el valor del parámetro CimSession o el valor del parámetro ComputerName . No se trata de un escenario habitual.

Ejemplos

Ejemplo 1: Invocar un método

En este ejemplo se invoca el método Terminate de la clase Win32_Process .

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

Ejemplo 2: Invocar un método mediante el objeto de instancia CIM

En este ejemplo se recupera el objeto de instancia CIM y se almacena en una variable denominada $x mediante el Get-CimInstance cmdlet . A continuación, el contenido de la variable se usa como InputObject para el Invoke-CimMethod cmdlet . El método GetOwner se invoca para CimInstance.

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

Ejemplo 3: Invocar un método estático mediante argumentos

En este ejemplo se invoca el método Create denominado mediante el parámetro Arguments .

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

Ejemplo 4: Validación del lado cliente

En este ejemplo se realiza la validación del lado cliente para el método xyz pasando un objeto CimClass a .Invoke-CimMethod

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

Parámetros

-Arguments

Especifica los parámetros que se pasarán al método llamado. Especifique los valores de este parámetro como pares nombre-valor, almacenados en una tabla hash. El orden de los valores especificados no es importante.

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

-CimClass

Especifica un objeto de clase CIM que representa una definición de clase CIM en el servidor. Use este parámetro al invocar un método estático de una clase.

Puede usar el Get-CimClass cmdlet para recuperar una definición de clase del servidor.

El uso de este parámetro da como resultado mejores validaciones de esquema del lado cliente.

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

-CimSession

Ejecuta el comando mediante la sesión CIM especificada. Escriba una variable que contenga la sesión CIM o un comando que cree o obtenga la sesión CIM, como los New-CimSession cmdlets o Get-CimSession . Para obtener más información, consulte about_CimSession.

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

-ClassName

Especifica el nombre de la clase CIM para la que se va a realizar la operación. Este parámetro solo se usa para métodos estáticos. Puede usar la finalización de tabulación para examinar la lista de clases, ya que PowerShell obtiene una lista de clases del servidor WMI local para proporcionar una lista de nombres de clase.

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

-ComputerName

Especifica el nombre del equipo en el que desea ejecutar la operación CIM. Puede especificar un nombre de dominio completo (FQDN), un nombre NetBIOS o una dirección IP.

Al usar este parámetro, el cmdlet crea una sesión temporal en el equipo especificado mediante el protocolo WsMan. De lo contrario, el cmdlet realiza la operación en el equipo local mediante el modelo de objetos componentes (COM).

Conectar usar una sesión CIM para mejorar el rendimiento cuando se realizan varias operaciones en el mismo equipo.

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

-Confirm

Le solicita su confirmación antes de ejecutar el cmdlet.

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

-InputObject

Especifica un objeto de instancia CIM que se va a usar como entrada para invocar un método. Este parámetro solo se puede usar para invocar métodos de instancia. Para invocar métodos estáticos de clase, use el parámetro Class o el parámetro CimClass .

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

-MethodName

Especifica el nombre del método CIM que se va a invocar. Este parámetro es obligatorio y no puede ser nulo ni vacío. Para invocar el método estático de una clase CIM, use el parámetro ClassName o CimClass .

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

-Namespace

Especifica el espacio de nombres para la operación CIM. El espacio de nombres predeterminado es root/cimv2. Puede usar la finalización de tabulación para examinar la lista de espacios de nombres, ya que PowerShell obtiene una lista de espacios de nombres del servidor WMI local para proporcionar la lista de espacios de nombres.

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

-OperationTimeoutSec

Especifica la cantidad de tiempo que el cmdlet espera una respuesta del equipo. De forma predeterminada, el valor es 0, lo que significa que el cmdlet usa el valor de tiempo de espera predeterminado para el servidor.

Si el parámetro OperationTimeoutSec se establece en un valor menor que el tiempo de espera de reintento de conexión predeterminado de 3 minutos, los errores de red que duran más que el valor del parámetro OperationTimeoutSec no se pueden recuperar.

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

-Query

Especifica una consulta que se va a ejecutar en el servidor CIM. Se invoca un método en las instancias recibidas como resultado de la consulta. Puede especificar el dialecto de consulta mediante el parámetro QueryDialect .

Si el valor especificado contiene comillas dobles ("), comillas simples (') o una barra diagonal inversa (\), debe escapar esos caracteres prefijos con el carácter de barra diagonal inversa (\). Si el valor especificado usa el operador WQL LIKE, debe escapar los caracteres siguientes entre corchetes (): porcentaje ([]%), subrayado () o corchetes de apertura (_[).

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

-QueryDialect

Especifica el lenguaje de consulta usado para el parámetro Query. Los valores aceptables para este parámetro son: WQL o CQL.

El valor predeterminado es WQL.

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

-ResourceUri

Especifica el identificador uniforme de recursos (URI) del recurso de la clase o instancia de recursos. El URI se usa para identificar un tipo de recurso en un equipo, como discos o procesos.

Un URI consta de un prefijo y una ruta de acceso a un recurso. Por ejemplo:

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

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

De forma predeterminada, si no especifica este parámetro, se usa el URI http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/ del recurso estándar DMTF y el nombre de clase se anexa a él.

ResourceURI solo se puede usar con sesiones CIM creadas mediante el protocolo WSMan o al especificar el parámetro ComputerName , que crea una sesión CIM mediante WSMan.

Al especificar este parámetro sin especificar el parámetro ComputerName , o cuando se especifica una sesión CIM creada mediante el protocolo DCOM, se produce un error. El protocolo DCOM no admite el parámetro ResourceURI .

Si se especifican tanto el parámetro ResourceUri como el parámetro Filter, se omite el parámetro Filter.

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

-WhatIf

Muestra lo que sucedería si se ejecutara el cmdlet. El cmdlet no se ejecuta.

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

Entradas

CimClass

Puede canalizar una clase CIM a este cmdlet.

CimInstance

Puede canalizar una instancia CIM a este cmdlet.

Salidas

PSCustomObject

Este cmdlet devuelve un objeto .