ss_blog_claim=523adfc12fd43a389f862977c57fd09e

Cambio de Hora en Chile | Marzo 2008

Publicado el 4 March, 2008 | por Diego Cabai | Leído 507 veces

kworldclock Como algunos de ustedes saben, este mes debería cambiar la hora de Chile automáticamente por el “horario de verano”. Lamentablemente los gobiernos no se cansan de cambiar las fechas del cambio de hora por mas que las zonas ya estén definidas. No se dan cuenta que a nivel de software y tecnología es un verdadero trastorno cuando toman esa decisión y como si un par de días mas o menos realmente fuese a cambiar el ahorro energético.

Bueno, ya basta de quejarme y a ponerme a trabajar porque el cambio de hora de Chile se corrió del 8 de Marzo, al 29 de Marzo a las 23:59:59. Microsoft generalmente distribuye parches o hotfixes para solucionar estos temas, pero no puede estar haciendo un hotfix cada vez que al gobierno se le ocurre cambiar la fecha estipulada en la zona horaria. Ya nos pasó hace poco en Argentina que avisaron una semana antes del cambio.

Como no tenemos nada entregado por parte de Microsoft, les voy a decir cómo hacerlo en forma manual y en forma automática modificando el registro de Windows. De esta manera podrán tener los equipos de Chile actualizados con el nuevo cambio de horario.

La actualización de la zona horaria puede hacerse en forma manual con la herramienta TZedit.exe y modificar las fechas manualmente. Esta es la opción mas molesta. Otra opción es ejecutando un archivo .reg con todos los parámetros de la nueva zona.

Mas abajo voy a dejar un ZIP con todos los archivos comentados en este post, pero si queres ir ejecutando los pasos deberías abrir un notepad, copiar el siguiente contenido, pegarlo en el notepad y luego guardar el archivo con un nombre cualquiera, por ejemplo TZUpdateChile.reg

TZUpdateChile.reg:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Pacific SA Standard Time]
“Display”=”(GMT-04:00) Santiago”
“Dlt”=”Pacific SA Daylight Time”
“Std”=”Pacific SA Standard Time”
“MapID”=”-1,82″
“Index”=dword:00000038
“TZI”=hex:f0,00,00,00,00,00,00,00,c4,ff,ff,ff,00,00,03,00,06,00,05,00,17,00,3b,\ 00,3b,00,00,00,00,00,0a,00,06,00,02,00,17,00,3b,00,3b,00,00,00

Si lo ejecutamos localmente y aceptamos las ventanas de advertencia del sistema operativo ya nos va a actualizar la zona de Santiago para que el cambio de hora de verano sea el último Sábado de Marzo en vez del segundo como estaba antes.

Podemos verificarlo si abrimos nuevamente el TZedit.exe, ahí nos va a mostrar la nueva fecha para el cambio de hora.

IMPLEMENTACIÓN AUTOMÁTICA POR GPO:

Otro punto importante es cómo hacemos en un enterprise para hacer un deploy masivo de esta modificación en todos los equipos. Sería muy útil, de otra manera deberíamos pasar equipo por equipo.

Para esto, vamos a necesitar el archivo que creamos antes (TZUpdateChile.reg) y un par de archivos mas. Como segundo archivo vamos a crear un VBS para que actualice la zona horaria luego de modificarla. De esa manera nos aseguramos que el sistema operativo tome los nuevos parámetros. A veces no es necesario pero otras si, por eso nos conviene hacerlo ya que no nos complica para nada.

Nuevamente abrimos el notepad.exe, copiamos el siguiente código, lo pegamos en el notepad y lo guardamos como refreshTZInfo.vbs.

refreshTZInfo.vbs:

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 has been executed on this computer.” & chr(13) & chr(10) & chr(13) & chr(10) & “Current time zone is: “ & szCurrDispName & “.”

Listo los dos archivos que necesitamos para hacer el deploy, sólo nos falta uno y es el que ejecuta ambos desde la GPO o política del dominio. Para esto volvemos a abrir el notepad y hacemos los mismos pasos que antes pero con el siguiente código y lo llamamos TZUpdateChile.cmd.

TZUpdateChile.cmd:

@echo off
regedit /s \\contoso\NETLOGON\TZUpdateChile.reg
cscript \\contoso\NETLOGON\refreshTZInfo.vbs

Tengan en cuenta donde dice \\contoso que deben modificarlo por su propio dominio y los archivos deben estar copiados en esa ruta. Si los copiaron en otra ruta alternativa dentro de NETLOGON deben especificarla aquí. Si los copiaron en otra ruta alternativa deben asegurarse que el grupo “Authenticated Users” tenga permisos de lectura. La ruta NETLOGON puede ubicarse dentro del Domain Controller de su dominio bajo C:\WINDOWS\SYSVOL\domain\scripts. La unidad C: puede cambiar según instalaciones, incluso puede no estar dentro del directorio WINDOWS. Esa ubicación es por defecto en una instalación de Windows como Domain Controller.

GPO:

Como último paso debemos crear la política o GPO. Para esto podemos utilizar la herramienta “Group Policy Management Console“. Creamos una nueva política, ponemos un nombre que nos guste como DST Chile Update y luego hacemos click derecho “Edit”.
Ahí navegamos hasta Computer Configuration -> Windows Settings -> Scripts (Startup/Shutdown)
Hacemos doble click sobre Startup y luego hacemos click en Add.

Donde nos pide el nombre (Name) debemos escribir la ruta completa donde tenemos el archivo TZUpdateChile.cmd que también debe ser copiado al netlogon junto con los anteriores, por ende en este caso sería \\contoso.com\NETLOGON\TZUpdateChile.cmd.
Hacemos click en Ok hasta cerrar la política y por último nos queda aplicarla a la OU que contenga los equipos que queremos modificar. Si queremos que aplique a toda la compañía podemos aplicarla a nivel dominio.

Listo, eso es todo, ahora podemos relajarnos que los equipos no se nos van a cambiar de horario antes de lo que dispuso el gobierno. Ojo, tal vez cambien de día nuevamente jaja así que estate atento.

Links útiles:

Microsoft Daylight Saving Time & Time Zone FAQs Blog
How to configure daylight saving time for Microsoft Windows operating systems
Daylight Saving Time Help and Support Center

Email Email | Imprimir Imprimir |  PDF

  1. 4 Respuestas a “Cambio de Hora en Chile | Marzo 2008”

  2. De Anonymous el 11 Mar, 2008 | Responder

    Hola Amigo, cual es el codigo que cambia para despues volver a la segunda semana? muchas gracias Emilio

  3. De Diego Cabai el 11 Mar, 2008 | Responder

    Hola Emilio, gracias por el comentario, vos queres volver a configurar la segunda semana para el 2009 me estas preguntando?

    Saludos!

  4. De Anonymous el 14 Mar, 2008 | Responder

    Hola Diego, lo que quiero saber es que cogido midificar para cambar de la 4 semana a la primera o la segunda. gracias por tu ayuda

  5. De Diego Cabai el 14 Mar, 2008 | Responder

    Hola, si entendí bien vos queres saber como modificar la zona en el futuro por si hay mas cambios. Para eso tendrías que ir al documento de Microsoft que puse mas arriba:

    http://support.microsoft.com/default.aspx?scid=kb;EN-US;914387

    Ahí bajar la herramienta TZEdit

    Una vez que la tenes y la ejecutas, podes modificar la zona horaria con el horario de verano que quieras. Pero eso te sirve localmente. Después tendría que exportar la registry de la zona horaria y enviar ese .reg al resto de los equipos.

    Espero te sirva.
    Saludos!

Deja un comentario!


RSSTechnoratiPublicite AquiPublicite Aqui


 
 

Directorios

Directorio de Blogs
Software
blogarama
la blogoteca
Envialo a Keegy.com