Compartilhar via


Invoke-WmiMethod

Chama métodos WMI.

Sintaxe

class (Default)

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>]

object

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

path

Invoke-WmiMethod
    [-Name] <String>
    -Path <String>
    [-ArgumentList <Object[]>]
    [-AsJob]
    [-Impersonation <ImpersonationLevel>]
    [-Authentication <AuthenticationLevel>]
    [-Locale <String>]
    [-EnableAllPrivileges]
    [-Authority <String>]
    [-Credential <PSCredential>]
    [-ThrottleLimit <Int32>]
    [-ComputerName <String[]>]
    [-Namespace <String>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

WQLQuery

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>]

query

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>]

list

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 cmdlet Invoke-WmiMethod 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 do 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

Este comando lista a ordem necessária dos objetos.

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 dos 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 método Create da classe Win32_Process.

A propriedade ReturnValue é preenchida com um 0e 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

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 a essa instância específica.

A propriedade ReturnValue será 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 seguido de um valor $null.

$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 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, próximo ao final deste tópico.

Importante

Se o primeiro valor for uma matriz que contenha 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.

Propriedades do parâmetro

Tipo:

Object[]

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

Conjuntos de parâmetros

class
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
object
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
path
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-AsJob

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 exibe o prompt de comando. Você pode 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 de computadores remotos serão retornados automaticamente para o computador local. Para gerenciar o trabalho, use os cmdlets que contêm o substantivo Job (os cmdlets de trabalho). 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, confira about_Remote_Requirements.

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

Propriedades do parâmetro

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

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

-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 de
  • 1: Nenhum (nenhuma autenticação em execução).)
  • 2: Connect (a autenticação é executada somente quando o cliente estabelece uma relação com o aplicativo).)
  • 3: de 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.)

Propriedades do parâmetro

Tipo:AuthenticationLevel
Valor padrão:None
Valores aceitos:Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

class
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
path
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
WQLQuery
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
query
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
list
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Authority

Especifica a autoridade a ser usada para autenticar a conexão WMI. Você pode especificar a autenticação padrão do NTLM (Windows NT LAN Manager) ou Kerberos. Para usar o 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 ao se conectar ao computador local.

Propriedades do parâmetro

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

Conjuntos de parâmetros

class
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
path
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
WQLQuery
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
query
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
list
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Class

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

Propriedades do parâmetro

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

Conjuntos de parâmetros

class
Cargo:0
Obrigatório:True
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes: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 se o computador não estiver configurado para executar comandos remotos.

Propriedades do parâmetro

Tipo:

String[]

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

Conjuntos de parâmetros

class
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
path
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
WQLQuery
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
query
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
list
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
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

-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\User01ou User@Contoso.com. Ou insira um objeto PSCredential, como um objeto retornado pelo cmdlet Get-Credential. Quando você digitar um nome de usuário, será solicitado que você solicite uma senha.

Propriedades do parâmetro

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

Conjuntos de parâmetros

class
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
path
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
WQLQuery
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
query
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
list
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes: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 do parâmetro

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

Conjuntos de parâmetros

class
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
path
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
WQLQuery
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
query
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
list
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes: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: Delegate (permite que os objetos permitam que outros objetos usem as credenciais do chamador).)

Propriedades do parâmetro

Tipo:ImpersonationLevel
Valor padrão:None
Valores aceitos:Default, Anonymous, Identify, Impersonate, Delegate
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

class
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
path
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
WQLQuery
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
query
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
list
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 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.

Propriedades do parâmetro

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

Conjuntos de parâmetros

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

-Locale

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

Propriedades do parâmetro

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

Conjuntos de parâmetros

class
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
path
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
WQLQuery
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
query
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
list
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Name

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

Propriedades do parâmetro

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

Conjuntos de parâmetros

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

-Namespace

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

Propriedades do parâmetro

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

Conjuntos de parâmetros

class
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
path
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
WQLQuery
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
query
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
list
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes: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 do parâmetro

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

Conjuntos de parâmetros

path
Cargo:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes: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 limitação se aplica somente ao comando atual, não à sessão ou ao computador.

Propriedades do parâmetro

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

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

-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

None

Esse cmdlet não aceita nenhuma entrada.

Saídas

None

Esse cmdlet não gera nenhuma saída.

Observações

O Windows PowerShell inclui os seguintes aliases para Invoke-WmiMethod:

  • iwmi