Compartilhar via


about_WMI

Descrição breve

O WMI (Instrumentação de Gerenciamento do Windows) usa o CIM (Common Information Model) para representar sistemas, aplicativos, redes, dispositivos e outros componentes gerenciáveis da empresa moderna.

Descrição longa

O WMI (Windows Management Instrumentation) é a implementação do WBEM (Web-Based Enterprise Management) da Microsoft, o padrão do setor.

O WMI clássico usa o DCOM para se comunicar com dispositivos em rede para gerenciar sistemas remotos. O Windows PowerShell 3.0 apresenta um modelo de provedor CIM que usa o WinRM para remover a dependência do DCOM. Esse modelo de provedor CIM também usa novas APIs de provedor WMI que permitem que os desenvolvedores escrevam cmdlets do Windows PowerShell em código nativo (C++).

Não confunda provedores WMI com provedores do Windows PowerShell. Muitos recursos do Windows têm um provedor WMI associado que expõe seus recursos de gerenciamento. Para obter provedores WMI, execute uma consulta WMI que obtenha instâncias da classe WMI __Provider , como a consulta a seguir.

Get-WmiObject -Class __Provider

TRÊS COMPONENTES DO WMI

Os três componentes a seguir do WMI interagem com o Windows PowerShell: Namespaces, Provedores e Classes.

Os namespaces WMI organizam provedores WMI e classes WMI em grupos de componentes relacionados. Dessa forma, eles são semelhantes aos namespaces do .NET Framework. Os namespaces não são locais físicos, mas são mais como bancos de dados lógicos. Todos os namespaces WMI são instâncias da classe de sistema __Namespace. O namespace WMI padrão é root/cimv2 (desde o Microsoft Windows 2000). Para usar o Windows PowerShell para obter namespaces WMI na sessão atual, use um comando com o formato a seguir.

Get-WmiObject -Class __Namespace

Para obter namespaces WMI em outros namespaces, use o parâmetro Namespace para alterar o local da pesquisa. O comando a seguir localiza namespaces WMI que residem no root/cimv2/Applications namespace.

Get-WmiObject -Class __Namespace -Namespace root/cimv2/applications

Os namespaces WMI são hierárquicos. Portanto, obter uma lista de todos os namespaces em um sistema específico requer a execução de uma consulta recursiva começando no namespace raiz.

Os provedores WMI expõem informações sobre objetos gerenciáveis do Windows. Um provedor recupera dados de um componente e passa esses dados por meio do WMI para um aplicativo de gerenciamento, como o Windows PowerShell. A maioria dos provedores WMI são provedores dinâmicos, o que significa que eles obtêm os dados dinamicamente quando solicitados por meio do aplicativo de gerenciamento.

LOCALIZANDO CLASSES WMI

Em uma instalação padrão do Windows 8, há mais de 1.100 classes WMI no root/cimv2. Com tantas classes WMI, o desafio passa a ser identificar a classe WMI apropriada a ser usada para executar uma tarefa específica. O Windows PowerShell 3.0 fornece duas maneiras de localizar classes WMI relacionadas a um tópico específico.

Por exemplo, para localizar classes WMI no root/cimv2 namespace WMI relacionadas a discos, você pode usar uma consulta como a mostrada aqui.

Get-WmiObject -List *disk*

Para localizar classes WMI relacionadas à memória, você pode usar uma consulta como a mostrada aqui.

Get-WmiObject -List *memory*

Os cmdlets CIM também fornecem a capacidade de descobrir classes WMI. Para fazer isso, use o Get-CimClass cmdlet. O comando mostrado aqui lista as classes WMI relacionadas ao vídeo.

Get-CimClass *video*

A expansão de tabulação funciona ao alterar namespaces WMI e, portanto, o uso da expansão de tabulação torna os namespaces sub-WMI facilmente detectáveis. No exemplo a seguir, o cmdlet lista as Get-CimClass classes WMI relacionadas às configurações de energia. Para localizá-lo, digite o root/cimv2 namespace e pressione a tecla Tab várias vezes até que o namespace power apareça. Veja o código:

Get-CimClass *power* -Namespace root/cimv2/power