Compartilhar via


Invoke-CimMethod

Invoca um método de uma classe CIM.

Sintaxe

ClassNameComputerSet (Default)

Invoke-CimMethod
    [-ClassName] <String>
    [[-Arguments] <IDictionary>]
    [-MethodName] <String>
    [-ComputerName <String[]>]
    [-Namespace <String>]
    [-OperationTimeoutSec <UInt32>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

ClassNameSessionSet

Invoke-CimMethod
    [-ClassName] <String>
    [[-Arguments] <IDictionary>]
    [-MethodName] <String>
    -CimSession <CimSession[]>
    [-Namespace <String>]
    [-OperationTimeoutSec <UInt32>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

ResourceUriComputerSet

Invoke-CimMethod
    [[-Arguments] <IDictionary>]
    [-MethodName] <String>
    -ResourceUri <Uri>
    [-ComputerName <String[]>]
    [-Namespace <String>]
    [-OperationTimeoutSec <UInt32>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

CimInstanceSessionSet

Invoke-CimMethod
    [-InputObject] <CimInstance>
    [[-Arguments] <IDictionary>]
    [-MethodName] <String>
    -CimSession <CimSession[]>
    [-ResourceUri <Uri>]
    [-OperationTimeoutSec <UInt32>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

CimInstanceComputerSet

Invoke-CimMethod
    [-InputObject] <CimInstance>
    [[-Arguments] <IDictionary>]
    [-MethodName] <String>
    [-ResourceUri <Uri>]
    [-ComputerName <String[]>]
    [-OperationTimeoutSec <UInt32>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

ResourceUriSessionSet

Invoke-CimMethod
    [[-Arguments] <IDictionary>]
    [-MethodName] <String>
    -ResourceUri <Uri>
    -CimSession <CimSession[]>
    [-Namespace <String>]
    [-OperationTimeoutSec <UInt32>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

CimClassComputerSet

Invoke-CimMethod
    [-CimClass] <CimClass>
    [[-Arguments] <IDictionary>]
    [-MethodName] <String>
    [-ComputerName <String[]>]
    [-OperationTimeoutSec <UInt32>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

CimClassSessionSet

Invoke-CimMethod
    [-CimClass] <CimClass>
    [[-Arguments] <IDictionary>]
    [-MethodName] <String>
    -CimSession <CimSession[]>
    [-OperationTimeoutSec <UInt32>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

QueryComputerSet

Invoke-CimMethod
    [[-Arguments] <IDictionary>]
    [-MethodName] <String>
    -Query <String>
    [-QueryDialect <String>]
    [-ComputerName <String[]>]
    [-Namespace <String>]
    [-OperationTimeoutSec <UInt32>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

QuerySessionSet

Invoke-CimMethod
    [[-Arguments] <IDictionary>]
    [-MethodName] <String>
    -Query <String>
    -CimSession <CimSession[]>
    [-QueryDialect <String>]
    [-Namespace <String>]
    [-OperationTimeoutSec <UInt32>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Description

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 argumentos.

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 for especificado, esse cmdlet funcionará na 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, este 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 for especificado, 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 computername valor do parâmetro. Esse 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 da instância cim e o armazena em uma variável chamada $x usando o cmdlet Get-CimInstance. Em seguida, o conteúdo da variável é usado como o InputObject para o cmdlet Invoke-CimMethod. O método GetOwner é 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 chamado usando 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 passando 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 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.

Propriedades do parâmetro

Tipo:IDictionary
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:1
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-CimClass

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.

Usar esse parâmetro resulta em melhores validações de esquema do lado do cliente.

Propriedades do parâmetro

Tipo:CimClass
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

CimClassComputerSet
Cargo:0
Obrigatório:True
Valor do pipeline:True
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
CimClassSessionSet
Cargo:0
Obrigatório:True
Valor do pipeline:True
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-CimSession

Executa o comando usando a sessão CIM especificada. Insira uma variável que contenha a sessão CIM ou um comando que cria ou obtém a sessão CIM, como os cmdlets New-CimSession ou Get-CimSession. Para obter mais informações, consulte about_CimSession.

Propriedades do parâmetro

Tipo:

CimSession[]

Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

ClassNameSessionSet
Cargo:Named
Obrigatório:True
Valor do pipeline:True
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
CimInstanceSessionSet
Cargo:Named
Obrigatório:True
Valor do pipeline:True
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
CimClassSessionSet
Cargo:Named
Obrigatório:True
Valor do pipeline:True
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
QuerySessionSet
Cargo:Named
Obrigatório:True
Valor do pipeline:True
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
ResourceUriSessionSet
Cargo:Named
Obrigatório:True
Valor do pipeline:True
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-ClassName

Especifica o nome da classe CIM para a qual executar a operação. Esse parâmetro é usado apenas para métodos estáticos. Você pode usar o preenchimento da guia para navegar na lista de classes, pois o PowerShell obtém uma lista de classes do servidor WMI local para fornecer uma lista de nomes de classe.

Propriedades do parâmetro

Tipo:String
Valor padrão:None
Dá suporte a curingas:False
DontShow:False
Aliases:Classe

Conjuntos de parâmetros

ClassNameComputerSet
Cargo:0
Obrigatório:True
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False
ClassNameSessionSet
Cargo:0
Obrigatório:True
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-ComputerName

Especifica o nome do computador no qual você deseja executar a operação CIM. Você pode especificar um FQDN (nome de domínio totalmente qualificado), 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 COM (Component Object Model).

Conecte-se usando uma sessão CIM para melhorar o desempenho quando várias operações estiverem sendo executadas no mesmo computador.

Propriedades do parâmetro

Tipo:

String[]

Valor padrão:None
Dá suporte a curingas:False
DontShow:False
Aliases:China, Nome do Servidor

Conjuntos de parâmetros

ClassNameComputerSet
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False
ResourceUriComputerSet
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False
CimClassComputerSet
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False
CimInstanceComputerSet
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False
QueryComputerSet
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-Confirm

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

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:False
Dá suporte a curingas:False
DontShow:False
Aliases:cf

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-InputObject

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.

Propriedades do parâmetro

Tipo:CimInstance
Valor padrão:None
Dá suporte a curingas:False
DontShow:False
Aliases:CimInstance

Conjuntos de parâmetros

CimInstanceComputerSet
Cargo:0
Obrigatório:True
Valor do pipeline:True
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
CimInstanceSessionSet
Cargo:0
Obrigatório:True
Valor do pipeline:True
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-MethodName

Especifica o nome do método CIM a ser invocado. Esse 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.

Propriedades do parâmetro

Tipo:String
Valor padrão:None
Dá suporte a curingas:False
DontShow:False
Aliases:Nome

Conjuntos de parâmetros

(All)
Cargo:2
Obrigatório:True
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-Namespace

Especifica o namespace para a operação CIM. O namespace padrão é raiz/cimv2. Você pode usar o preenchimento de guia para navegar na lista de namespaces, pois o PowerShell obtém uma lista de namespaces do servidor WMI local para fornecer a lista de namespaces.

Propriedades do parâmetro

Tipo:String
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

ClassNameComputerSet
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False
ClassNameSessionSet
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False
ResourceUriComputerSet
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False
ResourceUriSessionSet
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False
QuerySessionSet
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False
QueryComputerSet
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-OperationTimeoutSec

Especifica a quantidade de tempo que o cmdlet aguarda 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 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.

Propriedades do parâmetro

Tipo:UInt32
Valor padrão:None
Dá suporte a curingas:False
DontShow:False
Aliases:OT

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Query

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 abrindo colchete ([).

Propriedades do parâmetro

Tipo:String
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

QuerySessionSet
Cargo:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False
QueryComputerSet
Cargo:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-QueryDialect

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

O valor padrão é WQL.

Propriedades do parâmetro

Tipo:String
Valor padrão:WQL
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

QuerySessionSet
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False
QueryComputerSet
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-ResourceUri

Especifica o identificador uniforme de recurso (URI) 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:

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

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

Por padrão, se você não especificar esse parâmetro, o URI de recurso padrão DMTF http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/ será usado e o nome da classe será acrescentado 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 especificar uma sessão CIM criada usando o protocolo DCOM, você receberá um erro. O protocolo DCOM não dá suporte ao parâmetro ResourceURI.

Se tanto o parâmetro ResourceUri quanto o parâmetro Filter forem especificados, o parâmetro Filter será ignorado.

Propriedades do parâmetro

Tipo:Uri
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

CimInstanceComputerSet
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False
CimInstanceSessionSet
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-WhatIf

Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:False
Dá suporte a curingas:False
DontShow:False
Aliases:wi

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

CommonParameters

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.

Entradas

CimClass

Você pode canalizar uma classe CIM para este cmdlet.

CimInstance

Você pode canalizar uma instância de CIM para este cmdlet.

Saídas

PSCustomObject

Esse cmdlet retorna um objeto.

Observações

O PowerShell inclui os seguintes aliases para Invoke-CimMethod:

  • Windows:
    • icim

Este cmdlet está disponível apenas em plataformas Windows.