Partilhar via


Get-WmiObject

Obtém instâncias de classes WMI (Instrumentação de Gerenciamento do Windows) ou informações sobre as classes disponíveis.

Sintaxe

query (Predefinição)

Get-WmiObject
    [-Class] <String>
    [[-Property] <String[]>]
    [-Filter <String>]
    [-Amended]
    [-DirectRead]
    [-AsJob]
    [-Impersonation <ImpersonationLevel>]
    [-Authentication <AuthenticationLevel>]
    [-Locale <String>]
    [-EnableAllPrivileges]
    [-Authority <String>]
    [-Credential <PSCredential>]
    [-ThrottleLimit <Int32>]
    [-ComputerName <String[]>]
    [-Namespace <String>]
    [<CommonParameters>]

list

Get-WmiObject
    [[-Class] <String>]
    [-Recurse]
    [-Amended]
    [-List]
    [-AsJob]
    [-Impersonation <ImpersonationLevel>]
    [-Authentication <AuthenticationLevel>]
    [-Locale <String>]
    [-EnableAllPrivileges]
    [-Authority <String>]
    [-Credential <PSCredential>]
    [-ThrottleLimit <Int32>]
    [-ComputerName <String[]>]
    [-Namespace <String>]
    [<CommonParameters>]

WQLQuery

Get-WmiObject
    -Query <String>
    [-Amended]
    [-DirectRead]
    [-AsJob]
    [-Impersonation <ImpersonationLevel>]
    [-Authentication <AuthenticationLevel>]
    [-Locale <String>]
    [-EnableAllPrivileges]
    [-Authority <String>]
    [-Credential <PSCredential>]
    [-ThrottleLimit <Int32>]
    [-ComputerName <String[]>]
    [-Namespace <String>]
    [<CommonParameters>]

class

Get-WmiObject
    [-Amended]
    [-AsJob]
    [-Impersonation <ImpersonationLevel>]
    [-Authentication <AuthenticationLevel>]
    [-Locale <String>]
    [-EnableAllPrivileges]
    [-Authority <String>]
    [-Credential <PSCredential>]
    [-ThrottleLimit <Int32>]
    [-ComputerName <String[]>]
    [-Namespace <String>]
    [<CommonParameters>]

path

Get-WmiObject
    [-Amended]
    [-AsJob]
    [-Impersonation <ImpersonationLevel>]
    [-Authentication <AuthenticationLevel>]
    [-Locale <String>]
    [-EnableAllPrivileges]
    [-Authority <String>]
    [-Credential <PSCredential>]
    [-ThrottleLimit <Int32>]
    [-ComputerName <String[]>]
    [-Namespace <String>]
    [<CommonParameters>]

Description

A partir do PowerShell 3.0, esse cmdlet foi substituído pelo Get-CimInstance.

O cmdlet Get-WmiObject obtém instâncias de classes WMI ou informações sobre as classes WMI disponíveis. Para especificar um computador remoto, use o parâmetro ComputerName. Se o parâmetro List for especificado, o cmdlet obterá informações sobre as classes WMI disponíveis em um namespace especificado. Se o parâmetro Query for especificado, o cmdlet executará uma instrução WQL (linguagem de consulta WMI).

O cmdlet Get-WmiObject não usa a comunicação remota do Windows PowerShell para executar operações remotas. Você pode usar o parâmetro ComputerName do cmdlet Get-WmiObject mesmo que seu computador não atenda aos requisitos de comunicação remota do Windows PowerShell ou não esteja configurado para comunicação remota no Windows PowerShell.

A partir do Windows PowerShell 3.0, a propriedade __Server do objeto que Get-WmiObject retorna tem um PSComputerName alias. Isso facilita a inclusão do nome do computador de origem na saída e nos relatórios.

Exemplos

Exemplo 1: Obter processos no computador local

Este exemplo obtém os processos no computador local.

Get-WmiObject -Class Win32_Process

Exemplo 2: Obtém serviços em um computador remoto

Este exemplo obtém os serviços em um computador remoto. O parâmetro ComputerName especifica o endereço IP de um computador remoto. Por padrão, a conta de usuário atual deve ser membro do grupo Administradores do no computador remoto.

Get-WmiObject -Class Win32_Service -ComputerName 10.1.4.62

Exemplo 3: Obter classes WMI no namespace raiz ou padrão do computador local

Este exemplo obtém as classes WMI no namespace raiz ou padrão do computador local.

Get-WmiObject -Namespace "root/DEFAULT" -List

Exemplo 4: Obter um serviço nomeado em vários computadores

Este exemplo obtém o serviço WinRM nos computadores especificados pelo valor do parâmetro ComputerName.

Get-WmiObject -Query "select * from Win32_Service where name='WinRM'" -ComputerName Server01, Server02 |
  Format-List -Property PSComputerName, Name, ExitCode, Name, ProcessId, StartMode, State, Status
PSComputerName : SERVER01
Name           : WinRM
ExitCode       : 0
Name           : WinRM
ProcessId      : 844
StartMode      : Auto
State          : Running
Status         : OK

PSComputerName : SERVER02
Name           : WinRM
ExitCode       : 0
Name           : WinRM
ProcessId      : 932
StartMode      : Auto
State          : Running
Status         : OK

Um operador de pipeline (|) envia a saída para o cmdlet Format-List, que adiciona a propriedade PSComputerName à saída padrão. PSComputerName é um alias da propriedade __Server dos objetos que Get-WmiObject retorna. Esse alias foi introduzido no PowerShell 3.0.

Exemplo 5: Parar um serviço num computador remoto

Este exemplo interrompe o serviço WinRM em um computador remoto. Get-WmiObject obtém a instância do objeto de serviço WinRM no Server01. Em seguida, ele invoca o StopService método da classe WMI Win32_Service nesse objeto.

(Get-WmiObject -Class Win32_Service -Filter "name='WinRM'" -ComputerName Server01).StopService()

Isso equivale a usar o cmdlet Stop-Service.

Exemplo 6: Obter o BIOS no computador local

Este exemplo obtém as informações do BIOS do computador local. O parâmetro Property do cmdlet Format-List é usado para exibir todas as propriedades do objeto retornado em uma lista. Por padrão, apenas o subconjunto de propriedades definidas no arquivo de configuração Types.ps1xml é exibido.

Get-WmiObject -Class Win32_BIOS | Format-List -Property *
Status                : OK
Name                  : Phoenix ROM BIOS PLUS Version 1.10 A05
Caption               : Phoenix ROM BIOS PLUS Version 1.10 A05
SMBIOSPresent         : True
__GENUS               : 2
__CLASS               : Win32_BIOS
__SUPERCLASS          : CIM_BIOSElement
__DYNASTY             : CIM_ManagedSystemElement
__RELPATH             : Win32_BIOS.Name="Phoenix ROM BIOS PLUS Version 1.10
__PROPERTY_COUNT      : 27
__DERIVATION          : {CIM_BIOSElement, CIM_SoftwareElement, CIM_LogicalElement,
__SERVER              : Server01
__NAMESPACE           : root\cimv2
__PATH                : \\SERVER01\root\cimv2:Win32_BIOS.Name="Phoenix ROM BIOS
BiosCharacteristics   : {7, 9, 10, 11...}
BIOSVersion           : {DELL   - 15, Phoenix ROM BIOS PLUS Version 1.10 A05}
BuildNumber           :
CodeSet               :
CurrentLanguage       : en|US|iso8859-1
Description           : Phoenix ROM BIOS PLUS Version 1.10 A05
IdentificationCode    :
InstallableLanguages  : 1
InstallDate           :
LanguageEdition       :
ListOfLanguages       : {en|US|iso8859-1}
Manufacturer          : Dell Inc.
OtherTargetOS         :
PrimaryBIOS           : True
ReleaseDate           : 20101103000000.000000+000
SerialNumber          : 8VDM9P1
SMBIOSBIOSVersion     : A05
SMBIOSMajorVersion    : 2
SMBIOSMinorVersion    : 6
SoftwareElementID     : Phoenix ROM BIOS PLUS Version 1.10 A05
SoftwareElementState  : 3
TargetOperatingSystem : 0
Version               : DELL   - 15
Scope                 : System.Management.ManagementScope
Path                  : \\SERVER01\root\cimv2:Win32_BIOS.Name="Phoenix ROM BIOS
Options               : System.Management.ObjectGetOptions
ClassPath             : \\JUNE-PC\root\cimv2:Win32_BIOS
Properties            : {BiosCharacteristics, BIOSVersion, BuildNumber, Caption...}
SystemProperties      : {__GENUS, __CLASS, __SUPERCLASS, __DYNASTY...}
Qualifiers            : {dynamic, Locale, provider, UUID}
Site                  :
Container             :

Exemplo 7: Obter os serviços num computador remoto

Este exemplo usa o parâmetro Credential do cmdlet Get-WmiObject para obter os serviços em um computador remoto. O valor do parâmetro Credential é um nome de conta de usuário. É solicitada uma palavra-passe ao utilizador.

Get-WmiObject Win32_Service -Credential FABRIKAM\administrator -ComputerName Fabrikam

Observação

As credenciais não podem ser usadas ao direcionar o computador local.

Parâmetros

-Amended

Obtém ou define um valor que indica se os objetos retornados do WMI devem conter informações alteradas. Normalmente, as informações alteradas são informações localizáveis, como descrições de objetos e propriedades, anexadas ao objeto WMI.

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

-AsJob

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 Get-WmiObject for usado com o parâmetro ComputerName, 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. Para obter os resultados do trabalho, use o cmdlet Receive-Job.

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 válidos são:

  • -1: Inalterado
  • 0: Padrão
  • 1: Nenhum (Nenhuma autenticação executada.)
  • 2: Connect (A autenticação é realizada somente quando o cliente estabelece um relacionamento com o aplicativo.)
  • 3: Call (A autenticação é realizada somente no início de cada chamada, quando o aplicativo recebe a solicitação.)
  • 4: Packet (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.)

Propriedades dos parâmetros

Tipo:AuthenticationLevel
Default value:None
Valores aceites:Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged
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

-Authority

Especifica a autoridade a ser usada para autenticar a conexão WMI. Você pode especificar a autenticação NTLM ou Kerberos padrão. 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

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Class

Especifica o nome de uma classe WMI. Quando esse parâmetro é usado, o cmdlet recupera instâncias da classe WMI.

Propriedades dos parâmetros

Tipo:String
Default value:None
Suporta carateres universais:False
NãoMostrar:False
Aliases:Nome da classe

Conjuntos de parâmetros

query
Position:1
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False
list
Position:1
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-ComputerName

Especifica o computador de destino para a operação de gerenciamento. Insira um nome de domínio totalmente qualificado (FQDN), um nome NetBIOS ou um endereço IP. Quando o computador remoto está em um domínio diferente do computador local, o nome de domínio totalmente qualificado é necessário.

O padrão é o computador local. Para especificar o computador local, como em uma lista de nomes de computadores, use localhost, o nome do computador local ou um ponto (.).

Ao especificar um computador remoto, sua conta atual ou aquela especificada com o parâmetro Credential deve ter permissões apropriadas para acessar as informações.

Esse parâmetro não depende da comunicação remota do Windows PowerShell, que usa o WS-Management. Você pode usar o parâmetro ComputerName de Get-WmiObject mesmo que o computador não esteja configurado para executar WS-Management comandos remotos.

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:False
NãoMostrar:False
Aliases:CN

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\User01ou User@Contoso.com. Ou insira um objeto PSCredential , como um objeto retornado pelo cmdlet . Quando introduz um nome de utilizador, é-lhe solicitada uma palavra-passe. As credenciais não podem ser usadas ao direcionar o computador local.

Propriedades dos parâmetros

Tipo:PSCredential
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

-DirectRead

Especifica se o acesso direto ao provedor WMI é solicitado para a classe especificada sem qualquer consideração à sua classe base ou às suas classes derivadas.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

query
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

-EnableAllPrivileges

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

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Filter

Especifica uma cláusula Where a ser usada como filtro. Usa a sintaxe da WQL (WMI Query Language).

Importante

Não inclua a palavra-chave Where no valor do parâmetro. Por exemplo, os comandos a seguir retornam apenas os discos lógicos que têm um DeviceID de 'C:\ e serviços que têm o nome 'WinRM' sem usar a palavra-chave Where.

Get-WmiObject Win32_LogicalDisk -Filter "DeviceID = 'C:' "

Get-WmiObject Win32_Service -Filter "name='WinRM'"

Propriedades dos parâmetros

Tipo:String
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

query
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. O padrão geralmente é definido como Representar.
  • 1: Anónimo. Oculta as credenciais do chamador.
  • 2: Identificar. Permite que os objetos consultem as credenciais do chamador.
  • 3: Personificar. Permite que os objetos usem as credenciais do chamador.
  • 4: Delegado. Permite que outros objetos usem as credenciais do chamador.

Propriedades dos parâmetros

Tipo:ImpersonationLevel
Default value:None
Valores aceites:Default, Anonymous, Identify, Impersonate, Delegate
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

-List

Obtém os nomes das classes WMI no namespace do repositório WMI especificado pelo parâmetro Namespace.

Se você especificar o parâmetro List, mas não o parâmetro Namespace, Get-WmiObject usará o namespace root/CIMV2 por padrão. Este cmdlet não usa o Namespace Padrão entrada do Registro na chave do Registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\Scripting para determinar o namespace padrão.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

list
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Locale

Especifica a localidade preferida para objetos WMI. Insira um valor no formato MS_<LCID>.

Propriedades dos parâmetros

Tipo:String
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

-Namespace

Quando usado com o parâmetro Class, o parâmetro Namespace especifica o namespace do repositório WMI onde a classe WMI especificada está localizada. Quando usado com o parâmetro List, ele especifica o namespace a partir do qual coletar informações de classe WMI.

Propriedades dos parâmetros

Tipo:String
Default value:None
Suporta carateres universais:False
NãoMostrar:False
Aliases:NS

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

-Property

Especifica as propriedades da classe WMI das quais esse cmdlet obtém informações. Insira os nomes das propriedades.

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

query
Position:1
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Query

Executa a instrução WQL (WMI Query Language) especificada. Este parâmetro não suporta consultas de eventos.

Propriedades dos parâmetros

Tipo:String
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

WQLQuery
Position:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Recurse

Pesquisa o namespace atual e todos os outros namespaces para o nome da classe especificado pelo parâmetro Class.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

list
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-ThrottleLimit

Especifica o número máximo de operações WMI que podem ser executadas simultaneamente. Esse parâmetro é válido somente quando o parâmetro AsJob é usado no comando.

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

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

Não é possível canalizar a entrada para Get-WmiObject.

Saídas

PSObject or System.Management.Automation.RemotingJob

Quando você usa o parâmetro AsJob, o cmdlet retorna um objeto de trabalho. Caso contrário, o objeto que Get-WmiObject retorna depende do valor do parâmetro Class.

Notas

O Windows PowerShell inclui os seguintes aliases para Get-WmiObject:

  • gwmi

Para acessar informações WMI em um computador remoto, o cmdlet deve ser executado em uma conta que seja membro do grupo de administradores locais no computador remoto. Ou, o controle de acesso padrão no namespace WMI do repositório remoto pode ser alterado para conceder direitos de acesso a outras contas.

Apenas algumas das propriedades de cada classe WMI são exibidas por padrão. O conjunto de propriedades exibido para cada classe WMI é especificado no arquivo de configuração Types.ps1xml. Para obter todas as propriedades de um objeto WMI, use os cmdlets Get-Member ou Format-List.