Compartilhar via


Invoke-WmiMethod

Chama os métodos WMI (Instrumentação de Gerenciamento do Windows).

Sintaxe

Invoke-WmiMethod [-Class] <string> [[-ArgumentList] <Object[]>] [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Invoke-WmiMethod [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Invoke-WmiMethod -InputObject <ManagementObject> [-ArgumentList <Object[]>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Invoke-WmiMethod -Path <string> [-ArgumentList <Object[]>] [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Invoke-WmiMethod [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Invoke-WmiMethod [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>]

Descrição

O cmdlet Invoke-WmiMethod chama os métodos WMI.

Parâmetros

-ArgumentList <Object[]>

Especifica os parâmetros que devem ser passados para o método chamado. O valor deste parâmetro deve ser uma matriz de objetos e eles devem aparecer na ordem exigida pelo método chamado.

Importante: um segundo valor $null é obrigatório, caso contrário o comando gerará um erro, como "Não é possível converter objeto do tipo 'System.Byte' para o tipo 'System.Array'.".

Aqui está um exemplo que usa uma matriz de objetos (($binSD) seguido por um valor nulo ($null):

PS C:\> $acl = Get-Acl test.txt

PS C:\> $binSD = $acl.GetSecurityDescriptorBinaryForm()

PS C:\> invoke-wmimethod -class Win32_SecurityDescriptorHelper -Name BinarySDToSDDL -argumentlist $binSD, $null

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-AsJob

Executa o comando como um trabalho em segundo plano. Use este parâmetro para executar comandos que demoram a ser concluídos.

Quando você usa o parâmetro AsJob, o comando retorna um objeto que representa o trabalho de 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 relação a um computador remoto, o trabalho será criado no computador local e os resultados dos computadores remotos serão automaticamente retornados para o computador local. Para gerenciar o trabalho, use os cmdlets que contêm o nome Job (os cmdlets Job). Para obter os resultados do trabalho, use o cmdlet Receive-Job.

Observação: para usar esse parâmetro com computadores remotos, os computadores local e remoto deverão ser configurados para comunicação remota. Além disso, você precisa iniciar o Windows PowerShell usando a opção "Executar como administrador" no Windows Vista e em versões mais recentes do Windows. Para obter mais informações, consulte about_Remote_Requirements.

Para obter mais informações sobre os trabalhos em segundo plano do Windows PowerShell, consulte about_Jobs e about_Remote_Jobs.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-Authentication <AuthenticationLevel>

Especifica o nível de autenticação a ser usado com a conexão WMI. Os valores válidos são:

-1: Unchanged

0: Default

1: None (nenhuma autenticação é executada)

2: Connect (a autenticação é executada somente quando o cliente estabelece um relacionamento com o aplicativo)

3: Call (a autenticação é executada somente no início de cada chamada, quando o aplicativo recebe a solicitação)

4: Packet (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)

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-Authority <string>

Especifica a autoridade a ser usada para autenticar a conexão WMI. Você pode especificar a autenticação padrão NTLM ou Kerberos. Para usar NTLM, defina a configuração de autoridade como ntlmdomain:<DomainName>, em que <DomainName> identifica um nome de domínio NTLM válido. Para usar Kerberos, especifique kerberos:<DomainName\ServerName>. Você não pode incluir a configuração de autoridade quando estiver conectado ao computador local.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-Class <string>

Especifica a classe WMI que contém um método estático para ser chamado.

Necessário?

true

Posição?

1

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-ComputerName <string[]>

Especifica o computador em relação ao qual você deseja executar a operação de gerenciamento. O valor pode ser um nome de domínio totalmente qualificado, um nome NetBIOS ou um endereço IP. Use o nome do computador local, o host local ou um ponto (.) para especificar o computador local. O padrão é o computador local. Quando o computador remoto está em um domínio diferente do usuário, é necessário usar o nome de domínio totalmente qualificado. Você também pode definir o valor deste parâmetro enviando-o ao parâmetro.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-Credential <PSCredential>

Especifica uma conta de usuário com 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 aquele retornado pelo cmdlet Get-Credential. Quando você digitar um nome de usuário, uma senha será solicitada.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-EnableAllPrivileges

Habilita todos os privilégios do usuário atual antes de o comando fazer a chamada WMI.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-Impersonation <ImpersonationLevel>

Especifica o nível de representação a ser usado. Os valores válidos são:

0: Default (lê o Registro local para o nível de representação padrão, que é normalmente definido como "3: Impersonate")

1: Anonymous (oculta as credenciais do chamador)

2: Identify (permite que os objetos consultem as credenciais do chamador)

3: Impersonate (permite que os objetos usem as credenciais do chamador)

4: Delegate (permite que objetos autorizem outros objetos a usarem as credenciais do chamador)

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-InputObject <ManagementObject>

Especifica um objeto ManagementObject a ser usado como entrada. Quando esse parâmetro é usado, todos os outros parâmetros, exceto Flag e Argument, são ignorados.

Necessário?

true

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

true (ByValue)

Aceitar caracteres curinga?

false

-Locale <string>

Especifica a localidade preferencial para objetos WMI. Especifica o valor do parâmetro Locale como uma matriz no formato MS_<LCID> na ordem preferencial.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-Name <string>

Especifica o nome do método a ser invocado. Este parâmetro é obrigatório e não pode ser nulo ou vazio.

Necessário?

true

Posição?

2

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-Namespace <string>

Quando usado com o parâmetro Class, esse parâmetro especifica o namespace do repositório WMI em que o objeto ou a classe WMI de referência está localizado.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-Path <string>

Especifica o caminho do objeto WMI de uma classe WMI ou de uma instância de uma classe WMI. A classe ou a instância que você especifica deve conter o método que é especificado no parâmetro Name.

Necessário?

true

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-ThrottleLimit <int>

Permite que o usuário especifique um valor de limitação para o número de operações WMI que podem ser executadas simultaneamente. Este parâmetro é usado com o parâmetro AsJob. O limite se aplica somente ao comando atual, não à sessão ou ao computador.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-Confirm

Solicita confirmação antes da execução do comando.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

-WhatIf

Descreve o que aconteceria se você executasse o comando, sem executá-lo de fato.

Necessário?

false

Posição?

named

Valor padrão

Aceitar entrada do pipeline?

false

Aceitar caracteres curinga?

false

<CommonParameters>

Esse cmdlet oferece suporte aos parâmetros comuns: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Para obter mais informações, consulte about_Commonparameters.

Entradas e saídas

O tipo de entrada é o tipo dos objetos que você pode canalizar para o cmdlet. O tipo de retorno é o tipo dos objetos que o cmdlet retorna.

Entradas

Nenhum

Este cmdlet não aceita nenhuma entrada.

Saídas

Nenhum

Este cmdlet não gera nenhuma saída.

Exemplo 1

C:\PS>invoke-wmimethod -path win32_process -name create -argumentlist notepad.exe

__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     :
__DYNASTY        : __PARAMETERS
__RELPATH        :
__PROPERTY_COUNT : 2
__DERIVATION     : {}
__SERVER         :
__NAMESPACE      :
__PATH           :
ProcessId        : 4844
ReturnValue      : 0

Descrição
-----------
Esse comando inicia uma instância do Bloco de Notas chamando o método Create da classe Win32_Process.

Observação: a propriedade ReturnValue será preenchida com um 0, e a propriedade ProcessId será preenchida com um inteiro (o próximo número de ID de processo) se o comando for concluído.





Exemplo 2

C:\PS>invoke-wmimethod -path "CIM_DataFile.Name='C:\scripts\test.txt'" -Name Rename -ArgumentList "C:\scripts\test_bu.txt"

__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     :
__DYNASTY        : __PARAMETERS
__RELPATH        :
__PROPERTY_COUNT : 1
__DERIVATION     : {}
__SERVER         :
__NAMESPACE      :
__PATH           :
ReturnValue      : 0

Descrição
-----------
Esse 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.

Observação: a propriedade ReturnValue será preenchida com um 0 se o comando for concluído.





Consulte também

Conceitos

Get-WmiObject
Remove-WmiObject
Set-WmiInstance
Get-WSManInstance
Invoke-WSManAction
New-WSManInstance
Remove-WSManInstance