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 tarefas de gerenciamento possíveis criando seus próprios provedores WMI.

Observação

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

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

Obtendo dados do WMI

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

Para obter dados do WMI escrevendo um script ou aplicativo

  1. Decida qual linguagem deve ser usada. Para obter mais informações sobre scripts, consulte Criar um script WMI. Para obter mais informações sobre C++, consulte Criar um aplicativo WMI usando C++. Para usar mais informações sobre C# ou WMI .NET, consulte Visão geral de WMI .NET.

    Você pode exibir ou manipular dados WMI em várias linguagens. A tabela a seguir lista os tópicos que descrevem como usar as linguagens de script e aplicativo para obter dados.

Idioma do aplicativo Tópico
Scripts escritos em hospedagem de scripts Microsoft ActiveX, incluindo Visual Basic Scripting Edition (VBScript) e Perl
API de script para WMI.
Comece Criando um script WMI.
Para obter exemplos de código de script, consulte Tarefas 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 Visual Basic
API de script para WMI.
Active Server Pages (ASP)
API de script para WMI.
Comece Criando páginas de servidor ativas para WMI.
Aplicativos C++
COM API para WMI.
Comece com Criando um aplicativo WMI usando C++ e exemplos de aplicativos WMI C++ (contém exemplos).
Aplicativos .NET Framework escritos em C#, Visual Basic .NET ou J#
Classes no namespace Microsoft.Management.Infrastructure.
Observação: System.Management era 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 usar System.Management para novos projetos. (Para obter mais informações sobre System.Management, consulte Visão geral do WMI .NET.)
  1. Certifique-se de que suas conexões com computadores remotos funcionem.

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

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

    Idioma Tópico
    Scripts em qualquer linguagem, aplicativos do Visual Basic
    Para C++, consulte Definir o nível de segurança do processo padrão usando VBScript.
    Active Server Pages (ASP)
    Configurando o IIS 5 e posterior para scripts WMI ASP
    C++
    Definindo o nível de segurança do processo padrão usando C++ e definindo 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, consulte Manipulando informações de classe e instância e Consultando com 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, consulte Modificando 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, consulte Monitorando eventos e recebendo um evento WMI.

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

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

  7. Tarefas WMI para scripts e aplicativos descreve como executar muitas tarefas administrativas com o WMI.

Fornecendo dados ao WMI

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

Para fornecer dados para o WMI escrevendo um provedor

  • Decida o tipo de provedor a ser gravado.

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

    • Usando o Assistente ATL WMI no Visual Studio.

      Essa abordagem cria um provedor COM não gerenciado. Para obter mais informações, consulte Adicionando um provedor de instância WMI e Adicionando um provedor de eventos WMI.

    • Usar COM diretamente em qualquer ambiente de desenvolvimento integrado.

      Essa abordagem cria um provedor COM não gerenciado.

    • Usando 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 escritos em qualquer linguagem .NET Framework, são mais simples de escrever do que os provedores WMI COM e podem obter dados das classes baseadas em WMI CIM, como Win32 Classes. No entanto, o provedor WMI do .NET Framework tem algumas limitações. Para obter mais informações, confira Gerenciar aplicativos usando o WMI.

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

      A estrutura do provedor foi substituída pelos assistentes WMI ATL, usando COM diretamente ou provedores .NET Framework. A criação de um provedor COM 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
    Fornecendo dados ao WMI
    Provedor desacoplado COM
    Incorporando um provedor em um aplicativo
    Provedor do .NET Framework em C# ou Visual Basic.NET
    Gerenciando aplicativos usando WMI

Tarefas importantes para o WMI

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

Tópico Descrição
Tarefas do WMI para scripts e aplicativos
Descreve como encontrar a classe WMI e os procedimentos corretos a serem usados em scripts e aplicativos que executam tarefas comuns de administração de computador e rede, como adicionar uma nova conexão de impressora para um computador remoto ou localizar todos os hotfixes instalados em um computador.
Criando um aplicativo ou script WMI
Qualquer linguagem de script, como VBScript ou Perl, que funcione com objetos ActiveX pode acessar dados WMI. Os aplicativos podem acessar o WMI em C++, usando a API COM para WMI ou no Visual Basic, usando a biblioteca de tipos Wbemdisp.tlb e a API de Script para WMI.
Conexão 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.
Conectando-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 controlar hardware e software.
Monitorando eventos
Descreve como obter notificações de eventos criando consumidores de eventos WMI temporários ou permanentes.
Fornecendo dados ao WMI
O WMI fornece dados de gerenciamento dinâmico para scripts e aplicativos de cliente obtendo-os de provedores.
Obtendo e fornecendo 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.