Invoke-WmiMethod
Chama os métodos WMI.
Sintaxe
Invoke-WmiMethod
[-Class] <String>
[-Name] <String>
[-ArgumentList <Object[]>]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
-InputObject <ManagementObject>
[-Name] <String>
[-ArgumentList <Object[]>]
[-AsJob]
[-ThrottleLimit <Int32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
-Path <String>
[-Name] <String>
[-ArgumentList <Object[]>]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
[-Name] <String>
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
[-Name] <String>
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
[-Name] <String>
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
O Invoke-WmiMethod
cmdlet chama os métodos de objetos WMI (Instrumentação de Gerenciamento do Windows).
Os novos cmdlets do 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-CimMethod.
Exemplos
Exemplo 1: Listar a ordem necessária dos parâmetros do método WMI
Esse comando lista a ordem dos objetos exigida.
Get-WmiObject Win32_Volume |
Get-Member -MemberType Method -Name Format |
Select-Object -ExpandProperty Definition
System.Management.ManagementBaseObject Format(System.String FileSystem, System.Boolean QuickFormat,
System.UInt32 ClusterSize, System.String Label, System.Boolean EnableCompression,
System.UInt32 Version)
Invocar o WMI no PowerShell 3.0 difere de métodos alternativos e requer que os valores de objeto sejam inseridos em uma ordem específica.
Exemplo 2: Iniciar uma instância de um aplicativo
([Wmiclass]'Win32_Process').Create.OverloadDefinitions
System.Management.ManagementBaseObject Create(System.String CommandLine, System.String CurrentDirectory,
System.Management.ManagementObject#Win32_ProcessStartup ProcessStartupInformation)
Invoke-WmiMethod -Path Win32_Process -Name Create -ArgumentList C:\Windows\system32\notepad.exe
__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 2
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
ProcessId : 11312
ReturnValue : 0
PSComputerName :
Esse comando inicia uma instância do Bloco de Notas chamando o Create
método 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.
Exemplo 3: Renomear um arquivo
$invokeWmiMethodSplat = @{
Path = "CIM_DataFile.Name='C:\scripts\test.txt'"
Name = 'Rename'
ArgumentList = 'C:\scripts\test_bu.txt'
}
Invoke-WmiMethod @invokeWmiMethodSplat
__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 1
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
ReturnValue : 0
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 àquela instância específica.
A propriedade ReturnValue é preenchida com um 0
se o comando for concluído.
Exemplo 4: Passando uma matriz de valores usando '-ArgumentList'
Um exemplo usando uma matriz de objetos $binSD
seguida por um $null
valor.
$acl = Get-Acl test.txt
$binSD = $acl.GetSecurityDescriptorBinaryForm()
$invokeWmiMethodSplat = @{
Class = 'Win32_SecurityDescriptorHelper'
Name = 'BinarySDToSDDL'
ArgumentList = $binSD, $null
}
Invoke-WmiMethod @invokeWmiMethodSplat
Parâmetros
-ArgumentList
Especifica os parâmetros a passar 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 Invoke-CimCommand
cmdlet não tem essas limitações.
Para determinar a ordem na qual listar esses objetos, execute o GetMethodParameters()
método na classe WMI, conforme ilustrado no Exemplo 1, próximo ao 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 Unable to cast object of type 'System.Byte' to type 'System.Array'.
. Veja o exemplo 4 acima.
Tipo: | Object[] |
Aliases: | Args |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-AsJob
Indica que esse cmdlet executa o comando como um trabalho em segundo plano. Use este 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. É possível continuar a trabalhar na sessão enquanto o trabalho é concluído. 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 Job
substantivo (os cmdlets Job). Para obter os resultados do trabalho, use o Receive-Job
cmdlet.
Para utilizar esse parâmetro com computadores remotos, os computadores local e remoto precisam ser configurados para acesso remoto. 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, confira about_Remote_Requirements.
Para obter mais informações sobre trabalhos em segundo plano do Windows PowerShell, consulte about_Jobs e about_Remote_Jobs.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Authentication
Especifica o nível de autenticação a ser usado com a conexão WMI. Os valores aceitáveis para esse parâmetro são:
-1
: Inalterado0
: Padrão1
: Nenhum (nenhuma autenticação é executada.)2
: Connect (A autenticação é executada somente quando o cliente estabelece uma relação com o aplicativo.)3
: Chamada (A autenticação é executada somente no início de cada chamada quando o aplicativo recebe a solicitação.)4
: Pacote (A autenticação é executada 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.)
Tipo: | AuthenticationLevel |
Valores aceitos: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Authority
Especifica a autoridade a ser usada para autenticar a conexão WMI. Você pode especificar a autenticação padrão do Windows NT LAN Manager (NTLM) ou Kerberos. Para usar o NTLM, defina a configuração de autoridade como ntlmdomain:<DomainName>
, onde <DomainName>
identifica um nome de domínio NTLM válido. Para usar o Kerberos, especifique kerberos:<DomainName>\<ServerName>
. Não é possível, ao conectar-se ao computador local, incluir a configuração da autoridade.
Tipo: | String |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Class
Especifica a classe WMI que contém um método estático para realização de chamadas.
Tipo: | String |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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.
Tipo: | String[] |
Aliases: | Cn |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Confirm
Solicita sua confirmação antes de executar o cmdlet.
Tipo: | SwitchParameter |
Aliases: | cf |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Credential
Especifica uma conta de usuário que tem permissão para executar esta 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 Get-Credential
cmdlet. Quando você digitar um nome de usuário, uma senha será solicitada.
Tipo: | PSCredential |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-EnableAllPrivileges
Indica que esse cmdlet habilita todos os privilégios do usuário atual antes que o comando faça a chamada WMI.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Impersonation
Especifica o nível de representação a ser usado. Os valores aceitáveis para esse parâmetro são:
0
: Padrão (Lê o registro local para o nível de representação padrão, que geralmente é definido como3
: 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 objetos permitam que outros objetos usem as credenciais do chamador.)
Tipo: | ImpersonationLevel |
Valores aceitos: | Default, Anonymous, Identify, Impersonate, Delegate |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-InputObject
Especifica um objeto ManagementObject 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.
Tipo: | ManagementObject |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-Locale
Especifica o local preferido para objetos WMI. Especifique o valor do parâmetro Locale como uma matriz no MS_<LCID>
formato na ordem preferencial.
Tipo: | String |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Name
Especifica o nome do método a ser invocado. Este parâmetro é obrigatório e não pode ser nulo ou vazio.
Tipo: | String |
Cargo: | 1 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Namespace
Quando usado com o parâmetro Class , esse parâmetro especifica o namespace do repositório WMI em que a classe ou o objeto WMI referenciado está localizado.
Tipo: | String |
Aliases: | NS |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Path
Especifica o caminho do objeto WMI de uma classe WMI, ou então 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 .
Tipo: | String |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-ThrottleLimit
Especifica um valor de limitação para o número de operações WMI que podem ser executadas simultaneamente. Esse parâmetro é usado junto com o parâmetro AsJob . O limite de aceleração aplica-se somente ao comando atual e não à sessão ou ao computador.
Tipo: | Int32 |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-WhatIf
Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.
Tipo: | SwitchParameter |
Aliases: | wi |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
Entradas
None
Esse cmdlet não aceita nenhuma entrada.
Saídas
None
Este cmdlet não gera saída.
Observações
O Windows PowerShell inclui os seguintes aliases para Invoke-WmiMethod
:
iwmi