Partilhar via


about_WMI_Cmdlets

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:

  1. Clique em Iniciar, clique com o botão direito do rato em O Meu Computador e, em seguida, clique em Gerir.
  2. Em Gerenciamento do Computador, expanda Serviços e Aplicativos, clique com o botão direito do mouse em Controle WMI e clique em Propriedades.
  3. 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

Consulte também