Este cmdlet só está disponível na plataforma Windows.
O cmdlet Invoke-CimMethod invoca um método de uma classe CIM ou instância CIM usando os pares nome-valor especificados pelo parâmetro Arguments.
Se o parâmetro InputObject não for especificado, o cmdlet funcionará de uma das seguintes maneiras:
Se nem o parâmetro ComputerName nem o parâmetro CimSession forem especificados, esse cmdlet funcionará no WMI (Instrumentação de Gerenciamento do Windows) local usando uma sessão COM (Component Object Model).
Se o parâmetro ComputerName ou o parâmetro CimSession for especificado, esse cmdlet funcionará no servidor CIM especificado pelo parâmetro ComputerName ou pelo parâmetro CimSession .
Se o parâmetro InputObject for especificado, o cmdlet funcionará de uma das seguintes maneiras:
Se nem o parâmetro ComputerName nem o parâmetro CimSession forem especificados, esse cmdlet usará 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, esse cmdlet usará o valor do parâmetro CimSession ou 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 Terminate da classe Win32_Process.
Invoke-CimMethod -Query 'select * from Win32_Process where name like "notepad%"' -MethodName "Terminate"
Exemplo 2: Invocar um método usando o objeto de instância CIM
Este exemplo recupera o objeto de instância do CIM e o armazena em uma variável chamada $x usando o cmdlet Get-CimInstance. O conteúdo da variável é usado como o InputObject para o cmdlet Invoke-CimMethod. O GetOwner método é invocado para o 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 usando argumentos
Este exemplo invoca o método Create nomeado usando o parâmetro Arguments.
Especifica os parâmetros a serem passados para o método chamado. Especifique os valores para esse parâmetro como pares nome-valor, armazenados em uma tabela de hash. A ordem dos valores inseridos não é importante.
Especifica um objeto de classe CIM que representa uma definição de classe CIM no servidor. Use esse parâmetro ao invocar um método estático de uma classe.
Você pode usar o cmdlet Get-CimClass para recuperar uma definição de classe do servidor.
O uso desse parâmetro resulta em melhores validações de esquema do lado do cliente.
Executa o comando usando a sessão CIM especificada. Insira uma variável que contenha a sessão CIM ou um comando que crie ou obtenha a sessão CIM, como os cmdlets New-CimSession ou Get-CimSession. Para obter mais informações, consulte about_CimSession.
Especifica o nome da classe CIM para a qual executar a operação. Este parâmetro é usado apenas para métodos estáticos. Você pode usar o preenchimento de guias para procurar a lista de classes, porque o PowerShell obtém uma lista de classes do servidor WMI local para fornecer uma lista de nomes de classe.
Especifica o nome do computador no qual você deseja executar a operação CIM. Você pode especificar um nome de domínio totalmente qualificado (FQDN), um nome NetBIOS ou um endereço IP.
Ao usar esse parâmetro, o cmdlet cria uma sessão temporária para o computador especificado usando o protocolo WsMan. Caso contrário, o cmdlet executará a operação no computador local usando o COM (Component Object Model).
Conecte-se usando uma sessão CIM para um melhor desempenho quando várias operações estão sendo executadas no mesmo computador.
Especifica um objeto de instância CIM a ser usado como entrada para invocar um método. Esse parâmetro só pode ser usado para invocar métodos de instância. Para invocar métodos estáticos de classe, use o parâmetro Class ou o parâmetro CimClass.
Especifica o nome do método CIM a ser invocado. Este parâmetro é obrigatório e não pode ser nulo ou vazio. Para invocar o método estático de uma classe CIM, use o ClassName ou o parâmetro CimClass.
Especifica o namespace para a operação CIM. O namespace padrão é root/cimv2. Você pode usar o preenchimento de guias para procurar a lista de namespaces, porque o PowerShell obtém uma lista de namespaces do servidor WMI local para fornecer a lista de namespaces.
Especifica a quantidade de tempo que o cmdlet aguarda por uma resposta do computador. Por padrão, o valor é 0, o que significa que o cmdlet usa o valor de tempo limite padrão para o servidor.
Se o parâmetro OperationTimeoutSec for definido como um valor menor do que o tempo limite de repetição de conexão padrão de 3 minutos, as falhas de rede que duram mais do que o valor do parâmetro OperationTimeoutSec não serão recuperáveis.
Especifica uma consulta a ser executada no servidor CIM. Um método é invocado nas instâncias recebidas como resultado da consulta. Você pode especificar o dialeto de consulta usando o parâmetro QueryDialect.
Se o valor especificado contiver aspas duplas ("), aspas simples (') ou uma barra invertida (\), você deverá escapar desses caracteres prefixando-os com o caractere de barra invertida (\). Se o valor especificado usar o operador WQL LIKE, você deverá escapar dos seguintes caracteres colocando-os entre colchetes ([]): porcentagem (%), sublinhado (_) ou abertura de colchete ([).
Especifica o URI (identificador uniforme de recurso) da classe ou instância do recurso.
O URI é usado para identificar um tipo específico de recurso, como discos ou processos, em um computador.
Um URI consiste em um prefixo e um caminho para um recurso. Por exemplo:
Por padrão, se você não especificar esse parâmetro, o http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/ URI de recurso padrão DMTF será usado e o nome da classe será anexado a ele.
ResourceURI só pode ser usado com sessões CIM criadas usando o protocolo WSMan ou ao especificar o parâmetro ComputerName, que cria uma sessão CIM usando WSMan.
Quando você especifica esse parâmetro sem especificar o parâmetro ComputerName ou quando especifica uma sessão CIM criada usando o protocolo DCOM, você recebe um erro. O protocolo DCOM não suporta o parâmetro ResourceURI.
Se o parâmetro ResourceUri e o parâmetro Filter forem especificados, o parâmetro Filter será ignorado.
Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.