about_WMI

Descrição breve

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

Descrição longa

O WMI (Instrumentação de Gerenciamento do Windows) é a implementação da Microsoft do WBEM (Web-Based Enterprise Management), 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 do WMI a seguir 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 parecidos com 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 seguinte formato.

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 são solicitados por meio do aplicativo de gerenciamento.

ENCONTRANDO CLASSES WMI

Em uma instalação padrão do Windows 8, há mais de 1.100 classes WMI no root/cimv2. Com essas muitas 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 classes WMI relacionadas ao vídeo.

Get-CimClass *video*

A expansão de guias funciona ao alterar namespaces WMI e, portanto, o uso da expansão de guias torna os namespaces sub-WMI facilmente detectáveis. No exemplo a seguir, o Get-CimClass cmdlet lista classes WMI relacionadas a 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 seja exibido. Veja o código:

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