Instrumentação de gerenciamento do Windows - Windows Management Instrumentation

Instrumentação de gerenciamento do Windows
Autor (es) original (is) Microsoft
Desenvolvedor (s) Microsoft
Sistema operacional Microsoft Windows
Plataforma IA-32 , x86-64 e ARM (historicamente Itanium , DEC Alpha , MIPS e PowerPC )
Modelo Gestão de sistemas
Licença Proprietário
Local na rede Internet docs .microsoft .com / en-us / previous-versions / windows / desktop / wmi _v2 / windows-management-infrastructure

A Instrumentação de Gerenciamento do Windows ( WMI ) consiste em um conjunto de extensões do Modelo de Driver do Windows que fornece uma interface do sistema operacional por meio da qual os componentes instrumentados fornecem informações e notificações. WMI é a implementação da Microsoft dos padrões WBEM ( Web-Based Enterprise Management ) e Common Information Model (CIM) da Distributed Management Task Force (DMTF).

O WMI permite que linguagens de script (como VBScript ou Windows PowerShell ) gerenciem computadores pessoais e servidores Microsoft Windows , tanto local quanto remotamente. O WMI vem pré-instalado no Windows 2000 e em sistemas operacionais Microsoft mais recentes . Ele está disponível para download para Windows NT e Windows 95 para Windows 98 .

A Microsoft também fornece uma interface de linha de comando para WMI chamada linha de comando de instrumentação de gerenciamento do Windows ( WMIC ).

Objetivo do WMI

O objetivo do WMI é definir um conjunto proprietário de especificações independentes do ambiente que permitem que as informações de gerenciamento sejam compartilhadas entre os aplicativos de gerenciamento. O WMI prescreve padrões de gerenciamento corporativo e tecnologias relacionadas para Windows que funcionam com os padrões de gerenciamento existentes, como Desktop Management Interface (DMI) e SNMP . O WMI complementa esses outros padrões, fornecendo um modelo uniforme. Este modelo representa o ambiente gerenciado por meio do qual os dados de gerenciamento de qualquer origem podem ser acessados ​​de maneira comum.

Processo de desenvolvimento

Como o WMI abstrai as entidades gerenciáveis ​​com o CIM e uma coleção de provedores, o desenvolvimento de um provedor implica várias etapas. As principais etapas podem ser resumidas da seguinte forma:

  1. Crie o modelo de entidade gerenciável
    1. Defina um modelo
    2. Implementar o modelo
  2. Crie o provedor WMI
    1. Determine o tipo de provedor a ser implementado
    2. Determine o modelo de hospedagem do provedor
    3. Crie o modelo de provedor com o assistente ATL
    4. Implementar a lógica do código no provedor
    5. Registre o provedor com WMI e o sistema
  3. Teste o provedor
  4. Crie um código de amostra do consumidor.

Importância dos provedores WMI

Desde o lançamento da primeira implementação WMI durante a era do Windows NT 4.0 SP4 (como um download fora de banda), a Microsoft tem adicionado provedores WMI de forma consistente ao Windows:

  • No Windows NT 4.0, a Microsoft tinha cerca de 15 provedores WMI disponíveis depois que o WMI foi instalado
  • Quando o Windows 2000 foi lançado, havia 29 provedores WMI como parte da instalação do sistema operacional
  • Com o lançamento do Windows Server 2003 , a Microsoft incluiu na plataforma mais de 80 provedores WMI
  • O Windows Vista inclui 13 novos provedores WMI, levando o número perto de cerca de 100 ao todo
  • O Windows Server 2008 inclui mais provedores, incluindo provedores para IIS 7, PowerShell e virtualização
  • O Windows 10 inclui 47 provedores para o serviço Mobile Device Management (MDM).

Muitos clientes interpretaram o crescimento no número de provedores como um sinal de que o WMI se tornou na Microsoft a camada de gerenciamento "onipresente" do Windows, mesmo que a Microsoft nunca tenha explicitado esse compromisso.

Devido a uma exposição cada vez maior de dados de gerenciamento por meio do WMI no Windows, as pessoas da área de gerenciamento de sistemas de TI começaram a desenvolver scripts e procedimentos de automação baseados no WMI. Além das necessidades de script, a maioria dos pacotes de software de gerenciamento líderes, como MOM , SCCM , ADS, HP OpenView para Windows (HPOV), BMC Software ou CA, Inc. são habilitados para WMI e são capazes de consumir e fornecer informações WMI através de vários usuários Interfaces . Isso permite que administradores e operadores incapazes de fazer scripts ou programar em cima do WMI aproveitem os benefícios do WMI sem nem mesmo aprender sobre ele. No entanto, se quiserem, porque o WMI pode ser programado, isso lhes dá a oportunidade de consumir informações do WMI de scripts ou de qualquer software de gerenciamento empresarial com reconhecimento de WMI .

Recursos

Para alguém que deseja desenvolver um ou mais provedores WMI, o WMI oferece muitos recursos prontos para uso. Aqui estão as vantagens mais importantes:

  1. Interfaces de automação:
    como o WMI vem com um conjunto de interfaces de automação prontas para uso, todos os recursos de gerenciamento com suporte de um provedor WMI e seu conjunto de classes obtêm o suporte de script gratuito pronto para uso. Além do design da classe WMI e do desenvolvimento do provedor, as equipes de desenvolvimento e teste da Microsoft não são obrigadas a criar, validar ou testar um modelo de script, pois ele já está disponível no WMI.
  2. Interfaces de gerenciamento .NET :
    como o namespace System.Management depende doencanamento COM / DCOM existente, o provedor WMI criado e seu conjunto de classes WMI tornam-se automaticamente disponíveis para todos os aplicativos .NET, independentemente da linguagem usada (por exemplo, C # , VB.NET ) Além do design da classe WMI e do desenvolvimento do provedor, como para scripts, as equipes de desenvolvimento e teste da Microsoft não são obrigadas a criar, validar e testar novos assemblies para oferecer suporte a um novo namespace no .NET Framework, pois esse suporte já está disponível no WMI para gratuitamente.
  3. Interfaces de programação C / C ++ COM / DCOM:
    Como a maioria dos componentes do Windows, os programadores COM / DCOM podem aproveitar os recursos do provedor que desenvolvem no nível das interfaces COM / DCOM. Como em ambientes anteriores (script e .NET Framework ), um consumidor COM / DCOM só precisa interagir com o conjunto padrão de interfaces WMI COM para aproveitar os recursos do provedor WMI e seu conjunto de classes WMI com suporte. Para disponibilizar todas as informações de gerenciamento das APIs nativas, o desenvolvedor do provedor WMI precisa apenas interagir com um conjunto de interfaces COM WMI predefinidas. Isso tornará as informações de gerenciamento disponíveis no nível WMI COM automaticamente. Além disso, o modelo de objeto de interface COM de script é muito semelhante ao modelo de objeto de interface COM / DCOM, o que torna mais fácil para os desenvolvedores se familiarizarem com a experiência de script.
  4. Recursos remoting sobre DCOM e SOAP :
    Mais do que simplesmente oferecer recursos COM locais, já que o gerenciamento é tudo sobre remoting , o WMI oferece o transporte DCOM. Além disso, o transporte SOAP estará disponível no Windows Server 2003 R2 por meio da iniciativa WS-Management liderada pela Microsoft , Intel , Sun Microsystems e Dell . Esta iniciativa permite executar qualquer script remotamente ou consumir dados WMI por meio de um conjunto específico de interfaces que tratam de solicitações / respostas SOAP. A vantagem para o desenvolvedor do provedor WMI é que, quando ele expõe todos os seus recursos por meio do WMI, o Windows Remote Management / WS-Management pode, por sua vez, consumir essas informações (objetos incorporados em instâncias WMI não são suportados no Windows Server 2003 R2. no entanto, um alvo para o Vista). Todas as camadas para WS-Management e o mapeamento do modelo de dados CIM para SOAP vêm gratuitamente da solução WMI / WS-Management. Caso o DCOM deva ser usado, a implementação do DCOM requer a presença de um proxy DLL implantado em cada máquina cliente. Como o WMI está disponível no sistema operacional Windows desde o Windows 2000, esses problemas foram eliminados.
  5. Suporte para consultas:
    WMI oferece suporte para consultas WQL fora da caixa. Isso significa que, se um provedor não foi projetado para oferecer suporte a consultas, o WMI oferece suporte usando uma técnica de enumeração fora do provedor.
  6. Recursos de eventos: o
    WMI oferece a capacidade de notificar um assinante sobre qualquer evento no qual esteja interessado. O WMI usa o WMI Query Language (WQL) para enviar consultas de eventos WQL e define o tipo de eventos a serem retornados. O mecanismo de eventos, com todos os retornos de chamada relacionados, faz parte do WMI COM / DCOM e das interfaces de automação. Qualquer pessoa que escreva um provedor WMI pode se beneficiar dessa funcionalidade sem nenhum custo para seus clientes. Caberá ao consumidor decidir como deseja consumir as informações de gerenciamento expostas pelo provedor WMI e seu conjunto relacionado de classes WMI.
  7. Gerador de modelo de código:
    para acelerar o processo de escrever um provedor WMI, incluindo todas as interfaces COM / DCOM e definições relacionadas, a equipe WMI desenvolveu o assistente WMI ATL para gerar o modelo de código implementando um provedor. O código gerado é baseado no modelo de classe WMI inicialmente projetado pelo desenvolvedor. O desenvolvedor do provedor WMI será capaz de fazer a interface das interfaces COM / DCOM predefinidas para o provedor WMI com seu conjunto de APIs nativas, recuperando as informações de gerenciamento para expor. O exercício consiste em preencher as “lacunas” no código do provedor para criar a lógica de interface desejada.
  8. Previsibilidade: a
    previsibilidade é uma preocupação importante para os profissionais de TI porque define a capacidade de alguém que tem experiência com um conjunto de interfaces gerenciando um componente do Windows de aplicar esse conhecimento imediatamente, de forma intuitiva, a qualquer outro componente gerenciável do Windows, sem ter de reaprender tudo desde o início pra cima. A previsibilidade para um cliente é um ganho real, pois aumenta o retorno do investimento ( ROI ). Uma pessoa que enfrenta tal situação simplesmente espera que as coisas funcionem da mesma maneira com base em sua experiência anterior. O aumento constante das interfaces de programação / script COM tem um grande impacto na previsibilidade, pois torna difícil para os clientes automatizar, gerenciar o Windows e alavancar seu conhecimento existente. O WMI com CIM resolve esse problema, sempre expondo o mesmo modelo de objeto de programação (COM / DCOM, Automação, .NET), seja qual for a entidade gerenciável.
  9. Proteja os investimentos existentes dos clientes: Proteger os investimentos
    dos clientes e parceiros motiva os clientes a investir em tecnologias. Como a Microsoft investiu muito nos últimos anos escrevendo para provedores de WMI, os clientes e parceiros investiram em ferramentas que potencializavam os recursos de WMI do Windows. Portanto, eles naturalmente continuam a explorar esses recursos em vez de ter que usar um novo conjunto de interfaces específicas para cada componente gerenciável do Windows. Um conjunto específico de interfaces significa ter um conjunto específico de agentes ou software desenvolvido internamente com base em um novo modelo ou conjunto de interfaces especialmente dedicado a um componente ou tecnologia. Aproveitando os recursos do WMI hoje, os clientes e parceiros podem aproveitar o investimento em trabalho feito no passado enquanto minimizam seus custos em desenvolvimentos, curvas de aprendizado e novas descobertas. Isso também terá um grande impacto na estabilidade e confiabilidade de sua infraestrutura, pois eles continuam a aproveitar uma implementação existente com uma tecnologia aprimorada.
  10. Fornece um modelo de administração lógico e unificado:
    conforme descrito brevemente na introdução, este modelo é baseado em um padrão da indústria chamado CIM definido pelo DMTF ( http://www.dmtf.org ). O esquema baseado em classe CIM é definido por um consórcio de construtores e desenvolvedores de software que atende aos requisitos da indústria. Isso significa que não apenas a Microsoft aproveita os recursos do WMI, mas também qualquer outro construtor ou desenvolvedor de terceiros escreve seu próprio código para se ajustar ao modelo. Por exemplo, a Intel está fazendo isso para alguns de seus adaptadores de driver de rede e software. A HP está aproveitando os provedores de WMI existentes e implementando seus próprios provedores de WMI em seu software HP Open View Enterprise Management . A IBM consome WMI do conjunto de gerenciamento Tivoli , MOM e SMS também estão consumindo e fornecendo informações de WMI. Por último, o Windows XP SP2 aproveita o WMI para obter o status das informações de software antivírus e firewalls.

Ferramentas WMI

Algumas ferramentas WMI também podem ser úteis durante as fases de design e desenvolvimento. Essas ferramentas são:

  • O compilador MOF (MOFComp.exe): O compilador de formato de objeto gerenciado (MOF) analisa um arquivo que contém instruções de formato de objeto gerenciado e adiciona as classes e instâncias de classe definidas no arquivo para o repositório CIM. O formato MOF é uma sintaxe específica para definir a representação da classe CIM em um arquivo ASCII (por exemplo, MIB são para SNMP o que arquivos MOF estão para CIM). MOFComp.exe está incluído em todas as instalações do WMI. Cada definição existente no repositório CIM é inicialmente definida em um arquivo MOF. Os arquivos MOF estão localizados em% SystemRoot% \ System32 \ WBEM. Durante a configuração do WMI, eles são carregados no repositório CIM.
  • As ferramentas administrativas WMI: As ferramentas administrativas WMI são compostas por quatro ferramentas: WMI CIM Studio, WMI Object Browser, WMI Event Registration e WMI Event Viewer. A ferramenta mais importante para um desenvolvedor provedor WMI é o WMI CIM Studio, pois ajuda na criação inicial da classe WMI no repositório CIM. Ele usa uma interface da web para exibir informações e se baseia em uma coleção de componentes ActiveX instalados no sistema quando é executado pela primeira vez. O WMI CIM Studio oferece a capacidade de:
    • Conecte-se a um sistema escolhido e navegue no repositório CIM em qualquer namespace disponível.
    • Pesquise classes por seus nomes, por suas descrições ou por nomes de propriedades.
    • Revise as propriedades, métodos e associações relacionadas a uma determinada classe.
    • Veja as instâncias disponíveis para uma determinada classe do sistema examinado.
    • Realize consultas na linguagem WQL.
    • Gere um arquivo MOF com base nas classes selecionadas.
    • Compile um arquivo MOF para carregá-lo no repositório CIM.
  • WinMgmt.exe: WinMgmt.exe não é uma ferramenta; é o executável que implementa o serviço WMI Core. Na família de sistemas operacionais Windows NT, o WMI é executado como um serviço. Em computadores que executam o Windows 98, Windows 95 ou Windows Me, o WMI é executado como um aplicativo. Na família de sistemas operacionais Windows NT, também é possível executar esse executável como um aplicativo, caso em que o executável é executado no contexto do usuário atual. Para isso, o serviço WMI deve ser interrompido primeiro. O executável oferece suporte a algumas opções que podem ser úteis ao iniciar o WMI como um serviço ou aplicativo. Os desenvolvedores de provedor WMI que desejam depurar seus provedores precisam essencialmente executar o serviço WMI como um aplicativo.
  • WBEMTest.exe: WBEMTest.exe é uma ferramenta de teste do WMI, que é fornecida com o WMI. Essa ferramenta permite que um administrador ou desenvolvedor execute a maioria das tarefas a partir de uma interface gráfica que o WMI fornece no nível da API . Embora disponível em todos os sistemas operacionais baseados no Windows NT, esta ferramenta não é oficialmente suportada pela Microsoft. O WBEMTest oferece a capacidade de:
    • Enumere, abra, crie e exclua classes.
    • Enumere, abra, crie e exclua instâncias de classes.
    • Selecione um namespace.
    • Realize consultas de dados e eventos.
    • Execute métodos associados a classes ou instâncias.
    • Execute todas as operações WMI de forma assíncrona, síncrona ou semi-assíncrona.
wmic
Desenvolvedor (s) Microsoft
Sistema operacional Microsoft Windows
Modelo Comando
Licença Software comercial proprietário
Local na rede Internet docs .microsoft .com / en-us / windows-server / Administration / windows- command / wmic
  • A ferramenta de linha de comando WMI (WMIC): WMIC é uma ferramenta de linha de comando projetada para facilitar a recuperação de informações WMI sobre um sistema usando algumas palavras-chave simples (aliases). WMIC.exe está disponível apenas no Windows XP Professional, Windows Server 2003, Windows Vista, Windows 7 e Windows Server 2008. Digitando “WMIC /?” na linha de comando, uma lista completa das opções e palavras-chave reservadas está disponível.
    • Existe uma porta Linux da ferramenta de linha de comando WMI, escrita em Python, baseada no Samba4 chamada 'wmi-client'
  • WBEMDump.exe: WBEMDump é uma ferramenta fornecida com o Platform SDK . Essa ferramenta de linha de comando vem com seu próprio projeto Visual C ++. A ferramenta pode mostrar as classes de repositório CIM, instâncias ou ambos. É possível recuperar as mesmas informações obtidas com o WMIC. O WBEMDump.exe requer um conhecimento mais específico sobre o WMI, pois não abstrai o WMI como WMIC. No entanto, ele roda em Windows NT 4.0 e Windows 2000. Também é possível executar métodos expostos por classes ou instâncias. Mesmo que não seja uma ferramenta WMI padrão fornecida com a instalação do sistema, essa ferramenta pode ser bastante útil para explorar o repositório CIM e os recursos WMI.
  • WMIDiag.vbs: A ferramenta de diagnóstico WMI é um VBScript que pode ser baixado da Microsoft aqui e é uma ferramenta para testar e validar o WMI no Windows 2000 e superior. O download inclui uma documentação bastante completa e a ferramenta oferece suporte a vários switches. Quando executado, ele irá gerar até quatro arquivos de texto que: listam as etapas executadas (o arquivo LOG), uma visão geral dos resultados (arquivo REPORT), um arquivo de estatísticas (em formato de valores separados por vírgula) e, opcionalmente, uma lista de arquivos de os provedores cadastrados na máquina (PROVIDERS, também em formato de valores separados por vírgula). O arquivo de relatório gerado inclui uma lista dos problemas identificados e possíveis maneiras de corrigi-los.
  • WMI Explorer: a ferramenta WMI Explorer é um programa de código aberto disponível gratuitamente para download aqui e é uma ferramenta para enumerar e consultar provedores WMI em uma interface gráfica do usuário.

Exemplo de rede sem fio

No .NET Framework , a classe ManagementClass representa uma classe de gerenciamento Common Information Model (CIM). Uma classe WMI pode ser um Win32_LogicalDisk no caso de uma unidade de disco ou um Win32_Process, como um programa em execução como Notepad.exe.

Este exemplo mostra como a classe WMI "MSNdis_80211_ServiceSetIdentifier" é usada para encontrar o SSID da rede Wi-Fi à qual o sistema está conectado atualmente no idioma C #:

ManagementClass mc = new ManagementClass("root\\WMI", "MSNdis_80211_ServiceSetIdentifier", null);
ManagementObjectCollection moc = mc.GetInstances();
   
foreach (ManagementObject mo in moc)
{
    string wlanCard = (string)mo["InstanceName"];
    bool active;
    if (!bool.TryParse((string)mo["Active"], out active))
    {
       active = false;
    }
    byte[] ssid = (byte[])mo["Ndis80211SsId"];
}

A classe WMI "MSNdis_80211_ServiceSetIdentifier" só é compatível com Windows XP e Windows Server 2003.

Extensões de driver WMI

As extensões WMI para WDM fornecem instrumentação de nível de kernel , como publicação de informações, configuração de configurações de dispositivo, fornecimento de notificação de eventos de drivers de dispositivo e permitindo que os administradores definam a segurança de dados por meio de um provedor WMI conhecido como provedor WDM . As extensões fazem parte da arquitetura WDM; no entanto, eles têm ampla utilidade e podem ser usados ​​com outros tipos de drivers (como SCSI e NDIS ). O serviço WMI Driver Extensions monitora todos os drivers e provedores de rastreamento de eventos configurados para publicar WMI ou informações de rastreamento de eventos. Os dados de hardware instrumentados são fornecidos por meio de drivers instrumentados para extensões WMI para WDM. As extensões WMI para WDM fornecem um conjunto de interfaces de driver de dispositivo do Windows para dados de instrumentação nos modelos de driver nativos do Windows, para que OEMs e IHVs possam estender facilmente o conjunto de dados instrumentados e agregar valor a uma solução de hardware / software. As extensões de driver WMI, entretanto, não são suportadas pelo Windows Vista e sistemas operacionais posteriores.

Veja também

Referências

links externos