Como usar o WMI

Você pode usar o WMI de aplicativos cliente e scripts. Ele fornece uma infraestrutura que facilita a descoberta e a execução de tarefas de gerenciamento. Além disso, você pode adicionar ao conjunto de possíveis tarefas de gerenciamento criando seus próprios provedores WMI.

Observação

A versão de última geração do WMI para gravar aplicativos e scripts está disponível por meio da MI (Infraestrutura de Gerenciamento) do Windows. Para obter mais informações, confira Provedores e clientes de MI.

Os seguintes tópicos são discutidos nesta seção:

Como obter dados do WMI

O procedimento a seguir descreve como obter dados do WMI gravando um script ou aplicativo.

Para obter dados do WMI gravando um script ou aplicativo

  1. Decida qual linguagem usar. Para obter mais informações sobre scripts, confira Como criar um script WMI. Para obter mais informações sobre C++, confira Como criar um aplicativo do WMI usando C++. Para usar mais informações sobre C# ou WMI .NET, confira Visão geral do .NET do WMI.

    Você pode exibir ou manipular dados do WMI em muitos linguagens. A tabela a seguir lista os tópicos que descrevem como usar os scripts e linguagens de aplicativo para obter dados.

Idioma do aplicativo Tópico
Scripts gravados na hospedagem de script do Microsoft ActiveX, incluindo Visual Basic Scripting Edition (VBScript) e Perl
API de Script para WMI.
Comece com Como criar um script do WMI.
Para obter exemplos de código de script, confia Tarefas do WMI para Scripts e Aplicativos e o Repositório de Scripts do TechNet ScriptCenter.
Windows PowerShell
Introdução ao Windows PowerShell
Cmdlets do PowerShell do WMI, como Get-WmiObject.
Aplicativos do Visual Basic
API de Script para WMI.
Páginas de Active Server
API de Script para WMI.
Come com Como criar Páginas de Servidor Ativo para WMI.
aplicativos C++
API COM para WMI.
Comece com Como criar um aplicativo do WMI usando C++ e Exemplos de Aplicativo C++ do WMI (contém exemplos).
Aplicativos .NET Framework gravados no C#, Visual Basic .NET ou J#
Classes no namespace Microsoft.Management.Infrastructure.
Observação:System.Management foi o namespace original que cobria o código gerenciado para WMI. No entanto, a tecnologia subjacente para System.Management geralmente é mais lenta e não é dimensionada tão bem quanto Microsoft.Management.Infrastructure. Dessa forma, não é recomendável que você use System.Management para novos projetos. (Para obter mais informações sobre System.Management, confira Visão geral do .NET do WMI.)
  1. Verifique se as conexões com computadores remotos funcionam.

    Para obter mais informações, confira Como conectar-se ao WMI em um computador remoto.

  2. Conectar-se ao WMI em computadores remotos requer as configurações de segurança corretas, conforme explicado em Como manter a segurança do WMI. A tabela a seguir lista os tópicos que descrevem como definir as configurações de segurança com os script e linguagens de aplicativo.

    Linguagem Tópico
    Scripts em aplicativos do Visual Basic em qualquer linguagem
    Como definir o nível de segurança padrão do processo usando o VBScript
    Páginas de Active Server
    Como configurar o IIS 5 e posterior para script ASP do WMI
    C++
    Como definir o nível de segurança do processo padrão usando o C++ e Como definir a segurança em IWbemServices e outros proxies
  3. Depois de se conectar ao WMI, você pode obter dados por meio de consultas e enumerações.

    Para obter mais informações, confira Como manipular informações de classe e instância e Como consultar com o WQL.

  4. Os dados do registro estão disponíveis por meio do WMI e você pode criar novas chaves e valores ou modificar os existentes.

    Para obter mais informações, confira Como modificar o Registro do Sistema.

  5. Você pode assinar notificações de eventos por meio do WMI, temporariamente entre reinicializações do sistema ou permanentemente.

    Para obter mais informações, confira Como monitorar eventos e Como receber um evento do WMI.

  6. Os dados do contador de desempenho para um sistema estão disponíveis por meio do WMI.

    Os contadores da biblioteca de desempenho do sistema são convertidos em classes do WMI. Para obter mais informações, confira Como monitorar dados de desempenho.

  7. A seção Tarefas do WMI para Scripts e Aplicativos descreve como realizar muitas tarefas administrativas com o WMI.

Como fornecer dados ao WMI

O procedimento a seguir descreve como fornecer dados ao WMI gravando um provedor.

Para fornecer dados ao WMI gravando um provedor

  • Decida sobre o tipo de provedor a ser gravado.

    Você não pode gravar um provedor do WMI no VBScript. No entanto, você pode adotar várias outras abordagens para gravar um provedor COM do WMI:

    • Como usar o Assistente da ATL do WMI no Visual Studio.

      Essa abordagem cria um provedor COM não gerenciado. Para obter mais informações, confira Como adicionar um Provedor de Instância do WMI e Como adicionar um Provedor de Eventos do WMI.

    • Como usar o COM diretamente em qualquer ambiente de desenvolvimento integrado.

      Essa abordagem cria um provedor COM não gerenciado.

    • Como usar o WMI no .NET Framework para criar um provedor de código gerenciado.

      Essa abordagem cria um provedor de código gerenciado. Os provedores de código gerenciado podem ser gravados em qualquer linguagem do .NET Framework, são mais simples de gravar do que os provedores COM do WMI e podem obter dados das classes baseadas em CIM do WMI, como classes Win32. No entanto, o provedor do .NET Framework no WMI tem algumas limitações. Para saber mais, confira Como gerenciar aplicativos usando o WMI{2.

    • Não é recomendável usar as classes de estrutura do provedor.

      A estrutura do provedor foi substituída pelos assistentes da ATL do WMI, usando o COM diretamente ou provedores do .NET Framework. A criação de um provedor COM do WMI com as classes de estrutura do provedor não é mais recomendada. A tabela a seguir lista os tópicos que descrevem como usar provedores COM ou .NET Framework.

    Provedor Tópico
    Provedor COM no mesmo processo que o WMI
    Como fornecer dados ao WMI
    Provedores COM desacoplados
    Como incorporar um provedor em um aplicativo
    Provedor .NET Framework no C# ou no Visual Basic.NET
    Como gerenciar aplicativos usando wmio WMI

Tarefas importantes para WMI

Os tópicos a seguir fornecem informações sobre como usar o WMI para monitorar e controlar componentes corporativos.

Tópico Descrição
Tarefas do WMI para scripts e aplicativos
Descreve como encontrar a classe WMI correta e os procedimentos a serem usados em scripts e aplicativos que executam tarefas comuns de administração de computadores e rede, como adicionar uma nova conexão de impressora para um computador remoto ou encontrar todos os hotfixes instalados em um computador.
Como criar um script ou aplicativo do WMI
Qualquer linguagem de script, como VBScript ou Perl, que funciona com objetos ActiveX, pode acessar dados WMI. Os aplicativos podem acessar o WMI no C++ usando a API COM para WMI ou no Visual Basic, usando a biblioteca de tipos Wbemdisp.tlb e a API de Scripts para WMI.
Como conectar-se ao WMI em um computador remoto
Descreve como scripts, aplicativos e provedores podem estabelecer conexões com o WMI em computadores remotos para obter dados ou controlar hardware e software.
Como conectar-se ao WMI em um computador remoto usando o Windows PowerShell
Descreve como usar o Windows PowerShell para estabelecer conexões com o WMI em computadores remotos para obter dados ou para controlar hardware e software.
Monitorando eventos
Descreve como obter notificações de eventos criando consumidores de eventos temporários ou permanentes do WMI.
Como fornecer dados ao WMI
O WMI fornece dados de gerenciamento dinâmico para scripts e aplicativos cliente obtendo-os a partir dos provedores.
Como obter e fornecer dados em um computador de 64 bits
Descreve como acessar provedores não padrão e considerações para gravadores de provedor em sistemas de 64 bits.