Compartir a través de


Invoke-CimMethod

Invoca un método de una clase CIM.

Sintaxis

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

Este cmdlet solo está disponible en la plataforma Windows.

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.

Tipo:IDictionary
Posición:1
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín: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.

Tipo:CimClass
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:True
Aceptar caracteres comodín: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.

Tipo:CimSession[]
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:True
Aceptar caracteres comodín: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.

Tipo:String
Alias:Class
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:True
Aceptar caracteres comodín: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).

Conéctese mediante una sesión CIM para mejorar el rendimiento cuando se realizan varias operaciones en el mismo equipo.

Tipo:String[]
Alias:CN, ServerName
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-Confirm

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

Tipo:SwitchParameter
Alias:cf
Posición:Named
Valor predeterminado:False
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín: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 .

Tipo:CimInstance
Alias:CimInstance
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:True
Aceptar caracteres comodín: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 .

Tipo:String
Alias:Name
Posición:2
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:True
Aceptar caracteres comodín: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.

Tipo:String
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín: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.

Tipo:UInt32
Alias:OT
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín: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 (_[).

Tipo:String
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:True
Aceptar caracteres comodín: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.

Tipo:String
Posición:Named
Valor predeterminado:WQL
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín: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.

Tipo:Uri
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-WhatIf

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

Tipo:SwitchParameter
Alias:wi
Posición:Named
Valor predeterminado:False
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín: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 .

Notas

PowerShell incluye los siguientes alias para Invoke-CimMethod:

  • Windows:
    • icim

Este cmdlet solo está disponible en plataformas Windows.