Atualizado em 10/10/2013
Este post foi criado para SCCM 2007. Para SCCM 2012 utilizar o post: https://marciohunecke.wordpress.com/2013/10/10/usando-o-sccm-2012-para-evitar-surpresas-com-o-horrio-de-vero/
Conforme decreto lei n.6558 (http://www.leidireto.com.br/decreto-6558.html), o horário brasileiro de verão 2013/2014 iniciará às 00h00min do terceiro domingo de outubro (20/10/2013) e encerrará às 00h00min do terceiro domingo de fevereiro (16/02/2014).
Um dos pontos principais para evitar supresas e garantir que todos os computadores estejam corretamente configurados para a mudança do horário. Existem 2 formas principais de fazer a configuração.
1- Para as empresas que podem seguir o padrão de entrada e saída do horário à meia-noite a melhor solução é aplicar o update KB2863058 da Microsoft. Informações em: http://support.microsoft.com/kb/2863058
2 – Para as empresas que precisam customizar os horários de entrada e saída a solução é criar scripts e aplicar via Startup Script das GPOs ou alguma ferramenta como SMS ou SCCM. Informações em: http://support.microsoft.com/kb/914387
Após aplicar as configurações acima é importante gerar um relatório com a configuração de todas as máquinas. Eu não conhecia nenhuma ferramenta pronta para fazer isso até investigar como o SCCM poderia ajudar. A solução me parece maravilhosa.
Como configurar o SCCM 2007 para gerar informações de apoio ao Horário de Verão
1) Editar o arquivo sms_def.mof no servidor SCCM, na pasta “c:\Program Files (x86)\Microsoft Configuration Manager\inboxes\clifiles.src\hinv” ativando a classe Win32_TimeZone e os atributos conforme abaixo.
Parte do arquivo modificado (aproximadamente linha 3559). A única alteração é colocar TRUE nos campos destacados em vermelho. No arquivo original todos estes campos aparecem com FALSE.
[ SMS_Report (TRUE),
SMS_Group_Name (“Time Zone”),
SMS_Class_ID (“MICROSOFT|TIME_ZONE|1.0″) ]
class Win32_TimeZone : SMS_Class_Template
{
[SMS_Report (TRUE) ]
sint32 Bias;
[SMS_Report (TRUE) ]
string Caption;
[SMS_Report (TRUE) ]
sint32 DaylightBias;
[SMS_Report (TRUE) ]
uint32 DaylightDay;
[SMS_Report (TRUE) ]
uint8 DaylightDayOfWeek;
[SMS_Report (TRUE) ]
uint32 DaylightHour;
[SMS_Report (FALSE) ]
uint32 DaylightMillisecond;
[SMS_Report (TRUE) ]
uint32 DaylightMinute;
[SMS_Report (TRUE) ]
uint32 DaylightMonth;
[SMS_Report (FALSE) ]
string DaylightName;
[SMS_Report (FALSE) ]
uint32 DaylightSecond;
[SMS_Report (FALSE) ]
uint32 DaylightYear;
[SMS_Report (FALSE) ]
string Description;
[SMS_Report (FALSE) ]
string SettingID;
[SMS_Report (FALSE) ]
uint32 StandardBias;
[SMS_Report (TRUE) ]
uint32 StandardDay;
[SMS_Report (TRUE) ]
uint8 StandardDayOfWeek;
[SMS_Report (TRUE) ]
uint32 StandardHour;
[SMS_Report (FALSE) ]
uint32 StandardMillisecond;
[SMS_Report (TRUE) ]
uint32 StandardMinute;
[SMS_Report (TRUE) ]
uint32 StandardMonth;
[SMS_Report (TRUE), key]
string StandardName;
[SMS_Report (FALSE) ]
uint32 StandardSecond;
[SMS_Report (FALSE) ]
uint32 StandardYear;
};
2) Aguardar os clientes SCCM receberem as políticas. Com isso, o arquivo sms_def.mof será carregado para o computador e será utilizado no próximo ciclo de inventário de hardware. Se precisar forçar o recebimento de políticas, clicar “Iniciar –> Painel de Controle –> Configuration Manager –> Actions –> Machine Policy Retrieval & Evaluation Policy –> Initiate Action- OK”. Aguardar aproximadamente 2 minutos antes do próximo item.
3) Aguardar os clientes SCCM enviarem o próximo inventário de hardware. Para forçar um novo ciclo, clicar “Iniciar –> Painel de Controle –> Configuration Manager –> Actions –> Hardware Inventory Cycle –> Initiate Action – OK”. Aguardar aproximadamente 5 minutos antes do próximo item.
4) Abrir o Resource Explorer do computador utilizado no item 2 e 3 para verificar se foram coletados informações relacionados ao TimeZone. Deve aparecer algo próximo da figura abaixo:
5) Criar um Query para verificar as configurações de cada computador.
Sugestão para o Query:
select distinct SMS_R_System.Name, SMS_G_System_TIME_ZONE.DaylightDay, SMS_G_System_TIME_ZONE.DaylightDayOfWeek, SMS_G_System_TIME_ZONE.DaylightMonth, SMS_G_System_TIME_ZONE.DaylightHour, SMS_G_System_TIME_ZONE.DaylightMinute, SMS_R_System.OperatingSystemNameandVersion, SMS_G_System_TIME_ZONE.StandardDay, SMS_G_System_TIME_ZONE.StandardDayOfWeek, SMS_G_System_TIME_ZONE.StandardMonth, SMS_G_System_TIME_ZONE.StandardHour, SMS_G_System_TIME_ZONE.StandardMinute from SMS_R_System inner join SMS_G_System_TIME_ZONE on SMS_G_System_TIME_ZONE.ResourceID = SMS_R_System.ResourceId order by SMS_R_System.Name
A visualização de Query nos trará as seguintes informações, conforme figura abaixo:
O computador N810
a) Entrará no horário de verão no terceiro (3) sábado (6) do mês de outubro (10) às 23h 59 min.
b) Sairá do horário de verão no terceiro (3) sábado (6) do mês de fevereito (2) às 23h 59 min.
6) Criar um Query para verificar os computadores que não estão corretamente configurados.
6.1) Sugestão para o Query para verificar a entrada do horário de verão.
select distinct SMS_R_System.Name, SMS_G_System_TIME_ZONE.DaylightDay, SMS_G_System_TIME_ZONE.DaylightDayOfWeek, SMS_G_System_TIME_ZONE.DaylightMonth, SMS_G_System_TIME_ZONE.DaylightHour, SMS_G_System_TIME_ZONE.DaylightMinute, SMS_R_System.OperatingSystemNameandVersion, SMS_G_System_WORKSTATION_STATUS.LastHardwareScan, SMS_R_System.LastLogonUserName from SMS_R_System inner join SMS_G_System_TIME_ZONE on SMS_G_System_TIME_ZONE.ResourceID = SMS_R_System.ResourceId inner join SMS_G_System_WORKSTATION_STATUS on SMS_G_System_WORKSTATION_STATUS.ResourceID = SMS_R_System.ResourceId where (SMS_G_System_TIME_ZONE.DaylightDay != 3 or SMS_G_System_TIME_ZONE.DaylightMonth != 10 or SMS_G_System_TIME_ZONE.DaylightDayOfWeek != 6 or SMS_G_System_TIME_ZONE.DaylightHour != 23 or SMS_G_System_TIME_ZONE.DaylightMinute != 59) and SMS_G_System_TIME_ZONE.Caption like “%-03:00) Bras%” order by SMS_R_System.Name
6.2) Sugestão para o Query para verificar a saída do horário de verão.
select distinct SMS_R_System.Name, SMS_G_System_TIME_ZONE.StandardDay, SMS_G_System_TIME_ZONE.StandardDayOfWeek, SMS_G_System_TIME_ZONE.StandardMonth, SMS_G_System_TIME_ZONE.StandardHour, SMS_G_System_TIME_ZONE.StandardMinute, SMS_R_System.OperatingSystemNameandVersion, SMS_G_System_WORKSTATION_STATUS.LastHardwareScan from SMS_R_System inner join SMS_G_System_TIME_ZONE on SMS_G_System_TIME_ZONE.ResourceID = SMS_R_System.ResourceId inner join SMS_G_System_WORKSTATION_STATUS on SMS_G_System_WORKSTATION_STATUS.ResourceID = SMS_R_System.ResourceId where (SMS_G_System_TIME_ZONE.StandardDay != 3 or SMS_G_System_TIME_ZONE.StandardDayOfWeek != 6 or SMS_G_System_TIME_ZONE.StandardMonth != 2 or SMS_G_System_TIME_ZONE.StandardHour != 23 or SMS_G_System_TIME_ZONE.StandardMinute != 59) and SMS_G_System_TIME_ZONE.Caption like “%-03:00) Bras%” order by SMS_R_System.Name
Informações Importantes
1) Se no ambiente SCCM existem vários sites primários, é necessário modificar o arquivo SMS_DEF.MOF em todos os sites primários.
2) O próximo inventário de hardware será completo depois que o cliente receber o novo arquivo SMS_DEF.MOF e acarretará uma aumento do tráfego de rede das estações para o servidor que elas se reportam.
3) Haverá uma aumento do tamanho da base de dados, pois novas colunas na tabela <Nome da Classe> serão criadas e populados.
BOM PROVEITO !!!!!!!!!!!!
very cool!
Uma vez sendo um decreto (de 2008) não seria também para os anos seguintes? Digo, o decreto é de 2008, se atualizei as estações em 2009, não acredito que haja a necessidade de atualizar as estações, por precaução comparar algumas chaves de registros com a que foi publicada pela Microsoft para garantir… ??
Pingback: Os números de 2010 no meu Blog | My Spaces – Márcio Hunecke
Muito obrigado.
Me ajudou muito, agora estou tentando gerar um Report em cima dessas informações, se tiver ideia de como fazer eu agradeço.
Pingback: Usando o SCCM 2012 para evitar surpresas com o Horário de Verão | Márcio Hunecke – marciohunecke@hotmail.com