Usuário com melhor resposta
Script para mudar o GMT

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\default
tdRegProv")
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
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 SnippetConst 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.MoveFirstDo Until objRecordSet.EOF
strComputer = objRecordSet.Fields("Name").ValueOn 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
Loopwscript.echo "Terminado"
wscript.quito.0
Se ajudar, não esqueça de classificar.
- Marcado como Resposta Fábio JrModerator terça-feira, 14 de fevereiro de 2012 11:06
Todas as Respostas
-
-
-
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
parece que ele está incompleto também
-
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
-
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
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
-
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 SnippetConst 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.MoveFirstDo Until objRecordSet.EOF
strComputer = objRecordSet.Fields("Name").ValueOn 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
Loopwscript.echo "Terminado"
wscript.quito.0
Se ajudar, não esqueça de classificar.
- Marcado como Resposta Fábio JrModerator terça-feira, 14 de fevereiro de 2012 11:06
-
-
-
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
-
-
-
-
-
-
-
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
-
É 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.
-
-
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 -
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 SnippetWindows 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:0000012conde 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.regnet 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