Compartilhar via


Criar clientes do WMI

O WMI fornece uma infraestrutura de gerenciamento de sistema padronizada que pode ser aproveitada por vários clientes diferentes. Esses clientes vão da ferramenta de linha de comando wmic.exe ao System Center Operations Manager. Você pode escrever seus clientes do WMI usando a API de Script WMI, a API nativa do C++ ou usando os tipos no namespace da biblioteca de classes .NET Framework System.management.

Como criar um cliente do WMI

A funcionalidade principal do WMI é recuperar objetos do repositório WMI e examinar as propriedades desses objetos. Você também pode optar por atualizar essas propriedades ou chamar métodos nelas. Os exemplos a seguir mostram como executar uma tarefa básica de administração do WMI: recuperar o nome do computador local.

Termo Descrição
Criar um cliente com o PowerShell
O WMI e o PowerShell são totalmente integrados; como tal, recuperar objetos do WMI com o PowerShell é simplesmente uma questão de chamar o cmdlet Get-WmiObject. Observe que, por consistência, o primeiro snippet de código declara explicitamente muitos dos valores padrão; o segundo pressupõe que os valores padrão estão corretos.

PowerShell
              
              #explicitly states many of the default parameters $myComputer = Get-WmiObject -ComputerName "." -Namespace "root\cimv2" -Query "SELECT * FROM Win32_ComputerSystem" foreach ($computer in $myComputer) { "System Name: " + $computer.name } 

#assumes the default values are correct Get-WmiObject Win32_ComputerSystem | Format-Table "Name"

Criar um cliente com VBScript

VBScript era a linguagem de script original de uso comum com o WMI. Embora o PowerShell tenha se tornado mais popular, muitos dos exemplos de código existentes nesta documentação são escritos em VBScript. Observe que esse exemplo específico do VBScript indica explicitamente o caminho do computador local, bem como o nível de representação; isso não é necessário, mas geralmente é uma prática recomendada.

VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem")
For Each objItem in colItems
    Wscript.Echo "Computer Name: " & objItem.Name
Next

Criar um cliente com C# (Microsoft.Management.Infrastructure)

Esse namespace contém a solução atual para acessar o WMI com código gerenciado e é conhecido como MI (Infraestrutura de Gerenciamento do Windows ou WMIv2). Atualmente, o MI é a tecnologia com suporte para criar clientes de gerenciamento. Para obter mais informações, confira Como implementar um cliente MI gerenciado e Como implementar um cliente MI nativo.

C#
              
              using Microsoft.Management.Infrastructure; ... CimSession session = CimSession.Create("localHost"); IEnumerable<CimInstance> queryInstance = session.QueryInstances(@"root\cimv2", "WQL", "SELECT * FROM Win32_ComputerSystem"); 

foreach (CimInstance cimObj in queryInstance) { Console.WriteLine(cimObj.CimInstanceProperties["Name"].ToString()); }

Criar um cliente com C# (System.Management)

Esse namespace contém a solução original para acessar o WMI com código gerenciado. Embora as classes System.Management ainda estejam disponíveis, as classes Microsoft.Management.Infrastructure geralmente são mais eficientes e dimensionam melhor. Dessa forma, é recomendável usar as classes MI em vez das classes WMI originais.

C#
              
              using Microsoft.Management.Infrastructure; ... CimSession session = CimSession.Create("localHost"); IEnumerable<CimInstance> queryInstance = session.QueryInstances(@"root\cimv2", "WQL", "SELECT * FROM Win32_ComputerSystem"); 

foreach (CimInstance cimObj in queryInstance) { Console.WriteLine(cimObj.CimInstanceProperties["Name"].ToString()); }

A tabela a seguir lista os tópicos abordados nesta seção.

Tópico Descrição
Conectar-se ao WMI em um computador remoto Descreve uma série de problemas que surgem quando os clientes usam a infraestrutura WMI em um computador remoto.
Tarefas do WMI para scripts e aplicativos Mostra o código do cliente WMI de exemplo.
Criar um script ou aplicativo do WMI Fornece informações sobre como criar vários clientes WMI.
Monitorar dados de desempenho Descreve como usar o WMI para monitorar dados de desempenho.
Receber um evento WMI Descreve como exibir eventos WMI.
Monitorando eventos Descreve como monitorar eventos do WMI.
Consultar com WQL Apresenta a WQL (Linguagem de Consulta do WMI).
Consultar o status de recursos opcionais No Windows 7, o WMI implementou a classe Win32_OptionalFeature. Essa classe recupera o status dos recursos opcionais presentes em um computador.
Descrever a localização de um objeto WMI Concentra-se na sintaxe para descrever o local de uma entidade gerenciada do WMI.
Acessar outros recursos do sistema operacional com o WMI Descreve como escrever clientes WMI que acessam drivers de dispositivo, o Active Directory e dispositivos SNMP.
Acessar dados no namespace de interoperabilidade Os provedores de associação permitem que os clientes WMI (Instrumentação de Gerenciamento do Windows) percorram e recuperem perfis e instâncias de classe associadas de namespaces diferentes.
Manipular informações de classe e instância Descreve as tarefas comuns que os clientes WMI devem executar.
Vincular classes Discute o provedor de exibição e como ele pode ser usado para reunir informações de várias classes WMI.
Modificar o registro do sistema Descreve como os clientes WMI podem usar o WMI para gerenciar informações do registro do sistema.