Um breve guia sobre a instrumentação de gerenciamento do Windows (WMI)

A estrutura para informações e atividades de gerenciamento em sistemas operacionais baseados no Windows é chamada de WMI (Instrumentação de Gerenciamento do Windows).

O WMI também fornece dados de gerenciamento para outros componentes do sistema operacional e produtos, como SCOM (System Center Operations Manager) ou Windows Remote Management.

O que é a Instrumentação de Gerenciamento do Windows (WMI?)

WMI é uma plataforma para gerenciar e monitorar o sistema operacional e outros aplicativos e serviços da Microsoft em computadores pessoais, servidores e outros dispositivos de rede.

O WMI fornece uma interface de programação abrangente, escalável e fácil de usar que fornece acesso programático a informações e serviços em computadores gerenciados pela Microsoft e outros dispositivos de rede.

Ele é usado para descobrir e monitorar o sistema operacional, serviços e aplicativos no computador, bem como dados do registro e do sistema de arquivos. Também é usado para criar e gerenciar scripts e programas que automatizam o gerenciamento e a administração do computador.

Ele emprega a linguagem de programação WQL (Windows Query Language) para consultar informações e realizar operações no sistema operacional, computadores e dispositivos.

Ele também oferece acesso ao PowerShell, uma das ferramentas de administração mais poderosas e flexíveis para Windows, que você pode usar para criar scripts de automação.

Além disso, o WMI permite que você construa aplicativos personalizados que fornecem funcionalidade adicional para o gerenciamento e administração de sistemas e aplicativos Windows.

Os usuários que precisam monitorar o estado de suas máquinas, solucionar problemas básicos e coletar dados de desempenho acharão o WMI útil.

Qual é o objetivo do WMI?

O WMI é útil em uma rede corporativa do Windows porque simplifica a operação e o gerenciamento dos componentes da rede corporativa, fornecendo dados a outros produtos para aprimoramento e escalabilidade adicionais.

Todo o objetivo do WMI é fornecer uma experiência de estrutura de gerenciamento unificada em todos os aspectos de um sistema Windows, como:

  • Componentes do sistema operacional
  • Processos e threads
  • Serviços
  • Dispositivos
  • Motoristas
  • Formulários
  • Contas de usuário
  • Configurações de segurança

O objetivo da invenção do WMI leva a redução de custo e tempo nas operações e desenvolvimento relacionados aos sistemas Windows. O WMI também permite monitorar eventos do sistema e coletar dados de desempenho. Esses dados podem ser usados ​​para solucionar problemas ou rastrear tendências ao longo do tempo.

O WMI é mais comumente usado para automatizar tarefas administrativas e obter acesso a dados sem lidar diretamente com o sistema operacional. Como resultado, o WMI é uma alternativa fantástica para administradores e desenvolvedores de software que precisam automatizar processos demorados.

Tudo, desde o monitoramento do desempenho do sistema até a aquisição de dados do aplicativo, é possível com ele. Ele permite que os desenvolvedores criem aplicativos mais inteligentes e, ao mesmo tempo, garante que os administradores de TI possam concluir suas tarefas com o mínimo de esforço.

O WMI fornece uma implementação de referência para acessar informações do sistema e é uma ferramenta essencial para gerenciar e monitorar sistemas Windows. É a pedra angular do Azure Machine Learning e do AzureML e é usado para fornecer energia a uma ampla variedade de produtos de terceiros.

  Como obter o Ubuntu e o Bash em execução no Windows 10

Uso de WMI

A Instrumentação de Gerenciamento do Windows (WMI) é a entrega da Microsoft de Gerenciamento Corporativo Baseado na Web (WBEM), uma iniciativa do setor para desenvolver tecnologias padronizadas para acessar informações de governança corporativa.

O WMI representa sistemas, aplicativos, redes, dispositivos e outros componentes gerenciados usando o padrão de mercado Common Information Model (CIM). A Força-Tarefa de Gerenciamento Distribuído (DMTF) cria e mantém o CIM.

O design WMI é versátil, suportando uma ampla variedade de tarefas de administração e gerenciamento, além de fornecer uma arquitetura flexível e extensível que permite que os fabricantes criem novos provedores WMI para oferecer suporte a novos dispositivos, aplicativos e outros avanços.

Outros usos são:

  • Gerenciamento abrangente do sistema operacional Windows e dispositivos e serviços de rede da Microsoft.
  • Ele pode ser usado para conectar os computadores remotos para acessar dados WMI
  • Descobre informações sobre o sistema, como quais programas estão sendo executados e quais serviços estão configurados.
  • Para recuperar informações sobre especificações de hardware e realizar ações, como desligar ou reinicializar o sistema.
  • Iniciando aplicativos, iniciando, interrompendo, configurando serviços e acessando dados.
  • Desenvolvedores de aplicativos de gerenciamento podem usar essa API para criar scripts em Visual Basic ou Windows Scripting Host (WSH).

Arquitetura WMI

WMI (Windows Management Instrumentation) é uma tecnologia da Microsoft apresentada inicialmente no Windows 2000. Ela permite que os programadores construam programas de gerenciamento que funcionem com qualquer sistema que suporte WMI.

Vamos ver a arquitetura e a terminologia do WMI.

O fluxo da arquitetura WMI começa em Objetos: Um componente como um disco rígido, placa de rede, sistema operacional ou serviço é um objeto gerenciado (que pode ser gerenciado via WMI). A infraestrutura WMI recebe dados de um objeto por meio de um provedor. Ele fornece e recebe mensagens do WMI e as entrega ao objeto.

Um provedor WMI compreende uma DLL e um arquivo MOF (Managed Object Format) que monitora eventos e dados de objetos. O WMI categoriza os provedores de acordo com a funcionalidade fornecida pela interface do provedor.

Existem vários provedores WMI integrados no Windows, incluindo um provedor Active Directory, provedor WMI Boot Configuration Data (BCD), provedor Distributed File System (DFS), provedor Event Log, provedor Hyper-V WMI, provedor Win32, provedor Registry, e provedor SNMP.

A infraestrutura WMI é um componente do sistema operacional Microsoft Windows conhecido como serviço WMI (winmgmt). O WMI Core e o WMI Repository são as duas partes da infraestrutura WMI.

O repositório WMI é um armazenamento de dados hierárquico organizado por namespaces WMI, geralmente conhecido como Common Information Model (CIM). O serviço WMI estabelece vários namespaces na inicialização do sistema, incluindo root default, rootcimv2 e assinatura root.

Além disso, o serviço produz um conjunto padrão de definições de classe, que inclui as classes de sistema Win32 e WMI. Outros namespaces WMI podem ser criados por provedores WMI adicionais e cada namespace contém vários objetos WMI.

O serviço WMI atua como intermediário entre os provedores, aplicativos de gerenciamento e o repositório WMI. Apenas dados estáticos sobre objetos são armazenados no repositório, como as classes definidas pelos provedores. O WMI obtém a maioria dos dados dinamicamente do provedor quando um cliente os solicita.

  Como obter a pontuação do índice de experiência do Windows no Windows 10

Um consumidor WMI é um aplicativo ou script de gerenciamento que se comunica com a infraestrutura WMI. Usando a API COM para WMI ou a API de script para WMI, um programa de gerenciamento pode consultar, especificar dados, executar métodos de provedor e assinar eventos.

O WMI cria uma interface padronizada para a recuperação remota e local de dados de gerenciamento. A interface uniforme abstrai das interfaces de programação de aplicativos (APIs) do sistema operacional. Isso permite que aplicativos e scripts coletem dados de gerenciamento sem precisar saber sobre a API do sistema operacional.

Como executar uma consulta WMI?

Um recurso da versatilidade da plataforma WMI é a capacidade de consultar seu repositório para obter detalhes sobre os dados de classe, instância ou esquema. Essas métricas estão conectadas ao inventário de sistemas locais e distantes, sistemas operacionais, softwares e outras atividades administrativas.

Tipo de consultas

Em geral, existem dois tipos de consultas usadas para recuperar informações do repositório WMI:

Consulta Síncrona: É uma consulta que mantém o controle do funcionamento da sua aplicação durante toda a consulta. É mais fácil do que uma chamada assíncrona porque leva apenas uma chamada de interface. No entanto, para grandes pesquisas ou consultas baseadas em rede, pode congelar seu aplicativo.

Consulta assíncrona: quando a velocidade de um sistema ou rede for afetada pela consulta de um grupo considerável de dados, uma consulta assíncrona é um tipo preferível de usar.

WQL (linguagem de consulta WMI)

Um dos métodos populares para consultar o WMI é o WMI Query Language.

O SQL (Structured Query Language) é usado no ambiente de banco de dados e o WQL é usado no WMI. Ambos têm uma estrutura de sintaxe semelhante.

Select, From e Where são as instruções WQL fundamentais que são utilizadas para iniciar a consulta.

Uma consulta WMI típica começa selecionando todas as propriedades de uma classe WMI usando o comando “Select”. O asterisco (“*”) é usado para selecionar cada propriedade de uma classe WMI. Pode-se usar a palavra-chave “From” para especificar a classe WMI a ser consultada após escolher as propriedades (uma ou mais propriedades, ou todas). Você pode verificar a folha de dicas do SQL para a sintaxe exata.

O WQL pode ser executado através do WMI Tester (wbemtest.exe), que é instalado por padrão com o sistema operacional Windows. As consultas WMI também podem ser executadas por meio do Windows PowerShell, VBScript e linguagem C.

Tipo de consultas WQL

As consultas WQL são utilizadas para obter três tipos diferentes de informações.

Consultas de objetos: As informações sobre os recursos do sistema Windows podem ser recuperadas usando essas consultas.

Consultas de eventos: essas consultas são usadas para rastrear alterações nos logs de eventos, o início de processos, o status dos serviços, a disponibilidade de computadores ou a quantidade de espaço livre em disco, entre outras entidades ou ocorrências.

Consultas de esquema: essas consultas são usadas para obter detalhes sobre a estrutura do esquema WMI.

Executando uma consulta

Vamos ver como executar uma consulta de objeto.

O método a seguir indica como verificar os processos WIN_32 em um sistema local.

A ferramenta WMI Tester é executada através da linha de comando digitando wbemtest.exe.

  O que acontece exatamente quando você desliga ou sai do Windows?

A seguinte janela irá aparecer.

Para se conectar ao namespace WMI que contém a classe que você deseja consultar (RootCimv2 na maioria dos casos): clique na guia conectar.

Para executar a consulta, clique na guia ‘Consulta’ conforme mostrado abaixo:

Em seguida, insira a consulta para a qual deseja recuperar as informações. Por exemplo, vamos recuperar todos os processos em execução no sistema local executando:

select * From Win32_process

Depois de clicar na guia Aplicar, você obterá os resultados abaixo

A execução baseada em GUI acima também pode ser realizada no prompt de comando por meio do PowerShell:

Na plataforma PowerShell, para obter a lista de todos os processos win_32, é usado o código abaixo:

Get-WmiObject -Class Win32_Process

Para obter todos os parâmetros de consulta do PowerShell, visite o Gerenciamento do Microsoft PowerShell página.

Para executar esta consulta em VBScript e linguagem C, o página de documentação da Microsoft forneceria insights completos.

Um outro método para consultar o repositório WMI é através do comando WMIC:

  • Execute o CMD a partir de um prompt de comando
  • Digite WMIC e digite para iniciar o programa
  • Em seguida, o prompt de comando mudará para wmic:rootcli>

Os administradores podem executar consultas WMI a partir deste prompt.

Por exemplo, para carregar informações de CPU de um sistema local, o comando será:

wmic:rootcli> WMIC CPU

Os resultados/informações serão exibidos no prompt de comando.

AddressWidth  Architecture  AssetTag                Availability  Caption                                 Characteristics  ConfigManagerErrorCode  ConfigManagerUserConfig  CpuStatus  CreationClassName  CurrentClockSpeed  CurrentVoltage  DataWidth  Description                             DeviceID  ErrorCleared  ErrorDescription  ExtClock  Family  InstallDate  L2CacheSize  L2CacheSpeed  L3CacheSize  L3CacheSpeed  LastErrorCode  Level  LoadPercentage  Manufacturer  MaxClockSpeed  Name                                      NumberOfCores  NumberOfEnabledCore  NumberOfLogicalProcessors  OtherFamilyDescription  PartNumber              PNPDeviceID  PowerManagementCapabilities  PowerManagementSupported  ProcessorId       ProcessorType  Revision  Role  SecondLevelAddressTranslationExtensions  SerialNumber            SocketDesignation  Status  StatusInfo  Stepping  SystemCreationClassName  SystemName  ThreadCount  UniqueId  UpgradeMethod  Version  VirtualizationFirmwareEnabled  VMMonitorModeExtensions  VoltageCaps
64            9             To Be Filled By O.E.M.  3             Intel64 Family 6 Model 142 Stepping 10  252                                                               1          Win32_Processor    1801               7               64         Intel64 Family 6 Model 142 Stepping 10  CPU0                                      100       205                  1024                       6144         0                            6      31              GenuineIntel  1801           Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz  4              4                    8                                                  To Be Filled By O.E.M.                                            FALSE                     BFEBFBFF000806EA  3                        CPU   TRUE                                     To Be Filled By O.E.M.  U3E1               OK      3                     Win32_ComputerSystem     RENEE-HP     8                      51                      FALSE                          TRUE

Para obter mais informações sobre WMIC Alias ​​e verbos, visite Microsoft wmic.

Perguntas frequentes sobre WMI

Quais são as portas usadas no WMI?

As portas usadas são 49152 e 65535. O Distributed Component Object Model (DCOM), no qual o WMI se baseia, emprega uma porta TCP escolhida aleatoriamente para conexões entre o intervalo de 49152 e 65535 por padrão.

O WMI está obsoleto?

WMI ainda é suportado. A partir do Windows 10, versão 21H1 e da versão de canal semestral 21H1 do Windows Server, o programa de linha de comando WMI (WMIC) não é mais compatível.

O que são ferramentas de monitoramento WMI?

Existem muitas ferramentas disponíveis para monitorar o WMI. No entanto, um punhado é particularmente popular:
SolarWinds WMI Monitor com monitor de servidor e aplicativo
Sensor de serviço Paessler WMI com PRTG
Nagios XI
Sapien WMI Explorer
Ferramentas gratuitas são WMI Explorer, Adrem Free WMI Tools

Como solucionar problemas de WMI

Você pode ver erros que variam de classes ausentes a violações de acesso ao tentar acessar dados WMI locais ou remotos em um aplicativo ou script. Verifica a Guia de solução de problemas do Microsoft WMI para obter soluções para tais erros.

Conclusão

Em geral, a Instrumentação de Gerenciamento do Windows é uma ferramenta forte que pode ser usada para lidar com uma ampla variedade de vários recursos relacionados ao sistema Windows. O WMI pode ser uma ferramenta muito útil para quem lida com sistemas Windows, apesar de inicialmente parecer intimidante.