| Disaster
Registración: Jun 2003
Mensajes: 2,232
| Para los que tuvieron problemas con el NO cambio de hora Hola muchachada! traigo una solucion para aquellos que, al igual que yo, administren algun dominio, y hayan tenido problemas con el NO cambio de horario (como todos sabemos, los equipos tenian configurada la zona horaria de Buenos Aires con el DST)
Aclaro, esto es para aplicarlo en dominios con active directory, donde podemos pasar un script de inicio de sesion a todos los equipos mediante una GPO.
Los pasos son simples:
Primero:
Crear un archivo "TZUpdate.reg" con el siguiente codigo: Código: Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Argentina Standard Time]
"Display"="(GMT-03:00) Buenos Aires"
"Dlt"=""
"Std"="Argentina Standard Time"
"TZI"=hex:b4,00,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\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Argentina Standard Time\Dynamic DST]
"FirstEntry"=dword:000007d6
"LastEntry"=dword:000007d8
"2008"=hex:b4,00,00,00,00,00,00,00,c4,ff,ff,ff,00,00,03,00,00,00,03,00,00,00,\
00,00,00,00,00,00,00,00,0c,00,00,00,05,00,00,00,00,00,00,00,00,00
"2007"=hex:b4,00,00,00,00,00,00,00,c4,ff,ff,ff,00,00,01,00,01,00,01,00,00,00,\
00,00,00,00,00,00,00,00,0c,00,00,00,05,00,00,00,00,00,00,00,00,00
"2006"=hex:b4,00,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
Luego, crear un vbs "RefreshTZInfo.vbs" con el siguiente codigo: Código: Set objSh = CreateObject("WScript.Shell")
'Get the StandardName key of the current time zone
szStandardName = objSh.RegRead("HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\StandardName")
'Enumerate the subkeys in the time zone database
const HKEY_LOCAL_MACHINE = &H80000002
Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
szTzsKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones"
objReg.EnumKey HKEY_LOCAL_MACHINE, szTzsKeyPath, arrTzSubKeys
'Step through the time zones to find the matching Standard Name
szTzKey = "<Unknown>"
For Each subkey In arrTzSubKeys
If (objSh.RegRead("HKLM\" & szTzsKeyPath & "\" & subkey & "\Std") = szStandardName) Then
'Found matching StandardName, now store this time zone key name
szTzKey = subkey
End If
Next
If szTzKey = "<Unknown>" Then
'Write entry to the Application event log stating that the update has failed to execute
objSh.LogEvent 1, "DST 2007 Registry Update and Refresh failed to execute on this computer. Time zones failed to enumerate properly or matching time zone not found."
Wscript.Quit 0
End If
Dim process, processid, result, strUpdateCommand
Set process = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2:Win32_process")
'Add time change privilege to the process object
process.Security_.Privileges.AddAsString "SeSystemTimePrivilege",True
strUpdateCommand = "control.exe timedate.cpl,,/Z" & szTzKey
'Launch control.exe to refresh time zone information using the TZ key name obtained above
result = process.create(strUpdateCommand,Null,Null,processid)
If result <> 0 Then
objSh.LogEvent 1, "DST 2007 Registry Update and Refresh failed to execute on this computer. Unable to refresh the Timezone database."
Wscript.Quit 0
End If
'Get current display name of refreshed time zone
szCurrDispName = objSh.RegRead("HKLM\" & szTzsKeyPath & "\" & szTzKey & "\Display")
'Write entry to the Application event log stating that the update has executed
objSh.LogEvent 4, "DST 2007 Registry Update and Refresh h]as been executed on this computer." & chr(13) & chr(10) & chr(13) & chr(10) & "Current time zone is: " & szCurrDispName & "." Por ultimo, crear un .bat o .cmd con el siguiente codigo: Código: @echo off
regedit /s \\contoso.com\NETLOGON\TZupdate.reg
cscript \\contoso.com\NETLOGON\refreshTZinfo.vbs Por supuesto, cambiar el dominio \\contoso.com por el de nuestro dominio.
Si quieren hacerlo para un entorno pequenio (un cyber digamos).
Lo unico que haria falta hacer, es importar el .reg, y luego correr el script en visual.
Solo sirve si los equipos tienen configurada la zona horaria de bs as.
Saludos y espero que les sea de utilidad!
__________________ Un Pingüino En Córdoba |