none
Script para mudar o GMT RRS feed

  • Pergunta

  •  

    Boa tarde a todos.

    Sei que já tem alguns tópicos sobre isso aqui, e foi daqui mesmo que peguei um script para alterar isso porém não estou tendo sucesso.

    Por algum motivo desconhecido o pessoal configurou todos os relogios das estacoes para o GMT -2, e quando coloco para o scrpit de logon executar o net time ele não altera o gmt ficando toda vez atrasado uma hora, só que o detalhe é que os usuários são limitados então eu preciso de um script que mude o GMT das estações no logon para o de brasilia.

    Peguei esse script e não resolveu:

     

    Function HorarioVerao()

     

                On Error Resume Next

                strComputer = "."

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

                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

    quinta-feira, 28 de fevereiro de 2008 18:04

Respostas

  • Laerte Rulez! hahah

     

    Renato com uma mudança no script vc pode rodar ele do seu pc mesmo, logado como domain admin.

    É só salvar como .vbs e rodar.

     

    Code Snippet

    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.CommandText = "Select Name, Location from 'LDAP://DC=meudomain,DC=com' Where objectClass='computer'" 
    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
    Set objRecordSet = objCommand.Execute
    objRecordSet.MoveFirst

    Do Until objRecordSet.EOF
    strComputer = objRecordSet.Fields("Name").Value

                On Error Resume Next

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

    if err=0 then

                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 if

    objRecordSet.MoveNext
    Loop

    wscript.echo "Terminado"
    wscript.quit

     

     

    o.0

     

     

    Se ajudar, não esqueça de classificar.

    sexta-feira, 29 de fevereiro de 2008 18:35
    Moderador

Todas as Respostas

  • Renato, você disse que os usuários são limitados, para rodar esse script os usuários tem que ter permissão para mexer no registro, se não ele não vai adiantar em nada e outra coisa onde você pegou esse script?

     

    quinta-feira, 28 de fevereiro de 2008 21:09
  •  

    Como eu falei os usuários não tem poder de administrador, são usúários limitados.

    Eu peguei aqui no forum mesmo cara.

    sexta-feira, 29 de fevereiro de 2008 12:42
  • Renato, esse script então não vai funcionar, você precisa rodar ele com uma conta administrativa que tenha acesso as máquinas, você pode fazer isso fazendo remotamente, mas seu script teria que ser mudado, mas em qual tópico você pegou ele, quero olhar uma outra coisa nele Wink parece que ele está incompleto também

    sexta-feira, 29 de fevereiro de 2008 12:45
  • Só se estiver incompleto mesmo porque eu estava ciente disso e rodei com administrator.

    Peguei daqui:

    http://forums.microsoft.com/technet-br/ShowPost.aspx?PostID=836027&SiteID=29

    sexta-feira, 29 de fevereiro de 2008 12:52
  • Renato pegue esse codigo salve como .reg e execute nas máquinas, isso vai resolver o seu problema, depois você reinicia e ele vai voltar ao horário normal de brasilia Wink

     

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\E. South America Standard Time]

    "Display"="(GMT-03:00) Brasília"

    "Dlt"="Horário brasileiro de verão"

    "Std"="Hora oficial do Brasil"

    "MapID"="-1,80"

    "Index"=dword:00000041

    "TZI"=hex:b4,00,00,00,00,00,00,00,c4,ff,ff,ff,00,00,02,00,00,00,03,00,00,00,00,\

      00,00,00,00,00,00,00,0a,00,00,00,02,00,00,00,00,00,00,00,00,00

     


    [-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]

     

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]

    "Bias"=dword:000000b4

    "StandardName"="Hora oficial do Brasil"

    "StandardBias"=dword:00000000

    "StandardStart"=hex:00,00,02,00,03,00,00,00,00,00,00,00,00,00,00,00

    "DaylightName"="Horário brasileiro de verão"

    "DaylightBias"=dword:ffffffc4

    "DaylightStart"=hex:00,00,0a,00,02,00,00,00,00,00,00,00,00,00,00,00

    "ActiveTimeBias"=dword:00000078

     

     

    sexta-feira, 29 de fevereiro de 2008 18:16
  • Laerte Rulez! hahah

     

    Renato com uma mudança no script vc pode rodar ele do seu pc mesmo, logado como domain admin.

    É só salvar como .vbs e rodar.

     

    Code Snippet

    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.CommandText = "Select Name, Location from 'LDAP://DC=meudomain,DC=com' Where objectClass='computer'" 
    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
    Set objRecordSet = objCommand.Execute
    objRecordSet.MoveFirst

    Do Until objRecordSet.EOF
    strComputer = objRecordSet.Fields("Name").Value

                On Error Resume Next

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

    if err=0 then

                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 if

    objRecordSet.MoveNext
    Loop

    wscript.echo "Terminado"
    wscript.quit

     

     

    o.0

     

     

    Se ajudar, não esqueça de classificar.

    sexta-feira, 29 de fevereiro de 2008 18:35
    Moderador
  • Grande Filipe, ia postar esse script agora, mas já que postou na frente beleza Big Smile

    sexta-feira, 29 de fevereiro de 2008 19:13
  • Hehe, pode postar ai, vamo fazer ele falar e cantar em tres idiomas, vamo melhorando até ele virar um OS e agetne vender os direitos!

    haushduhasudha

     

    Scripts+Google = Dominação Mundial!

     

    sexta-feira, 29 de fevereiro de 2008 19:18
    Moderador
  •  

    Lembrando ali que eu esqueci,

     

    Mude na linha em verde o ads do seu domínio...

     

    Ex.: www.ocara.com.br  - o ads será => DC=ocara,DC=com,DC=br

     

    okok é com vc siriiiiii

    okey okey

     

    - - - - - - - - -

    Script Editado, removida a linha "Function HorarioVerao()"

    Inseridos "if err=0 then" e "end if"

     

    abs

    sexta-feira, 29 de fevereiro de 2008 19:26
    Moderador
  • Ta dando um erro na hora de rodar esse script.

    Erro na linha :15

    caractere: 1

     

    essa é a linha:Function HorarioVerao()

     

    pq?!

     

    sexta-feira, 29 de fevereiro de 2008 19:53
  • Copia de novo o script ali, eu acabei de corrigir isso..

     

    sexta-feira, 29 de fevereiro de 2008 19:57
    Moderador
  • Certo agora rodou, aparentemente sem nenhum erro.

    Sou adm da máquina porém ele não alterou o meu GMT.Eu preciso fazer aquele esquema do .reg também?

    sexta-feira, 29 de fevereiro de 2008 20:02
  • reinicie a máquina Wink, não sei porque cargas d'agua o registro atualiza mas a opção fica sem modificar só quando reinicia a máquina que é mudado, tentei de tudo aqui, mas sem sucesso, mas reiniciando funciona Wink

     

    sexta-feira, 29 de fevereiro de 2008 20:19
  • Estranho Laerte, acabei de reiniciar minha máquina e não mudou o GMT Tongue Tied continua com -2.

    sexta-feira, 29 de fevereiro de 2008 20:31
  •  

    ¬_¬   não mudou?

     

    o.0 que isso....

     

    é

    sexta-feira, 29 de fevereiro de 2008 20:33
    Moderador
  • Renato, você tem alguma politica de DHCP instalada na sua rede para pegar a hora do servidor ou alguma coisa do tipo, pois se não funcionou, tem alguma coisa obscura na sua rede, já verificou vírus ou coisa do tipo, pois eu testei esse script o do felipe e todos eles funcionaram, siga o caminho do registro e veja como estão os valores Wink

     

    sexta-feira, 29 de fevereiro de 2008 20:39
  • É estranho porque não tem nenhum script de logon e também minha máquina está com IP fixo, nada de DHCP.

    Eu logo ele adianta uma hora no horário porém continua com o GMT errado.

    O problema para rodar o .reg é que algumas estações rodam usuario limitado.

    sexta-feira, 29 de fevereiro de 2008 20:51
  • Vo te perguntar uma coisa.....

     

    Qual o GMT dos seus DCs?

    O horário atualiza pelo DC, talvez num tenho certeza, se estiver errado lá ele pode estar atualizando as estações, com o errado.

     

    Dá uma checada.

     

    o.0

     

    sexta-feira, 29 de fevereiro de 2008 20:53
    Moderador
  • Olá,


    recomendo veementemente a leitura do link abaixo:

    http://support.microsoft.com/kb/933360/en-us

    Ele fala do procedimento oficial para alteração do Timezone no Windows. Tem até hotfix pra isso, que evita bastante dor de cabeça.

    []s,

    --
    Vinicius Canto
    MVP Windows Server - Admin Frameworks
    MCP Windows 2000 Server, Windows XP e SQL Server 2000
    Bacharelando em Ciências da Computação - USP

    Blog sobre Scripting e Windows Powershell: http://viniciuscanto.blogspot.com
    sexta-feira, 29 de fevereiro de 2008 23:36
    Moderador
  •  

    Renato,

     

    Aqui no trabalho os colegas resolveram um problema parecido com esse, só que no nosso caso era ao contrário nosso GMT é -5  e o do windows so ficava com o ode Brasilia.

     

    Então os colegas resolveram da seguinte forma:

     

    1 - Crie um arquivo .reg com o seguinte código:

    Code Snippet

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Rio Branco]
    "Display"="(GMT-05:00) Rio Branco"
    "Dlt"="Hor. de verão Oeste do Brasil"
    "TZI"=hex:2c,01,00,00,00,00,00,00,c4,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,\
      00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
    "Bias"=dword:0000012c
    "DisableAutoDaylightTimeSet"=dword:00000001
    "StandardName"="Rio Branco"
    "StandardBias"=dword:00000000
    "StandardStart"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
    "DaylightName"="Rio Branco"
    "DaylightBias"=dword:00000000
    "DaylightStart"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
    "ActiveTimeBias"=dword:0000012c

     

     

    onde os campos em amarelo você substitui pelos dados que você precisa, neste caso Brasilia.

     

    2 - Crie um segundo arquivo .bat com o seguinte código:

    Code Snippet

    @echo off
    regedit /s \\NOMESERVER\netlogon\NOMEDOARQUIVO.reg

    net time \\NOMESERVER /set /y

     

     

     

    Depois coloque os dois arquivos na pasta NETLOGON.

     

    Aqui funciona sem problemas.

     

    Esse escript facilitou a vida pois no Acre não tem horário de verão, então não adiantava acertar o relógio atrasado em relação a Brasilia, pois quando tinha horário de verão eles ficavam adiantados.

     

    Espero ter ajudado.

     

    Fábio Santos

     

    quarta-feira, 28 de maio de 2008 23:12