Criando Relatórios Customizados de Anti-Virus utilizando novas Classes de WMI no SCCM

Nesses ultimos meses tenho atuado em um grande projeto de System Center Configuration Manager em um dos maiores bancos do Brasil e nessa semana surgiu a necessidade de um inventário customizado de anti-virus de estações de trabalho e servidores. Para atender essa necessidade específica tive que criar novas classes no WMI, editando os arquivos configuration.mof e sms_def.mof.

É uma alteração que deve ser feita com muito cuidado, pois é replicada para todo o parque administrado pelo SCCM e portanto eu recomendo testes em ambientes isolados antes de tentar colocar isso em produção.

Como depois que está tudo funcionando todo mundo fica satisfeito e não é fácil de encontrar conteúdo sobre isso bem documentado na net, estou disponibilizando aqui o passo a passo para habilitar o reporting dos antivirus Trend e MCAFEE, que servirão de exemplo para que vocês possam extrair qualquer conteúdo do registry e habilitar o reporting desses dados no SCCM.

Começaremos pelo arquivo configuration.mof, localizado no diretorio de instalação do SCCM (drive:\Microsoft Configuration Manager\inboxes\clifiles.src\hinv)

Vá até o final do arquivo e localize as sessões:

//========================
// Added extensions start
//========================

// Added extensions end
//========================

Entre essas duas sessões você deve inserir o seu código para capturar os dados que você quer adicionar ao inventário padrão de hardware do SCCM, para o TREND e MACFEE, esse campo fica assim:

//========================
// Added extensions start
//========================

//========================
// Trend Extensions
// Author: Robson Silva (Microsoft)
//========================
#pragma namespace ("\\\\.\\root\\cimv2")
#pragma deleteclass("Trend", NOFAIL)
[DYNPROPS]
Class Trend
{
[key] string KeyName;
String ProgramVer;
Uint32 TSCPatternVer;
Uint32 PatternVer;
String VsApiNTVer;
};
[DYNPROPS]
Instance of Trend
{
keyname="Trend";
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\TrendMicro\\PC-cillinNTCorp\\CurrentVersion\\Misc.|ProgramVer"),Dynamic,Provider("RegPropProv")] ProgramVer;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\TrendMicro\\PC-cillinNTCorp\\CurrentVersion\\Misc.|TSCPatternVer"),Dynamic,Provider("RegPropProv")] TSCPatternVer;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\TrendMicro\\PC-cillinNTCorp\\CurrentVersion\\Misc.|PatternVer"),Dynamic,Provider("RegPropProv")] PatternVer;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\TrendMicro\\PC-cillinNTCorp\\CurrentVersion\\Misc.|VsApiNT-Ver"),Dynamic,Provider("RegPropProv")] VsApiNTVer;
};

//========================
// Trend Extensions End
//========================

//========================
// MCAFEE Extensions
// Author: Robson Silva (Microsoft)
//========================

#pragma namespace ("\\\\.\\root\\cimv2")
#pragma deleteclass("MCAFEE", NOFAIL)
[DYNPROPS]
Class MCAFEE
{
[key] string KeyName;
String szProductVer;
Uint32 EngineVersion32Major;
Uint32 EngineVersion32Minor;
};
[DYNPROPS]
Instance of MCAFEE
{
keyname="MCAFEE";
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\McAfee\\DesktopProtection|szProductVer"),Dynamic,Provider("RegPropProv")] szProductVer;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\McAfee\\AVEngine|EngineVersion32Major"),Dynamic,Provider("RegPropProv")] EngineVersion32Major;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\McAfee\\AVEngine|EngineVersion32Minor"),Dynamic,Provider("RegPropProv")] EngineVersion32Minor;
};

//========================
// MCAFEE Extensions End
//========================

// Added extensions end
//========================

Notem que para cada customização que eu criei, eu também criei um campo com informações sobre o que está sendo coletado e quem foi o autor, é muito bom deixar isso bem claro para que todos saibam do que se trata e a quem recorrer em caso de suporte.

Continuando temos o arquivo sms_def.mof, que é o arquivo responsável por mapear e mostrar os dados capturados no inventário do SCCM:

Ao contrário do arquivo configuration.mof, ele não tem um campo dedicado para novas sessões, então é só rolar para o final do arquivo e adicionar as novas entradas:

 

//**************************************************************************
//* Class: Trend
//* Derived from: (nothing)
//*
//* Key = Name, Version
//*
//* This Trend class provides AntiVirus information
//* Author: Robson Silva (Microsoft)
//**************************************************************************

#pragma namespace ("\\\\.\\root\\cimv2\\SMS")
#pragma deleteclass("Trend", NOFAIL)
[SMS_Report(TRUE),SMS_Group_Name("Trend"),SMS_Class_ID("Bradesco|Trend|1.0")]
Class Trend: SMS_Class_Template
{
[SMS_Report(TRUE),key] string KeyName;
[SMS_Report(TRUE)] String ProgramVer;
[SMS_Report(TRUE)] Uint32 TSCPatternVer;
[SMS_Report(TRUE)] Uint32 PatternVer;
[SMS_Report(TRUE)] Uint32 VsApiNTVer;
};

//**************************************************************************
//* Class: MCAFEE
//* Derived from: (nothing)
//*
//* Key = Name, Version
//*
//* This Trend class provides AntiVirus information
//* Author: Robson Silva (Microsoft)
//**************************************************************************

#pragma namespace ("\\\\.\\root\\cimv2\\SMS")
#pragma deleteclass("MCAFEE", NOFAIL)
[SMS_Report(TRUE),SMS_Group_Name("MCAFEE"),SMS_Class_ID("Bradesco|MCAFEE|1.0")]
Class MCAFEE: SMS_Class_Template
{
[SMS_Report(TRUE),key] string KeyName;
[SMS_Report(TRUE)] String szProductVer;
[SMS_Report(TRUE)] Uint32 EngineVersion32Major;
[SMS_Report(TRUE)] Uint32 EngineVersion32Minor;
};

 

Depois de salvar os dois arquivos, rode o comando abaixo para checar se não existem erros de compilação:

mofcomp –check drive:\Microsoft Configuration Manager\inboxes\clifiles.src\hinv\configuration.mof

mofcomp –check drive:\Microsoft Configuration Manager\inboxes\clifiles.src\hinv\sms_def.mof

Se você receber o resultado: MOF file has been successfully parsed, você estará pronto para distribuir o arquivo para todos os servidores primários.

O resultado final dessas alterações deve ser:

macfee trend

Apartir daqui é só criar o relatório no SCCM !

 

Agradecimentos especiais ao meu amigo NAVLIG, que trabalhou comigo nessa empreitada !

[]s e até a próxima !

Robson Silva
SCCM