Compartilhar via


about_WMI_Cmdlets

Descrição breve

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 A 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 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 turmas disponíveis.
Invoke-WmiMethod Chama os métodos WMI.
Register-WmiEvent Inscreve-se em 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 encerra 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 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 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 são suportados com o WMI:

[WMISEARCHER] - Um atalho para procurar 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 tipos 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 usa 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 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 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 você não fizer isso, 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 mouse em Meu computador e clique em Gerenciar.
  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

Confira também