Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Descrição curta
Fornece informações de segundo plano sobre WMI (Instrumentação de Gerenciamento do Windows) e Windows PowerShell.
Descrição longa
Este tópico fornece informações sobre a tecnologia WMI, os cmdlets WMI para Windows PowerShell, comunicação remota baseada em WMI, aceleradores WMI e solução de problemas WMI. Este tópico também fornece links para outras informações sobre WMI.
Sobre o WMI
A WMI (Instrumentação de Gerenciamento do Windows) é a implementação do WBEM (Gerenciamento Corporativo Baseado na Web) da Microsoft, que é uma iniciativa de mercado para desenvolver uma tecnologia padrão para acessar informações de gerenciamento em um ambiente corporativo. A WMI usa o padrão de mercado CIM (Modelo de Informação Comum) para representar sistemas, aplicativos, redes, dispositivos e outros componentes gerenciados. O CIM é desenvolvido e mantido pela DMTF (Distributed Management Task Force). Você pode usar o WMI para gerenciar computadores locais e remotos. Por exemplo, você pode usar o WMI para fazer o seguinte:
- Inicie um processo em um computador remoto.
- Reinicie um computador remotamente.
- Obtenha uma lista dos aplicativos instalados em um computador local ou remoto.
- Consulte os logs de eventos do Windows em um computador local ou remoto.
Os cmdlets WMI para Windows PowerShell
O Windows PowerShell implementa a funcionalidade WMI por meio de um conjunto de cmdlets que estão disponíveis no Windows PowerShell por padrão. Você pode usar esses cmdlets para concluir as tarefas de ponta a ponta necessárias para gerenciar computadores locais e remotos.
Os cmdlets WMI a seguir estão incluídos.
| Cmdlet | Descrição |
|---|---|
| Get-WmiObject | Obtém instâncias de classes ou informações WMI |
| sobre as classes disponíveis. | |
| Invoke-WmiMethod | Chama os métodos WMI. |
| Register-WmiEvent | Assina um evento WMI. |
| Remove-WmiObject | Exclui classes e instâncias WMI. |
| Set-WmiInstance | Cria ou modifica instâncias de classes WMI. |
Comandos de exemplo
O comando a seguir exibe as informações do BIOS para o computador local.
C:\PS> Get-WmiObject Win32_BIOS | Format-List *
O comando a seguir exibe informações sobre o serviço WinRM para três computadores remotos.
$wql = "select * from Win32_Service where name='WinRM'"
Get-WmiObject -Query $wql -ComputerName server01, server01, server03
O comando mais complexo a seguir sai de todas as instâncias de um programa.
C:\PS> notepad.exe
C:\PS> $wql = "select * from Win32_Process where name='notepad.exe'"
C:\PS> $np = Get-WmiObject -Query $wql
C:\PS> $np | Remove-WmiObject
Comunicação remota baseada em WMI
Embora a capacidade de gerenciar um sistema local por meio do WMI seja útil, são os recursos de comunicação remota que tornam o WMI uma ferramenta administrativa poderosa. O WMI usa o DCOM (Distributed Component Object Model) da Microsoft para se conectar e gerenciar sistemas. Talvez seja necessário configurar alguns sistemas para permitir conexões DCOM. As configurações de firewall e as permissões DCOM bloqueadas podem bloquear a capacidade do WMI de gerenciar sistemas remotamente.
Aceleradores de tipo WMI
O Windows PowerShell inclui aceleradores do tipo WMI. Esses aceleradores de tipo WMI (atalhos) permitem acesso mais direto a objetos WMI do que uma abordagem de acelerador de tipo não permitiria.
Os seguintes aceleradores de tipo têm suporte com o WMI:
[wmisearcher] - Um atalho para pesquisar objetos WMI.
[wmiclass] – um atalho para acessar as propriedades estáticas e os métodos de uma classe.
[wmi] – um atalho para obter uma única instância de uma classe.
[wmisearcher] é um acelerador de tipo para um ManagementObjectSearcher. Ele pode usar um construtor de cadeia de caracteres para criar um searcher no qual você possa fazer uma Get().
Por exemplo:
PS> $s = [wmisearcher]'Select * from Win32_Process where HandleCount > 1000'
PS> $s.Get() | sort HandleCount | ft HandleCount, __PATH, Name -Auto
Count __PATH Name
----- ------ ----
1105 \\SERVER01\root\cimv2:Win32_Process.Handle="3724" PowerShell...
1132 \\SERVER01\root\cimv2:Win32_Process.Handle="1388" winlogon.exe
1495 \\SERVER01\root\cimv2:Win32_Process.Handle="2852" iexplore.exe
1699 \\SERVER01\root\cimv2:Win32_Process.Handle="1204" OUTLOOK.EXE
1719 \\SERVER01\root\cimv2:Win32_Process.Handle="1912" iexplore.exe
2579 \\SERVER01\root\cimv2:Win32_Process.Handle="1768" svchost.exe
[wmiclass] é um acelerador de tipo para ManagementClass. Isso tem um construtor de cadeia de caracteres que usa um caminho WMI local ou absoluto para uma classe WMI e retorna um objeto associado a essa classe.
Por exemplo:
PS> $c = [wmiclass]"root\CIMV2:Win32_Process"
PS> $c |fl *
Name : Win32_Process
__GENUS : 1
__CLASS : Win32_Process
__SUPERCLASS : CIM_Process
__DYNASTY : CIM_ManagedSystemElement
__RELPATH : Win32_Process
__PROPERTY_COUNT : 45
__DERIVATION : {CIM_Process, CIM_LogicalElement,
CIM_ManagedSystemElement}
__SERVER : SERVER01
__NAMESPACE : ROOT\cimv2
__PATH : \\SERVER01\ROOT\cimv2:Win32_Process
[wmi] é um acelerador de tipo para ManagementObject. Isso tem um construtor de cadeia de caracteres que usa um caminho WMI local ou absoluto para uma instância WMI e retorna um objeto associado a essa instância.
Por exemplo:
PS> $p = [wmi]'\\SERVER01\root\CIMV2:Win32_Process.Handle="1204"'
PS> $p.Name
OUTLOOK.EXE
Solução de problemas do WMI
Os problemas a seguir são os problemas mais comuns que podem ocorrer quando você tenta se conectar a um computador remoto.
Problema 1: O computador remoto não está online.
Se um computador estiver offline, você não poderá se conectar a ele usando o WMI. Você pode ver a seguinte mensagem de erro:
Remote server machine does not exist or is unavailable
Se você receber essa mensagem de erro, verifique se o computador está online. Tente fazer ping no computador remoto.
Problema 2: Você não tem direitos de administrador local no computador remoto.
Para usar o WMI remotamente, você deve ter direitos de administrador local no computador remoto. Caso contrário, o acesso a esse computador será negado.
Para verificar a segurança do namespace:
- Clique em Iniciar, clique com o botão direito do mouse em Meu Computador e clique em Gerenciar.
- Em Gerenciamento do Computador, expanda Serviços e Aplicativos, clique com o botão direito do mouse em Controle WMI e clique em Propriedades.
- Na caixa de diálogo Propriedades do Controle WMI , clique na guia Segurança .
Problema 3: Um firewall está bloqueando o acesso ao computador remoto.
O WMI usa os protocolos DCOM (Distributed COM) e RPC (Remote Procedure Call) para atravessar a rede. Por padrão, muitos firewalls bloqueiam o tráfego DCOM e RPC. Se o firewall estiver bloqueando esses protocolos, a conexão falhará. Por exemplo, o Firewall do Windows no Microsoft Windows XP Service Pack 2 está configurado para bloquear automaticamente todo o tráfego de rede não solicitado, incluindo DCOM e WMI. Em sua configuração padrão, o Firewall do Windows rejeita uma solicitação WMI de entrada e você recebe a seguinte mensagem de erro:
Remote server machine does not exist or is unavailable