Invoke-CimMethod

Invoca um método de uma classe 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

Este cmdlet só está disponível na plataforma do Windows.

O Invoke-CimMethod cmdlet invoca um método de uma classe CIM ou instância CIM com os pares name-value especificados pelo parâmetro Argumentos .

Se o parâmetro InputObject não for especificado, o cmdlet funciona de uma das seguintes formas:

  • Se nem o parâmetro ComputerName nem o parâmetro CimSession forem especificados , este cmdlet funciona no Windows Management Instrumentation (WMI) local com uma sessão do Component Object Model (COM).
  • Se o parâmetro ComputerName ou o parâmetro CimSession for especificado, este cmdlet funciona no servidor CIM especificado pelo parâmetro ComputerName ou pelo parâmetro CimSession .

Se o parâmetro InputObject for especificado, o cmdlet funciona de uma das seguintes formas:

  • Se nem o parâmetro ComputerName nem o parâmetro CimSession forem especificados , este cmdlet utiliza a sessão CIM ou o nome do computador do objeto de entrada.
  • Se o parâmetro ComputerName ou o parâmetro CimSession for especificado, este cmdlet utiliza o valor do parâmetro CimSession ou o valor do parâmetro ComputerName . Este não é um cenário comum.

Exemplos

Exemplo 1: Invocar um método

Este exemplo invoca o método Terminar da classe Win32_Process .

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

Exemplo 2: Invocar um método com o objeto de instância CIM

Este exemplo obtém o objeto de instância cim e armazena-o numa variável com o nome $x com o Get-CimInstance cmdlet. Em seguida, os conteúdos da variável são utilizados como InputObject para o Invoke-CimMethod cmdlet. O método GetOwner é invocado para CimInstance.

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

Exemplo 3: Invocar um método estático com argumentos

Este exemplo invoca o método Criar com o nome com o parâmetro Argumentos .

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

Exemplo 4: Validação do lado do cliente

Este exemplo executa a validação do lado do cliente para o método xyz ao transmitir um objeto CimClass para Invoke-CimMethod.

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

Parâmetros

-Arguments

Especifica os parâmetros a transmitir para o chamado método. Especifique os valores deste parâmetro como pares nome-valor, armazenados numa tabela hash. A ordem dos valores introduzidos não é importante.

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

-CimClass

Especifica um objeto de classe CIM que representa uma definição de classe CIM no servidor. Utilize este parâmetro ao invocar um método estático de uma classe.

Pode utilizar o Get-CimClass cmdlet para obter uma definição de classe do servidor.

A utilização deste parâmetro resulta em melhores validações de esquema do lado do cliente.

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

-CimSession

Executa o comando com a sessão CIM especificada. Introduza uma variável que contenha a sessão CIM ou um comando que crie ou obtenha a sessão CIM, como os New-CimSession cmdlets ou Get-CimSession . Para obter mais informações, consulte about_CimSession.

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

-ClassName

Especifica o nome da classe CIM para a qual efetuar a operação. Este parâmetro só é utilizado para métodos estáticos. Pode utilizar a conclusão do separador para navegar na lista de classes, uma vez que o PowerShell obtém uma lista de classes do servidor WMI local para fornecer uma lista de nomes de classes.

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

-ComputerName

Especifica o nome do computador no qual pretende executar a operação CIM. Pode especificar um nome de domínio completamente qualificado (FQDN), um nome NetBIOS ou um endereço IP.

Ao utilizar este parâmetro, o cmdlet cria uma sessão temporária para o computador especificado com o protocolo WsMan. Caso contrário, o cmdlet efetua a operação no computador local com o Modelo de Objeto de Componente (COM).

Ligue-se através de uma sessão CIM para um melhor desempenho quando estão a ser realizadas múltiplas operações no mesmo computador.

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

-Confirm

Solicita a sua confirmação antes de executar o cmdlet.

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

-InputObject

Especifica um objeto de instância CIM a utilizar como entrada para invocar um método. Este parâmetro só pode ser utilizado para invocar métodos de instância. Para invocar métodos estáticos de classe, utilize o parâmetro Classe ou o parâmetro CimClass .

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

-MethodName

Especifica o nome do método CIM a invocar. Este parâmetro é obrigatório e não pode ser nulo ou vazio. Para invocar o método estático de uma classe CIM, utilize o parâmetro ClassName ou CimClass .

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

-Namespace

Especifica o espaço de nomes da operação CIM. O espaço de nomes predefinido é root/cimv2. Pode utilizar a conclusão do separador para navegar na lista de espaços de nomes, uma vez que o PowerShell obtém uma lista de espaços de nomes do servidor WMI local para fornecer a lista de espaços de nomes.

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

-OperationTimeoutSec

Especifica a quantidade de tempo que o cmdlet aguarda por uma resposta do computador. Por predefinição, o valor é 0, o que significa que o cmdlet utiliza o valor de tempo limite predefinido para o servidor.

Se o parâmetro OperationTimeoutSec estiver definido para um valor inferior ao tempo limite de repetição de ligação predefinido de 3 minutos, as falhas de rede que duram mais do que o valor do parâmetro OperationTimeoutSec não são recuperáveis.

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

-Query

Especifica uma consulta a executar no servidor CIM. Um método é invocado nas instâncias recebidas como resultado da consulta. Pode especificar o dialeto de consulta com o parâmetro QueryDialect .

Se o valor especificado contiver aspas duplas ("), plicas (') ou uma barra invertida (\), tem de escapar a esses carateres ao prefixá-los com o caráter de barra invertida (\). Se o valor especificado utilizar o operador WQL LIKE, terá de escapar aos seguintes carateres colocando-os entre parênteses retos (): percentagem ([]%), caráter de sublinhado (_) ou parêntese reto de abertura ([).

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

-QueryDialect

Especifica a linguagem de consulta utilizada para o parâmetro Consulta. Os valores aceitáveis para este parâmetro são: WQL ou CQL.

O valor predefinido é WQL.

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

-ResourceUri

Especifica o identificador de recursos uniforme de recursos (URI) da classe ou instância de recursos. O URI é utilizado para identificar um tipo específico de recurso, como discos ou processos, num computador.

Um URI consiste num prefixo e num caminho para um recurso. Por exemplo:

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

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

Por predefinição, se não especificar este parâmetro, é utilizado o URI http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/ de recurso padrão DMTF e o nome da classe é acrescentado ao mesmo.

O ResourceURI só pode ser utilizado com sessões CIM criadas com o protocolo WSMan ou ao especificar o parâmetro ComputerName , que cria uma sessão CIM com o WSMan.

Quando especifica este parâmetro sem especificar o parâmetro ComputerName ou quando especifica uma sessão CIM criada com o protocolo DCOM, obtém um erro. O protocolo DCOM não suporta o parâmetro ResourceURI .

Se o parâmetro ResourceUri e o parâmetro Filtro forem especificados, o parâmetro Filtro é ignorado.

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

-WhatIf

Apresenta o que aconteceria mediante a execução do cmdlet. O cmdlet não é executado.

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

Entradas

CimClass

Pode encaminhar uma classe CIM para este cmdlet.

CimInstance

Pode encaminhar uma instância CIM para este cmdlet.

Saídas

PSCustomObject

Este cmdlet devolve um objeto.