about_WMI_Cmdlets

Aplica-se a: Windows PowerShell 2.0, Windows PowerShell 3.0

Insira a introdução aqui.

TÓPICO

about_WMI_cmdlets

DESCRIÇÃO BREVE

Fornece informações de segundo plano sobre a 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 da WMI para o Windows PowerShell, a comunicação remota baseada na WMI, os aceleradores da WMI e a solução de problemas da WMI. Este tópico também fornece links para obter mais informações sobre a WMI.

SOBRE A WMI

A WMI (Instrumentação de Gerenciamento do Windows) é a implementação pela Microsoft do WBEM (Web-Based Enterprise Management), que é uma iniciativa do setor para desenvolver uma tecnologia padrão para acessar informações de gerenciamento em um ambiente corporativo. A WMI usa o padrão CIM (Common Information Model) do setor para representar sistemas, aplicativos, redes, dispositivos e outros componentes gerenciados. O CIM é desenvolvido e mantido pela DMTF (Distributed Management Task Force). Você pode usar a WMI para gerenciar computadores locais e remotos. Por exemplo, você pode usar a WMI para fazer o seguinte:

Iniciar um processo em um computador remoto.

Reiniciar um computador remotamente.

Obter uma lista dos aplicativos que são instalados em um computador local ou remoto.

Consultar os logs de eventos do Windows em um computador local ou remoto.

CMDLETS DA WMI PARA WINDOWS POWERSHELL

O Windows PowerShell implementa a funcionalidade WMI por meio de um conjunto de cmdlets que está disponível no Windows PowerShell por padrão. Você pode usar esses cmdlets para concluir todas as tarefas necessárias para gerenciar computadores locais e remotos.

Os seguintes cmdlets da WMI estão incluídos.

      Cmdlet                 Description
      ------------------     ----------------------------------------------
      Get-WmiObject          Gets instances of WMI classes or information 
                             about the available classes.

      Invoke-WmiMethod       Calls WMI methods.

      Register-WmiEvent      Subscribes to a WMI event.

      Remove-WmiObject       Deletes WMI classes and instances.

      Set-WmiInstance        Creates or modifies instances of WMI classes.

COMANDOS DE EXEMPLO

O comando a seguir exibe as informações do BIOS do 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.

          C:\PS> get-wmiobject -query "select * from win32_service where name='WinRM'" -computername server01, server01, server03

O seguinte comando mais complexo sai de todas as instâncias de um programa.

          C:\PS> notepad.exe
          C:\PS> $np = get-wmiobject -query "select * from win32_process where name='notepad.exe'" 
          C:\PS> $np | remove-wmiobject

COMUNICAÇÃO REMOTA BASEADA EM WMI

Embora a capacidade de gerenciar um sistema local por meio da WMI seja útil, são os recursos de comunicação remota que tornam a WMI uma poderosa ferramenta administrativa. A WMI usa o DCOM (Distributed Component Object Model) da Microsoft para se conectar aos sistemas e gerenciá-los. Talvez seja necessário configurar alguns sistemas para permitir conexões do DCOM. As configurações de firewall e as permissões bloqueadas do DCOM podem bloquear a capacidade da WMI de gerenciar os sistemas remotamente.

ACELERADORES DE TIPO DA WMI

O Windows PowerShell inclui aceleradores de tipo da WMI. Esses aceleradores de tipo da WMI (atalhos) permitem um acesso mais direto a um objeto de WMI que o oferecido por uma abordagem de acelerador não relacionado a tipo.

Os aceleradores de tipo a seguir são compatíveis com a WMI:

[WMISEARCHER]

Um atalho para pesquisar objetos de WMI.

[WMICLASS]

Um atalho para acessar as propriedades e métodos estáticos de uma classe.

[WMI]

Um atalho para obter uma só 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 para, em seguida, executar um comando GET() nele.

Por exemplo:

      PS> $s = [WmiSearcher]'Select * from Win32_Process where Handlecount > 1000'
      PS> $s.Get() |sort handlecount |ft handlecount,__path,name -auto
      handlecount  __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. Ele tem um construtor de cadeia de caracteres que usa um caminho absoluto ou local da WMI para uma classe WMI e retorna um objeto que está 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. Ele tem um construtor de cadeia de caracteres que usa um caminho absoluto ou local da WMI para uma instância de WMI e retorna um objeto que está 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 DA 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 a WMI. Você pode receber 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 a WMI remotamente, você deve ter direitos de administrador local no computador remoto. Se não tiver, o acesso a esse computador será negado.

Para verificar a segurança do namespace:

a. Clique em Iniciar, clique com o botão direito do mouse em Meu computador com o botão direito e, em seguida, clique em Gerenciar.

b. Em Gerenciamento do computador, expanda Serviços e aplicativos, clique com o botão direito do mouse em Controle WMI e clique em Propriedades.

c. Na caixa de diálogo Propriedades de Controle WMI, clique na guia Segurança.

Problema 3:

Um firewall está bloqueando o acesso ao computador remoto.

A WMI usa os protocolos DCOM (Distributed COM) e RPC (Chamada de Procedimento Remoto) para atravessar a rede. Por padrão, muitos firewalls bloqueiam o tráfego de DCOM e RPC. Se seu firewall estiver bloqueando esses protocolos, sua conexão falhará. Por exemplo, o Firewall do Microsoft Windows XP Service Pack 2 está configurado para bloquear automaticamente todo tráfego de rede não solicitado, inclusive de DCOM e WMI. Em sua configuração padrão, o Firewall do Windows rejeita uma solicitação WMI recebida e você receberá a seguinte mensagem de erro:

          "Remote server machine does not exist or is unavailable"

Mais informações sobre WMI

Para obter mais informações sobre a WMI, consulte os seguintes tópicos na biblioteca MSDN (Microsoft Developer Network):

"Sobre WMI":

https://go.microsoft.com/fwlink/?LinkId=142212

"Solução de problemas da WMI"

https://go.microsoft.com/fwlink/?LinkId=142213

E consulte "Segredos da Instrumentação de Gerenciamento do Windows – Solução de problemas e dicas" no Microsoft TechNet Script Center:

https://go.microsoft.com/fwlink/?LinkId=142214

CONSULTE TAMBÉM

Versão online: https://go.microsoft.com/fwlink/?LinkId=142219

Get-WmiObject

Invoke-WmiMethod

Register-WmiEvent

Remove-WmiObject

Set-WmiInstance