O cmdlet Invoke-WmiMethod chama os métodos de objetos WMI (Instrumentação de Gerenciamento do Windows).
Os novos cmdlets CIM (Common Information Model), introduzidos no Windows PowerShell 3.0, executam as mesmas tarefas que os cmdlets WMI.
Os cmdlets CIM estão em conformidade com os padrões WS-Management (WSMan) e com o padrão CIM, que permite que os cmdlets usem as mesmas técnicas para gerenciar computadores Windows e aqueles que executam outros sistemas operacionais.
Em vez de usar Invoke-WmiMethod , considere usar Invoke-CimMethodhttps://go.microsoft.com/fwlink/?LinkId=227965.
Exemplos
Exemplo 1: Listar a ordem necessária dos objetos WMI
Este comando lista a ordem necessária dos objetos.
Para invocar o WMI no PowerShell 3.0 difere dos métodos alternativos e requer que os valores do objeto sejam inseridos em uma ordem específica.
Este comando inicia uma instância do Bloco de Notas chamando o método Create da classe Win32_Process.
A propriedade ReturnValue é preenchida com um 0 e a propriedade ProcessId é preenchida com um inteiro (o próximo número de ID do processo) se o comando for concluído.
Este comando renomeia um arquivo.
Ele usa o parâmetro Path para fazer referência a uma instância da classe CIM_DataFile.
Em seguida, ele aplica o método Rename a essa instância específica.
A propriedade ReturnValue é preenchida com um 0 se o comando for concluído.
Parâmetros
-ArgumentList
Especifica os parâmetros a serem passados para o método chamado.
O valor desse parâmetro deve ser uma matriz de objetos e eles devem aparecer na ordem exigida pelo método chamado.
O cmdlet Invoke-CimCommand não tem essas limitações.
Para determinar a ordem na qual listar esses objetos, execute o método GetMethodParameters() na classe WMI, conforme ilustrado no Exemplo 1, perto do final deste tópico.
Importante: Se o primeiro valor for uma matriz que contém mais de um elemento, um segundo valor de $null será necessário.
Caso contrário, o comando gerará um erro, como "Não é possível converter objeto do tipo 'System.Byte' para digitar 'System.Array'.".
Segue-se um exemplo usando uma matriz de objetos ($binSD) seguida por um valor nulo ($null):
Indica que esse cmdlet executa o comando como um trabalho em segundo plano.
Use esse parâmetro para executar comandos que levam muito tempo para serem concluídos.
Quando você usa o parâmetro AsJob, o comando retorna um objeto que representa o trabalho em segundo plano e, em seguida, exibe o prompt de comando.
Você pode continuar a trabalhar na sessão enquanto o trabalho termina.
Se Invoke-WmiMethod for usado em um computador remoto, o trabalho será criado no computador local e os resultados dos computadores remotos serão retornados automaticamente ao computador local.
Para gerenciar o trabalho, use os cmdlets que contêm o substantivo Job (os cmdlets Job).
Para obter os resultados do trabalho, use o cmdlet Receive-Job.
Para usar esse parâmetro com computadores remotos, os computadores locais e remotos devem ser configurados para comunicação remota.
Além disso, você deve iniciar o Windows PowerShell usando a opção Executar como administrador no Windows Vista e versões posteriores do Windows.
Para obter mais informações, consulte about_Remote_Requirements.
Para obter mais informações sobre trabalhos em segundo plano do Windows PowerShell, consulte about_Jobs e about_Remote_Jobs.
Propriedades dos parâmetros
Tipo:
SwitchParameter
Default value:
None
Suporta carateres universais:
False
NãoMostrar:
False
Conjuntos de parâmetros
(All)
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
-Authentication
Especifica o nível de autenticação a ser usado com a conexão WMI.
Os valores aceitáveis para este parâmetro são:
-1: Inalterado
0: Padrão
1: Nenhum (Nenhuma autenticação executada.)
2: Conectar (A autenticação é realizada somente quando o cliente estabelece um relacionamento com o aplicativo.)
3: Chamada (A autenticação é realizada somente no início de cada chamada, quando o aplicativo recebe a solicitação.)
4: Pacote (A autenticação é realizada em todos os dados recebidos do cliente.)
5: PacketIntegrity (Todos os dados transferidos entre o cliente e o aplicativo são autenticados e verificados.)
6: PacketPrivacy (As propriedades dos outros níveis de autenticação são usadas e todos os dados são criptografados.)
Especifica a autoridade a ser usada para autenticar a conexão WMI.
Você pode especificar o Windows NT LAN Manager (NTLM) padrão ou autenticação Kerberos.
Para usar NTLM, defina a configuração de autoridade como ntlmdomain:<DomainName>, onde <DomainName> identifica um nome de domínio NTLM válido.
Para usar Kerberos, especifique kerberos:<DomainName\ServerName>.
Não é possível incluir a configuração de autoridade quando você se conecta ao computador local.
Propriedades dos parâmetros
Tipo:
String
Default value:
None
Suporta carateres universais:
False
NãoMostrar:
False
Conjuntos de parâmetros
class
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
path
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
WQLQuery
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
query
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
list
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
-Class
Especifica a classe WMI que contém um método estático para chamar.
Propriedades dos parâmetros
Tipo:
String
Default value:
None
Suporta carateres universais:
False
NãoMostrar:
False
Conjuntos de parâmetros
class
Position:
0
Obrigatório:
True
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
-ComputerName
Especifica, como uma matriz de cadeia de caracteres, os computadores nos quais esse cmdlet executa o comando.
O padrão é o computador local.
Digite o nome NetBIOS, um endereço IP ou um nome de domínio totalmente qualificado de um ou mais computadores.
Para especificar o computador local, digite o nome do computador, um ponto (.) ou localhost.
Esse parâmetro não depende da comunicação remota do Windows PowerShell.
Você pode usar o parâmetro ComputerName mesmo que o computador não esteja configurado para executar comandos remotos.
Propriedades dos parâmetros
Tipo:
String[]
Default value:
None
Suporta carateres universais:
False
NãoMostrar:
False
Aliases:
CN
Conjuntos de parâmetros
class
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
path
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
WQLQuery
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
query
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
list
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
-Confirm
Solicita confirmação antes de executar o cmdlet.
Propriedades dos parâmetros
Tipo:
SwitchParameter
Default value:
False
Suporta carateres universais:
False
NãoMostrar:
False
Aliases:
Cf.
Conjuntos de parâmetros
(All)
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
-Credential
Especifica uma conta de usuário que tem permissão para executar essa ação.
O padrão é o usuário atual.
Digite um nome de usuário, como User01, Domain01\User01 ou User@Contoso.com.
Ou insira um objeto PSCredential , como um objeto retornado pelo cmdlet Get-Credential.
Quando introduz um nome de utilizador, ser-lhe-á solicitada uma palavra-passe.
Propriedades dos parâmetros
Tipo:
PSCredential
Default value:
None
Suporta carateres universais:
False
NãoMostrar:
False
Conjuntos de parâmetros
class
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
path
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
WQLQuery
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
query
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
list
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
-EnableAllPrivileges
Indica que esse cmdlet habilita todos os privilégios do usuário atual antes que o comando faça a chamada WMI.
Propriedades dos parâmetros
Tipo:
SwitchParameter
Default value:
None
Suporta carateres universais:
False
NãoMostrar:
False
Conjuntos de parâmetros
class
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
path
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
WQLQuery
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
query
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
list
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
-Impersonation
Especifica o nível de representação a ser usado.
Os valores aceitáveis para este parâmetro são:
0: Padrão (Lê o registro local para o nível de representação padrão, que geralmente é definido como "3: Representar".)
1: Anônimo (Oculta as credenciais do chamador.)
2: Identificar (Permite que os objetos consultem as credenciais do chamador.)
3: Representar (Permite que os objetos usem as credenciais do chamador.)
4: Delegar (Permite que outros objetos permitam que outros objetos usem as credenciais do chamador.)
Especifica um ManagementObject objeto a ser usado como entrada.
Quando esse parâmetro é usado, todos os outros parâmetros, exceto os parâmetros Flag e Argument são ignorados.
Propriedades dos parâmetros
Tipo:
ManagementObject
Default value:
None
Suporta carateres universais:
False
NãoMostrar:
False
Conjuntos de parâmetros
object
Position:
Named
Obrigatório:
True
Valor do pipeline:
True
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
-Locale
Especifica a localidade preferida para objetos WMI.
Especifique o valor do parâmetro Locale como uma matriz no formato MS_<LCID> na ordem preferida.
Propriedades dos parâmetros
Tipo:
String
Default value:
None
Suporta carateres universais:
False
NãoMostrar:
False
Conjuntos de parâmetros
class
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
path
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
WQLQuery
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
query
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
list
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
-Name
Especifica o nome do método a ser invocado.
Este parâmetro é obrigatório e não pode ser nulo ou vazio.
Propriedades dos parâmetros
Tipo:
String
Default value:
None
Suporta carateres universais:
False
NãoMostrar:
False
Conjuntos de parâmetros
(All)
Position:
1
Obrigatório:
True
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
-Namespace
Quando usado com o parâmetro Class, esse parâmetro especifica o namespace do repositório WMI onde a classe ou objeto WMI referenciado está localizado.
Propriedades dos parâmetros
Tipo:
String
Default value:
None
Suporta carateres universais:
False
NãoMostrar:
False
Aliases:
NS
Conjuntos de parâmetros
class
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
path
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
WQLQuery
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
query
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
list
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
-Path
Especifica o caminho do objeto WMI de uma classe WMI ou especifica o caminho do objeto WMI de uma instância de uma classe WMI.
A classe ou a instância especificada deve conter o método especificado no parâmetro Name.
Propriedades dos parâmetros
Tipo:
String
Default value:
None
Suporta carateres universais:
False
NãoMostrar:
False
Conjuntos de parâmetros
path
Position:
Named
Obrigatório:
True
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
-ThrottleLimit
Especifica um valor de aceleração para o número de operações WMI que podem ser executadas simultaneamente.
Este parâmetro é usado em conjunto com o parâmetro AsJob.
O limite de aceleração aplica-se apenas ao comando atual, não à sessão ou ao computador.
Propriedades dos parâmetros
Tipo:
Int32
Default value:
None
Suporta carateres universais:
False
NãoMostrar:
False
Conjuntos de parâmetros
(All)
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
False
-WhatIf
Mostra o que aconteceria se o cmdlet fosse executado.
O cmdlet não é executado.
Propriedades dos parâmetros
Tipo:
SwitchParameter
Default value:
False
Suporta carateres universais:
False
NãoMostrar:
False
Aliases:
Wi
Conjuntos de parâmetros
(All)
Position:
Named
Obrigatório:
False
Valor do pipeline:
False
Valor do pipeline por nome de propriedade:
False
Valor dos restantes argumentos:
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.