Get-WmiObject
Obtém as instâncias de classes do Windows Management Instrumentation (WMI) ou obtém informações sobre as classes disponíveis.
Sintaxe
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>]
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>]
Get-WmiObject
[-Amended]
[-DirectRead]
-Query <String>
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Get-WmiObject
[-Amended]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
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 Get-WmiObject
cmdlet 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 Get-WmiObject
cmdlet não usa a comunicação remota do Windows PowerShell para executar operações remotas.
Você pode usar o parâmetro ComputerName do Get-WmiObject
cmdlet mesmo que o 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 alias PSComputerName . Isso facilita incluir o 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 no computador remoto.
Get-WmiObject -Class Win32_Service -ComputerName 10.1.4.62
Exemplo 3: Obter classes WMI na raiz ou no namespace padrão do computador local
Este exemplo obtém as classes WMI na raiz ou no namespace 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 Format-List
cmdlet, 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: Interromper um serviço em um 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 método StopService da classe WMI Win32_Service nesse objeto.
(Get-WmiObject -Class Win32_Service -Filter "name='WinRM'" -ComputerName Server01).StopService()
Isso equivale a usar o Stop-Service
cmdlet.
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 Format-List
cmdlet é usado para exibir todas as propriedades do objeto retornado em uma lista. Por padrão, somente o subconjunto de propriedades definido no Types.ps1xml
arquivo de configuração é 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 em um computador remoto
Este exemplo usa o parâmetro Credential do Get-WmiObject
cmdlet para obter os serviços em um computador remoto. O valor do parâmetro Credential é um nome de conta de usuário. O usuário é solicitado para uma senha.
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 que são retornados do WMI devem conter informações aperfeiçoadas. Normalmente, informações aperfeiçoadas são informações localizáveis, como descrições de objeto e propriedade, que são anexadas ao objeto WMI.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-AsJob
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 Get-WmiObject
for usado com o parâmetro ComputerName , 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 Job
substantivo. Para obter os resultados do trabalho, use o Receive-Job
cmdlet.
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 válidos 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. É possível especificar uma autenticação padrão 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 o nome de uma classe WMI. Quando esse parâmetro é utilizado, o cmdlet recupera instâncias da classe WMI.
Tipo: | String |
Aliases: | ClassName |
Cargo: | 1 |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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 computador, use localhost
, o nome do computador local ou um ponto (.
).
Ao especificar um computador remoto, sua conta atual ou aquela que você especificar com o parâmetro Credential deve ter as permissões apropriadas para acessar as informações.
Esse parâmetro não se baseia no Windows PowerShell remotamente, que usa o WS-Management. É possível usar o parâmetro ComputerName mesmo Get-WmiObject
que o computador não esteja configurado para executar comandos remotos do WS-Management.
Tipo: | String[] |
Aliases: | Cn |
Cargo: | Named |
Valor padrão: | None |
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. As credenciais não podem ser usadas ao direcionar o computador local.
Tipo: | PSCredential |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-DirectRead
Especifica se o acesso direto ao provedor WMI é solicitado para a classe especificada sem qualquer relação com a sua classe base ou suas classes derivadas.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-EnableAllPrivileges
Habilita todos os privilégios do usuário atual antes do comando realizar a chamada WMI.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Filter
Especifica uma cláusula Where a ser usada como filtro. Utiliza a sintaxe de linguagem de consulta WMI (WQL).
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'"
Tipo: | String |
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. O padrão geralmente é definido como Representar.1
: Anônimo. Oculta as credenciais do autor da chamada.2
: Identificar. Permite que os objetos consultem as credenciais do autor da chamada.3
: Personificar. Permite que os objetos utilizem as credenciais do autor da chamada.4
: Delegar. Autoriza que os objetos permitam que outros objetos utilizem as credenciais do autor da chamada.
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 |
-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. Esse cmdlet não usa a entrada do Registro Namespace Padrão na HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\Scripting
chave do Registro para determinar o namespace padrão.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Locale
Especifica o local preferido para objetos WMI. Insira um valor em MS_<LCID>
formato.
Tipo: | String |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Namespace
Quando usado com o parâmetro Class , o parâmetro Namespace especifica o namespace do repositório WMI em que a classe WMI especificada está localizada. Quando usado com o parâmetro List , ele especifica o namespace do qual coletar informações de classe WMI.
Tipo: | String |
Aliases: | NS |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Property
Especifica as propriedades da classe WMI das quais esse cmdlet obtém informações. Digite os nomes das propriedades.
Tipo: | String[] |
Cargo: | 1 |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Query
Executa a instrução de linguagem de consulta WMI (WQL). Esse parâmetro não oferece suporte a consultas de evento.
Tipo: | String |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Recurse
Pesquisa o namespace atual e todos os outros namespaces para o nome da classe que é especificada pelo parâmetro Class.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-ThrottleLimit
Especifica o número máximo de operações de WMI que podem ser executadas simultaneamente. Esse parâmetro é válido somente quando o parâmetro AsJob é usado no comando.
Tipo: | Int32 |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
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 retornado Get-WmiObject
depende do valor do parâmetro Class .
Observações
O Windows PowerShell inclui os seguintes aliases para Get-WmiObject
:
gwmi
Para acessar informações de WMI em um computador remoto, o cmdlet deve ser executado em uma conta que seja membro do grupo 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 Types.ps1xml
arquivo de configuração. Para obter todas as propriedades de um objeto WMI, use os Get-Member
cmdlets or Format-List
.