none
HBV - Horário Brasileiro de Verão RRS feed

  • Pergunta

  • Aí ... pra quem precisar.. segue o script para ajustar as datas do horário de verão 2006 / 2007

    Colocamos essa função no login script dos usuários.

     

    e via policy demos permissão para que os usuários tenha permissão de alterar as chaves que o script altera.

    Function HorarioVerao()

     

                On Error Resume Next

                strComputer = "."

                Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")

                const HKEY_LOCAL_MACHINE = &H80000002

                HBVKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\E. South America Standard Time"

                HabilitaKeyPath = "SYSTEM\CurrentControlSet\Control\TimeZoneInformation"

               

                DisplayValue = "(GMT-03:00) Brasilia"

                DltValue = "E. South America Daylight Time"

                StdValue = "E. South America Standard Time"

                MapIDValue = "-1,80"

                IndexValue = 65

                TZIValue = Array(180,00,00,00,00,00,00,00,196,255,255,255,00,00,02,00,00,00,04,00,00,00,00,00,00,00,00,00,00,00,11,00,00,00,01,00,00,00,00,00,00,00,00,00)

               

                BiasValue = 180

                StandardNameValue = "E. South America Standard Time"

                StandardBiasValue = 0

                StandardStartValue = Array(00,00,02,00,03,00,00,00,00,00,00,00,00,00,00,00)

                DaylightNameValue = "E. South America Daylight Time"

                DaylightBiasValue = 4294967236

                DaylightStartValue = Array(00,00,10,00,03,00,00,00,00,00,00,00,00,00,00,00)

                ActiveTimeBiasValue = 180

                DisableAutoDaylightTimeSetValue = 0   

               

               

                oReg.SetStringValue HKEY_LOCAL_MACHINE, HBVKeyPath , "Display", DisplayValue

                oReg.SetStringValue HKEY_LOCAL_MACHINE, HBVKeyPath , "Dlt", DltValue

                oReg.SetStringValue HKEY_LOCAL_MACHINE, HBVKeyPath , "Std", StdValue

                oReg.SetStringValue HKEY_LOCAL_MACHINE, HBVKeyPath , "MapID", MapIDValue

                oReg.SetDWORDValue  HKEY_LOCAL_MACHINE, HBVKeyPath , "Index", IndexValue

                oReg.SetBinaryValue HKEY_LOCAL_MACHINE, HBVKeyPath , "TZI", TZIValue

               

                oReg.SetDWORDValue  HKEY_LOCAL_MACHINE, HabilitaKeyPath , "Bias", BiasValue

                oReg.SetStringValue HKEY_LOCAL_MACHINE, HabilitaKeyPath , "StandardName", StandardNameValue

                oReg.SetDWORDValue  HKEY_LOCAL_MACHINE, HabilitaKeyPath , "StandardBias", StandardBiasValue

                oReg.SetBinaryValue HKEY_LOCAL_MACHINE, HabilitaKeyPath , "StandardStart", StandardStartValue

                oReg.SetStringValue HKEY_LOCAL_MACHINE, HabilitaKeyPath , "DaylightName", DaylightNameValue

                oReg.SetDWORDValue  HKEY_LOCAL_MACHINE, HabilitaKeyPath , "DaylightBias", DaylightBiasValue

                oReg.SetBinaryValue HKEY_LOCAL_MACHINE, HabilitaKeyPath , "DaylightStart", DaylightStartValue

                oReg.SetDWORDValue  HKEY_LOCAL_MACHINE, HabilitaKeyPath , "ActiveTimeBias", ActiveTimeBiasValue

                oReg.SetDWORDValue  HKEY_LOCAL_MACHINE, HabilitaKeyPath , "DisableAutoDaylightTimeSet", DisableAutoDaylightTimeSetValue

               

               

               

    End Function

     

    []'s

    sexta-feira, 6 de outubro de 2006 13:21

Respostas

  • Só complementando...

    Este script VAI ter problemas com Windows 98, uma vez que esse SO não possui o WMI instalado por padrão. Você tem duas alternativas:

    1) Instalar o WMI Core nas estações e, no seu script de logon, incluir uma chamada para o script.

    2) Usar uma alternativa (já postada nessa thread) que usa um arquivo .REG para fazer o mesmo trabalho.

    Agora sobre 2000 e XP:

    Usuários comuns não possuem permissão para alterar essa configuração. Se o ambiente estiver configurado corretamente, você não poderá simplesmente colocar este script para ser executado durante o logon. A alternativa aqui então é usar isso durante o startup (não testei) ou então alterar este script para que ele altere a configuração do Horário de Verão de outra máquina via rede (talvez até fazendo um loop com todas as máquinas na rede), usando WMI Remoto.

    Cheguei criar e postar um script parecido na lista MCPdx e no meu blog.

    []s,


    Vinicius Canto
    MVP Visual Developer - Scripting
    Bach. Ciencias da Computação - USP São Carlos

    Blog sobre scripting: http://viniciuscanto.blogspot.com


    quarta-feira, 18 de outubro de 2006 14:23
    Moderador

Todas as Respostas

  • Retificando segue duas linhas atualizadas.

     

    StandardStartValue = Array(00,00,02,00,04,00,00,00,00,00,00,00,00,00,00,00)

    StandardStartValue = Array(00,00,11,00,01,00,00,00,00,00,00,00,00,00,00,00)

     

    então o script fica assim:

    Function HorarioVerao()

     

                On Error Resume Next

                strComputer = "."

                Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")

                const HKEY_LOCAL_MACHINE = &H80000002

                HBVKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\E. South America Standard Time"

                HabilitaKeyPath = "SYSTEM\CurrentControlSet\Control\TimeZoneInformation"

               

                DisplayValue = "(GMT-03:00) Brasilia"

                DltValue = "E. South America Daylight Time"

                StdValue = "E. South America Standard Time"

                MapIDValue = "-1,80"

                IndexValue = 65

                TZIValue = Array(180,00,00,00,00,00,00,00,196,255,255,255,00,00,02,00,00,00,04,00,00,00,00,00,00,00,00,00,00,00,11,00,00,00,01,00,00,00,00,00,00,00,00,00)

               

                BiasValue = 180

                StandardNameValue = "E. South America Standard Time"

                StandardBiasValue = 0

    StandardStartValue = Array(00,00,02,00,04,00,00,00,00,00,00,00,00,00,00,00)

                DaylightNameValue = "E. South America Daylight Time"

                DaylightBiasValue = 4294967236

                DaylightStartValue = Array(00,00,11,00,01,00,00,00,00,00,00,00,00,00,00,00)

                ActiveTimeBiasValue = 180

                DisableAutoDaylightTimeSetValue = 0   

               

               

                oReg.SetStringValue HKEY_LOCAL_MACHINE, HBVKeyPath , "Display", DisplayValue

                oReg.SetStringValue HKEY_LOCAL_MACHINE, HBVKeyPath , "Dlt", DltValue

                oReg.SetStringValue HKEY_LOCAL_MACHINE, HBVKeyPath , "Std", StdValue

                oReg.SetStringValue HKEY_LOCAL_MACHINE, HBVKeyPath , "MapID", MapIDValue

                oReg.SetDWORDValue  HKEY_LOCAL_MACHINE, HBVKeyPath , "Index", IndexValue

                oReg.SetBinaryValue HKEY_LOCAL_MACHINE, HBVKeyPath , "TZI", TZIValue

               

                oReg.SetDWORDValue  HKEY_LOCAL_MACHINE, HabilitaKeyPath , "Bias", BiasValue

                oReg.SetStringValue HKEY_LOCAL_MACHINE, HabilitaKeyPath , "StandardName", StandardNameValue

                oReg.SetDWORDValue  HKEY_LOCAL_MACHINE, HabilitaKeyPath , "StandardBias", StandardBiasValue

                oReg.SetBinaryValue HKEY_LOCAL_MACHINE, HabilitaKeyPath , "StandardStart", StandardStartValue

                oReg.SetStringValue HKEY_LOCAL_MACHINE, HabilitaKeyPath , "DaylightName", DaylightNameValue

                oReg.SetDWORDValue  HKEY_LOCAL_MACHINE, HabilitaKeyPath , "DaylightBias", DaylightBiasValue

                oReg.SetBinaryValue HKEY_LOCAL_MACHINE, HabilitaKeyPath , "DaylightStart", DaylightStartValue

                oReg.SetDWORDValue  HKEY_LOCAL_MACHINE, HabilitaKeyPath , "ActiveTimeBias", ActiveTimeBiasValue

                oReg.SetDWORDValue  HKEY_LOCAL_MACHINE, HabilitaKeyPath , "DisableAutoDaylightTimeSet", DisableAutoDaylightTimeSetValue

               

               

               

    End Function

     

    Desculpe a falha. hehe

    sexta-feira, 6 de outubro de 2006 16:05
  •  

    Eai Bruno, Obrigado por disponibilizar o script... porém tenho uma dúvida..

    Aqui estou fazendo diferente, possuimos muitos windows 98 em nosso "parque" então estou fazendo via login script.

     

    horario.bat =======

    IF "%OS%" == "Windows_NT" goto NT_OS
     regedit /s \\serv1\netlogon\daylight\fuso98.reg
     regedit /s \\serv1\netlogon\daylight\tzinfo98.reg

    goto TZEND

    :NT_OS

     regedit /s %logonserver%\netlogon\daylight\fusoNT.reg
     regedit /s %logonserver%\netlogon\daylight\tzinfoNT2.reg
    :TZEND

    ===========

    os windows 2000, xp e 2k3 funcionam perfeito.. porém ALGUNS windows 98, qndo tentam acessar os .reg´s ele me da a menssagem:

    "o acesso ao dispositivo, caminho ou arquivo especificado foi negado"

    E o estranho é que depois que eu LOGO, vou até o \\serv1\netlogon e executo o .bat na mão e funciona !!

    Alguém sabe??

    Eduardo Trombini

     

    sexta-feira, 6 de outubro de 2006 17:59
  • Infelizmente nao tem Windows 98 por aqui não tem como testar.

    Segue o link da MS que mostra como configurar.

    http://support.microsoft.com/kb/317211/pt-br

    De qualquer forma rodando manualmente vc falou que funciona..

     

    se achar algo te aviso.

     

    []'s

    sexta-feira, 6 de outubro de 2006 18:11
  • Minha dúvida é somente no horário que inicia (00:00:00) e termina (01:00:00)???

    Quando utilizo o tzedit esse horário fica por padrão 02:00:00 isso não comprometeria minha base de logs de auditoria?

    Obrigado,

      -borck.

    sexta-feira, 6 de outubro de 2006 20:18
  • Bruno,

     

    Eu salvo este script com que extensao meu caro?

     

    []´s

     

    Alex

    sexta-feira, 6 de outubro de 2006 20:23
  • A extensão do arquivo é VBS.

     

    segunda-feira, 9 de outubro de 2006 12:20
  • Só complementando...

    Este script VAI ter problemas com Windows 98, uma vez que esse SO não possui o WMI instalado por padrão. Você tem duas alternativas:

    1) Instalar o WMI Core nas estações e, no seu script de logon, incluir uma chamada para o script.

    2) Usar uma alternativa (já postada nessa thread) que usa um arquivo .REG para fazer o mesmo trabalho.

    Agora sobre 2000 e XP:

    Usuários comuns não possuem permissão para alterar essa configuração. Se o ambiente estiver configurado corretamente, você não poderá simplesmente colocar este script para ser executado durante o logon. A alternativa aqui então é usar isso durante o startup (não testei) ou então alterar este script para que ele altere a configuração do Horário de Verão de outra máquina via rede (talvez até fazendo um loop com todas as máquinas na rede), usando WMI Remoto.

    Cheguei criar e postar um script parecido na lista MCPdx e no meu blog.

    []s,


    Vinicius Canto
    MVP Visual Developer - Scripting
    Bach. Ciencias da Computação - USP São Carlos

    Blog sobre scripting: http://viniciuscanto.blogspot.com


    quarta-feira, 18 de outubro de 2006 14:23
    Moderador
  • Abaixo está o script que utilizamos aqui, ele está como script de startup na GPO das estações, nosso parque de máquinas é composto apenas por Windows XP.

    Lembrando que a principal parte dos scripts são as Functions, já que o restante é uma particularidade do meu ambiente, eu fazia um check no nome da OU das estações para verificar se seria ou não aplicado o HBV. 

     

    On Error Resume Next
     
     
     
    Set oNet = CreateObject("WScript.Network")


    Computador  = oNet.ComputerName 
     
    Const ADS_SCOPE_SUBTREE = 2

    Set objConnection = CreateObject("ADODB.Connection")
    Set objCommand =   CreateObject("ADODB.Command")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "Active Directory Provider"
    Set objCommand.ActiveConnection = objConnection

    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE


    objCommand.CommandText = "SELECT distinguishedName FROM 'LDAP://DC=zi,DC=if,DC=atcsg,DC=net' WHERE objectCategory='Computer' AND cn='"&computador&"'" 
    Set objRecordSet = objCommand.Execute
    objRecordSet.MoveFirst

    Do Until objRecordSet.EOF

     strPath = objRecordSet.Fields("distinguishedName").Value
     x=("LDAP://"&strpath)
     
     ln_ldap = x
     origem = right (ln_ldap, ((len (ln_ldap)) - (instr (ln_ldap, "tops,OU=")+7)))
     teste = left (origem, (Instr(origem, "DC")-1))
     teste2 = left (teste, (Instr(teste, ",OU=Locations")-1))
       

     
    Estado = UCase (Mid(teste2,1,3))
     

    If estado = "PE-" or estado = "PA-" or estado = "AR-" or estado = "BA-" or estado = "CL-" or estado = "CH-" Then

    Call NoHBV()

    else

    Call HBV()


    End if 
      
     
     
     
     
     
     
     

    objRecordSet.MoveNext 
    Loop
     

    Function HBV()
     
    On Error Resume Next
     strComputer = "."
     Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
     const HKEY_LOCAL_MACHINE = &H80000002
     HBVKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\E. South America Standard Time"
     HabilitaKeyPath = "SYSTEM\CurrentControlSet\Control\TimeZoneInformation"
     
     DisplayValue = "(GMT-03:00) Brasilia"
       DltValue = "E. South America Daylight Time"
       StdValue = "E. South America Standard Time"
       MapIDValue = "-1,80"
       IndexValue = 65
       TZIValue = Array(180,00,00,00,00,00,00,00,196,255,255,255,00,00,02,00,00,00,04,00,00,00,00,00,00,00,00,00,00,00,11,00,00,00,01,00,00,00,00,00,00,00,00,00)
       BiasValue = 180
       StandardNameValue = "E. South America Standard Time"
       StandardBiasValue = 0
       StandardStartValue = Array(00,00,02,00,04,00,00,00,00,00,00,00,00,00,00,00)
       DaylightNameValue = "E. South America Daylight Time"
       DaylightBiasValue = 4294967236
       DaylightStartValue = Array(00,00,11,00,01,00,00,00,00,00,00,00,00,00,00,00)
       ActiveTimeBiasValue = 180
       DisableAutoDaylightTimeSetValue = 0 
     
     
     oReg.SetStringValue HKEY_LOCAL_MACHINE, HBVKeyPath , "Display", DisplayValue
     oReg.SetStringValue HKEY_LOCAL_MACHINE, HBVKeyPath , "Dlt", DltValue
     oReg.SetStringValue HKEY_LOCAL_MACHINE, HBVKeyPath , "Std", StdValue
     oReg.SetStringValue HKEY_LOCAL_MACHINE, HBVKeyPath , "MapID", MapIDValue
     oReg.SetDWORDValue  HKEY_LOCAL_MACHINE, HBVKeyPath , "Index", IndexValue
     oReg.SetBinaryValue HKEY_LOCAL_MACHINE, HBVKeyPath , "TZI", TZIValue
     
     oReg.SetDWORDValue  HKEY_LOCAL_MACHINE, HabilitaKeyPath , "Bias", BiasValue
     oReg.SetStringValue HKEY_LOCAL_MACHINE, HabilitaKeyPath , "StandardName", StandardNameValue
     oReg.SetDWORDValue  HKEY_LOCAL_MACHINE, HabilitaKeyPath , "StandardBias", StandardBiasValue
     oReg.SetBinaryValue HKEY_LOCAL_MACHINE, HabilitaKeyPath , "StandardStart", StandardStartValue
     oReg.SetStringValue HKEY_LOCAL_MACHINE, HabilitaKeyPath , "DaylightName", DaylightNameValue
     oReg.SetDWORDValue  HKEY_LOCAL_MACHINE, HabilitaKeyPath , "DaylightBias", DaylightBiasValue
     oReg.SetBinaryValue HKEY_LOCAL_MACHINE, HabilitaKeyPath , "DaylightStart", DaylightStartValue
     oReg.SetDWORDValue  HKEY_LOCAL_MACHINE, HabilitaKeyPath , "ActiveTimeBias", ActiveTimeBiasValue
     oReg.SetDWORDValue  HKEY_LOCAL_MACHINE, HabilitaKeyPath , "DisableAutoDaylightTimeSet", DisableAutoDaylightTimeSetValue

    End Function

    Function NoHBV()

    On Error Resume Next
     strComputer = "."
     Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
     const HKEY_LOCAL_MACHINE = &H80000002
     HBVKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\E. South America Standard Time"
     HabilitaKeyPath = "SYSTEM\CurrentControlSet\Control\TimeZoneInformation"
      DisplayValue = "(GMT-03:00) Brasilia"
       DltValue = "E. South America Daylight Time"
       StdValue = "E. South America Standard Time"
       MapIDValue = "-1,80"
       IndexValue = 65
       TZIValue = Array(180,00,00,00,00,00,00,00,00,00,00,00,00,00,02,00,00,00,04,00,00,00,00,00,00,00,00,00,00,00,11,00,00,00,01,00,00,00,00,00,00,00,00,00)
       BiasValue = 180
       StandardNameValue = "E. South America Standard Time"
       StandardBiasValue = 0
       StandardStartValue = Array(00,00,02,00,04,00,00,00,00,00,00,00,00,00,00,00)
       DaylightNameValue = "E. South America Daylight Time"
       DaylightBiasValue = 0
       DaylightStartValue = Array(00,00,11,00,01,00,00,00,00,00,00,00,00,00,00,00)
       ActiveTimeBiasValue = 180
       DisableAutoDaylightTimeSetValue = 0 
     
     
     oReg.SetStringValue HKEY_LOCAL_MACHINE, HBVKeyPath , "Display", DisplayValue
     oReg.SetStringValue HKEY_LOCAL_MACHINE, HBVKeyPath , "Dlt", DltValue
     oReg.SetStringValue HKEY_LOCAL_MACHINE, HBVKeyPath , "Std", StdValue
     oReg.SetStringValue HKEY_LOCAL_MACHINE, HBVKeyPath , "MapID", MapIDValue
     oReg.SetDWORDValue  HKEY_LOCAL_MACHINE, HBVKeyPath , "Index", IndexValue
     oReg.SetBinaryValue HKEY_LOCAL_MACHINE, HBVKeyPath , "TZI", TZIValue
     
     oReg.SetDWORDValue  HKEY_LOCAL_MACHINE, HabilitaKeyPath , "Bias", BiasValue
     oReg.SetStringValue HKEY_LOCAL_MACHINE, HabilitaKeyPath , "StandardName", StandardNameValue
     oReg.SetDWORDValue  HKEY_LOCAL_MACHINE, HabilitaKeyPath , "StandardBias", StandardBiasValue
     oReg.SetBinaryValue HKEY_LOCAL_MACHINE, HabilitaKeyPath , "StandardStart", StandardStartValue
     oReg.SetStringValue HKEY_LOCAL_MACHINE, HabilitaKeyPath , "DaylightName", DaylightNameValue
     oReg.SetDWORDValue  HKEY_LOCAL_MACHINE, HabilitaKeyPath , "DaylightBias", DaylightBiasValue
     oReg.SetBinaryValue HKEY_LOCAL_MACHINE, HabilitaKeyPath , "DaylightStart", DaylightStartValue
     oReg.SetDWORDValue  HKEY_LOCAL_MACHINE, HabilitaKeyPath , "ActiveTimeBias", ActiveTimeBiasValue
     oReg.SetDWORDValue  HKEY_LOCAL_MACHINE, HabilitaKeyPath , "DisableAutoDaylightTimeSet", DisableAutoDaylightTimeSetValue

    End Function

     

     

    quarta-feira, 18 de outubro de 2006 17:48