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:
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 !
Comments
Anonymous
July 07, 2009
Após um árduo trabalho e várias horas, conseguimos. Muito obrigado pela ajuda.Anonymous
July 08, 2009
Ótima dica Robson, Realmente é dificil de achar documentação para personalização dos arquivos mof do SCCM. Obrigado por compartilhar essa dica! Abraço e sucesso. R: Semana que vem devo postar sobre a criação do relatorio dos anti-virus no sccm, ja recebi varios pedidos sobre isso, entao continue ligado.
Se precisar de alguma dica especifica e só mandar no comentario o pedido. []s e Sucesso