about_WMI

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

TÓPICO

about_WMI

DESCRIÇÃO BREVE

O Windows Management Instrumentation (WMI) usa o Common Information Model (CIM) para representar sistemas, aplicativos, redes, dispositivos e outros componentes gerenciáveis da empresa moderna.

DESCRIÇÃO LONGA

Descreve a Instrumentação de Gerenciamento do Windows (WMI), que é a implementação da Microsoft do padrão da indústria do Web-Based Enterprise Management (WBEM).

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

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

        Get-WmiObject -Class __Provider

TRÊS COMPONENTES DE WMI

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

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

        Get-WmiObject -Class __Namespace

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

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

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

Os provedores de 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 Windows PowerShell. A maioria dos provedores de WMI são provedores dinâmicos, o que significa que eles obtêm os dados dinamicamente, quando solicitado, por meio do aplicativo de gerenciamento.

LOCALIZANDO AS 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 torna-se a identificação da classe WMI apropriada para usar a fim de executar uma tarefa específica. Windows PowerShell 3.0 fornece duas maneiras para localizar classes WMI que estão relacionadas a um tópico específico.

Por exemplo, para localizar as classes de WMI no namespace root\CIMV2 de WMI que são relacionados a discos, você pode usar uma consulta conforme mostrado aqui.

        Get-WmiObject -List *disk*

Para localizar classes de WMI que estão relacionadas à memória, você pode usar uma consulta como mostrado aqui.

        Get-WmiObject -List *memory*

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

        Get-CimClass *video*

A expansão da tabulação funciona ao alterar os namespaces de WMI e, portanto, o uso de expansão da tabulação torna os namespaces de sub-WMI facilmente identificáveis. No exemplo a seguir, o cmdlet Get-CimClass lista classes WMI relacionadas às configurações de energia. Para localizá-lo, digite o namespace root/CIMV2/ WMI e pressione a Guia principal várias vezes até que o namespace power apareça. Eis o comando:

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