Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Breve descrição
Fornece informações básicas sobre o WMI (Instrumentação de Gerenciamento do Windows) e o 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 mais informações sobre WMI.
Sobre o WMI
A Windows Management Instrumentation (WMI) é a implementação da Microsoft do Web-Based Enterprise Management (WBEM), uma iniciativa da indústria para desenvolver uma tecnologia padrão para aceder a informações de gestão num ambiente empresarial. A WMI utiliza o padrão da indústria do modelo CIM (Common Information Model) para representar sistemas, aplicações, redes, dispositivos e outros componentes geridos. O CIM é desenvolvido e mantido pela Distributed Management Task Force (DMTF). 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 seguintes cmdlets WMI estão incluídos.
| Cmdlet | Description |
|---|---|
| Get-WmiObject | Obtém instâncias de classes WMI ou informações |
| sobre as aulas disponíveis. | |
| Invoke-WmiMethod | Chama métodos WMI. |
| Register-WmiEvent | Inscreve-se num 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 através do WMI seja útil, são os recursos de comunicação remota que tornam o WMI uma poderosa ferramenta administrativa. 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 do tipo WMI
O Windows PowerShell inclui aceleradores de tipo WMI. Esses aceleradores de tipo WMI (atalhos) permitem acesso mais direto a objetos WMI do que uma abordagem de acelerador sem tipo permitiria.
Os seguintes aceleradores de tipo são suportados com WMI:
[wmisearcher] - Um atalho para procurar objetos WMI.
[wmiclass] - Um atalho para acessar as propriedades estáticas e 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. Pode ser necessário um construtor de cadeia de caracteres para criar um pesquisador no qual você pode fazer um 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 leva um caminho WMI local ou absoluto para uma classe WMI e retorna um objeto que está vinculado 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 que está vinculado 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. Pode receber a seguinte mensagem de erro:
Remote server machine does not exist or is unavailable
Se receber esta mensagem de erro, verifique se o computador está online. Tente executar 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. Se não o fizer, o acesso a esse computador será negado.
Para verificar a segurança do namespace:
- Clique em Iniciar, clique com o botão direito do rato em O Meu Computador e, em seguida, clique em Gerir.
- 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, sua 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