Cambio de hora en Chile: parte 3 – Recomendaciones técnicas


Clock_WHM.jpgPrimera recomendación, esto es para administradores y debe ser leído atentamente antes de hacerlo. No hagan esto en casa niños 🙂

Primera salvedad el horario de verano se extiende por lo tanto el cambio que ocurría este sábado ocurrirá el:

Fin del horario de verano: último sábado de marzo a las 23:59:59 (29 de marzo de 2008)

Dado que este es un cambio transitorio, los sistemas operativos Windows no reflejan este cambio, es decir, la nueva fecha de finalización del horario de verano.

Dado que el proceso de generación de actualizaciones es un proceso que pasa por un testing exhaustivo y la premura de este cambio, dado que el decreto recién se firmó el 27 de febrero, no había tiempo suficiente de hacerlo.

Para aminorar los posibles problemas son las siguientes recomendaciones.

Recomendaciones generales para usuarios de Windows:

1. A fin de poder actualizar los sistemas operativos Windows para computadores personales, recomendamos a los administradores cambiar la información de zona horaria para Chile almacenada en el registro con el objetivo de que refleje la extensión del horario de verano. Lea la sección “Cómo actualizar sistemas operativos para computadores de escritorio y servidores Windows” del documento adjunto, para obtener detalles sobre los pasos recomendados.

2. No ajuste el reloj del equipo en forma manual. Si lo hace, puede ocasionar problemas en su entorno y esta medida no es recomendada ni respaldada por Microsoft.

3. Antes de aplicar los cambios en Sistemas operativos Windows para que reflejen la nueva fecha de finalización del horario de verano en Chile, tenga en consideración los posibles problemas que afectarán a Microsoft Office Outlook y Exchange Server. Lea las secciones de “Impacto para clientes de Outlook en Chile” para obtener más detalles en el documento adjunto.

4. Comuníquese con Soporte de Microsoft al 800 330 600 antes de implementar cualquier modificación si no está seguro acerca de los pasos que debe seguir para preparase para los cambios de horario de verano en Chile.

Ahora veamos Cómo Actualizar los sistemas operativos para servidores y computadores de Escritorio

Todo esto esta basado en el artículo:

914387 – Cómo configurar el horario de verano para sistemas operativos Microsoft Windows http://support.microsoft.com/default.aspx?scid=kb;EN-US;914387

Ojo que la versión de este KB aún no contiene la información de las nuevas configuraciones horarias de Chile, así que siga leyendo el siguiente paso a paso…

1. Cree un archivo de registro que contenga las nuevas configuraciones de horario de verano para Chile siguiendo los pasos a continuación:

1.1 Haga clic en Inicio, luego en Ejecutar, escriba notepad.exe y luego haga clic en Aceptar.

1.2 Copie la siguiente información de registro y luego péguela en el documento de Bloc de notas:

Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Pacific SA Standard Time] "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 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Pacific SA Standard Time\Dynamic DST] "FirstEntry"=dword:000007d7 "LastEntry"=dword:000007d8 "2008"=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 "2007"=hex:f0,00,00,00,00,00,00,00,c4,ff,ff,ff,00,00,03,00,06,00,02,00,17,00,3b,\ 00,3b,00,e7,03,00,00,0a,00,06,00,02,00,17,00,3b,00,3b,00,e7,03

1.3 En el menú Archivo, haga clic en Guardar como.

1.4 Seleccione un destino y luego escriba TZupdate.reg en el cuadro de nombre de Archivo. 

1.5 En el cuadro de Guardar como tipo, haga clic en Todos los archivos y luego en Guardar.

2. Importe esta clave de registro a los equipos de destino al hacer doble clic en TZupdate.reg y hacer clic en ‘Sí’ cuando le pregunten. Todos los equipos (clientes y servidores) deben actualizarse con esta información de registro.

3. Para poder implementar estos cambios de zona horaria en un entorno corporativo, puede usar un programa de inicio como se describe en la sesión “Implementar el archivo de registro con la nueva información de horario de verano usando una Política de grupo” abajo.

Nota: las configuraciones de registro antes mencionadas contienen la siguiente información para la zona horaria “(GMT-04:00) Santiago”:

  • El horario de verano comienza: el segundo sábado de octubre a las 23:59:59 hora local estándar
  • El horario de verano finaliza: el último sábado de marzo a las 23:59:59 hora de verano local.

Ahora esto no termina ya que tenemos que asegurarnos que quede correcto en todas partes….

Use un script para volver a cargar la clave de registro TimeZoneInformation

La información de zona horaria está almacenada en dos ubicaciones. Debemos asegurarnos de actualizar ambas ubicaciones. La importación del archivo TZupdate.reg actualiza la base de datos de zona horaria en el registro. Luego, debe crear un programa fuente que actualice la clave de registro de información de zona horaria en CurrentControlSet. Puede implementar este programa fuente al usar una Política de grupo u otro mecanismo de implementación.

El script identifica la zona horaria actual del computador del cliente y luego vuelve a cargar la clave de registro de TimeZoneInformation con la información actualizada de la base de datos de zona horaria. Después, el programa fuente escribe un evento en el registro Aplicación del computador del cliente donde se ejecutó el programa fuente.

Para crear el archivo de script, siga estos pasos:

1. Haga clic en Inicio, luego en Ejecutar, escriba notepad.exe y presione Entrar

2. Copie el siguiente código y luego péguelo en el documento de Bloc de notas.
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 & "."

3. en el menú Archivo, haga clic en Guardar como

4. Seleccione un destino y luego escriba “refreshTZinfo.vbs” en el cuadro de nombre de Archivo.

5. En el cuadro Guardar como tipo, haga clic en Todos los archivos y luego en Guardar.

Ojo que estos son sólo ejemplos y tienen que probarlos ANTES de implementarlos.

Ahora la última parte que es implementarlo en una política de grupo.

Implementar modificaciones de horario de verano usando una Política de grupo

1. Haga clic en Inicio, luego en Ejecutar, escriba notepad.exe y luego presione Entrar. 

2. Copie el siguiente código y péguelo en el documento de Bloc de notas.

@echo off

regedit /s \\contoso.com\NETLOGON\TZupdate.reg

ver |find /i "6.0">nul

IF %errorlevel% EQU 0 GOTO end

cscript \\contoso.com\NETLOGON\refreshTZinfo.vbs

:end

Nota: debe reemplazar la notación \\contoso.com arriba por el nombre de dominio DNS real para su dominio de Active Directory.

3. En el menú Archivo, haga clic en Guardar como.

4. DST2008Update.cmd en el cuadro de nombre de Archivo. 

5. En el cuadro Guardar como tipo, haga clic en Todos los archivos y luego en Guardar. 

6. Copie los siguientes archivos a la carpeta compartida Netlogon del controlador de dominio que se desempeña como emulador PDC en el dominio:
– TZupdate.reg 
– DST2008Update.cmd
– refreshTZinfo.vbs

7. Espere hasta que se produzca la replicación en Active Directory. También espere hasta que los archivos y las carpetas en la carpeta compartida de volumen del sistema (SYSVOL) se repliquen en los controladores de dominio en el dominio. 

8. Haga clic en Inicio, luego en Ejecutar, escriba control admintools y luego haga clic en Aceptar. 

9. Haga doble clic en Usuarios y computadores de Active Directory

10. Seleccione una Unidad organizacional (OU, Organizacional Unit) que contenga los computadores en los que desea aplicar este script. En este ejemplo, usaremos una OU denominada DST-COMPUTERS. Además, en este ejemplo asumimos que esta OU contiene cuentas de computadores.

11. Haga clic con el botón derecho en la OU DST-COMPUTERS y luego haga clic en Propiedades. 

12. Haga clic en la ficha Política de grupo, luego en Nueva, escriba DST Registry Update y luego presione Entrar. 

13. Haga clic en Editar. Se inicia la herramienta Editor de objetos de políticas de grupo.

14. Expanda Configuración del equipo, expanda Configuración de Windows y haga clic en Scripts (Inicio o Apagado). 

15. Haga doble clic en Inicio y luego en Agregar. 

16. En el cuadro Nombre de script, escriba la ruta de convención de nombre universal (UNC, universal naming convention) del archivo DST2008Update.cmd que está ubicado en la carpeta compartida Netlogon. Por ejemplo, escriba \\contoso.com\NETLOGON\DST2008Update.cmd

17. Haga clic en Aceptar dos veces. 

Hasta aquí con con lo que tienen que hacer los administradores. Pero ojo que:

  • Las instrucciones proporcionadas arriba se pueden aplicar en sistemas operativos Windows 2000, Windows XP y Windows Server 2003; sin embargo, es posible que después de seguir estas instrucciones en un sistema operativo Windows 2003 la zona horaria actual no se actualice. En este caso, quizás deba reiniciar el equipo o ejecutar el script refreshTZinfo.vbs manualmente.
  • Las instrucciones de arriba no se pueden aplicar en sistemas operativos Windows Vista.

Mañana revisaremos las consecuencias del cambio para Outlook y Exchange, en cualquier caso toda la documentación adjunta:

Cualquier duda publíquenla aquí mismo.

Saludos, Christian.-

Comments (31)

  1. Anonymous says:

    Este s&#225;bado 29 de Marzo a las 23:59:59 hrs. volveremos al horario normal de invierno, es decir,

  2. Anonymous says:

    En virtud de la extensi&#243;n del horario de verano en Chile, hemos considerado el siguiente proceso

  3. Anonymous says:

    Con Vista hay que optar por cambiar a otra zona horaria GMT-3 . Adjunto link oficial de MS http://www.microsoft.com/chile/cambiodehora/pmf.aspx

  4. Anonymous says:

    Yo opte por crear una zona horaria y aplicar esta a los equipos y estaciones, ya la probe y resulto OK, si gustan te envio los archivos.

  5. Anonymous says:

    @Fernando,

    si desmarcas la opción de hora vas a tener problemas por la forma como se calcula la hora. Porque funciona en base a un offset.

    Es decir, se usa la hora UTC (similar a GMT) y se calcula hora en en base a ls siguiente ecuación:

    Hora: Hora UTC + Zona Horaria (positivo o negativo) + DST

    Donde DST es Daylight Saving Time, es decir, la hora de verano.

    Por ejemplo, si tenemos las 15:00 hrs en UTC, la hora sería hoy:

    UTC=15:00

    ZonaHoraria=-4

    DST=1

    Hora final: 15:00 – 4:00 + 1:00 = 12:00

    Esto es importante y por eso la recomendación es cambiar a una zona horaria que sea GMT-3 como “(GMT -3:00) Brasilia”

    Saludos, Christian.-

  6. Anonymous says:

    @Fernando,

    tal como dice la pauta técnica estas instrucciones no aplican a Windows Vista.

    La recomendación de cambio de zona horaria manualmente a Brasilia GMT -3, está documentada en http://www.microsoft.com/chile/cambiodehora

    De igual forma lo pondré con más detalle aquí mismo.

    Saludos, Christian.-

  7. Anonymous says:

    @Andrea,

    el cambio o vuelta atrás tendrás que hacerlo a fines de Marzo. Lo cual te dejará nuevamente en la zona horaria GMT-4:00 Santiago, lo que dejará en regimen normal la zona.

    Si hay otros cambios del estilo habrá que volver a los procedimientos manuales.

    cualquier duda avísame.

    saludos, Christian.-

  8. Anonymous says:

    @Alejandro,

    la razon para no cambiar la hora de formal manual es porque se calcula en base a un offset que contiene el GMT. El calculo es:

    GMT + TimeZone (positivo o negativo) + DST (1 hora positivo en nuestro caso)

    @Germain,

    de hecho el script es válido sólo por las próximas 3 semanas, de hecho a fines de Marzo publicaremos el procedimiento de rollback necesario.

    Saludos, Christian.-

  9. Anonymous says:

    Si a alguien le sirve de pauta, yo aplique la creaciòn de una nueva Zona Horaria, lo aplique sobre un dominio 2000, con miembros 2003 y clientes XP, todo ha funcionado correctamente y se han realizado los cambios a la nueva zona horaria.

  10. Anonymous says:

    @Carlos

    el update no necesita rollback, si estas teniendo problemas te recomiendo leer el KB914397 donde esta la información de la zona GMT -4:00 Santiago.

    Saludos, Christian.-

  11. Alejandro[FV] says:

    hola christian, bueno el articulo, muy bien explicado y practico, pero me queda una duda super trivial quizas, por que NO cambiar la hora en forma manual en los equipos personales?.

    ahh y que pasa con Vista?

  12. Germain says:

    Cristian:

    Muy bien explicado, consulta: Tu estas modificando la Zona Horaria de Santiago, esta zona va a tener como definiciòn el cambio el ultimo sabado de Marzo, pero que sucede si el proximo año el gobierno decide volver antiguo horario de verano (cambio el 2 sabado de marzo), se debera volver a ejecutar un script que vuelva a cambiar la definiciòn del cambio del horario de verano?, porque no mejor cear una nueva zona horaria de forma transitoria?

  13. Cristian says:

    Hola Christian, sabes me aparece este error solo en los servidores 2003, al ejecutar el archivo CMD, que tengo configurado al inicio, mediante una GPO o en forma manual.

    De antemano muchas gracias…

    CMD.EXE was started with the above path as the current directory.

    UNC paths are not supported.  Defaulting to Windows directory.

    Microsoft (R) Windows Script Host Version 5.6

    Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

  14. Cristian says:

    Hola Christian, sabes me aparece este error solo en los servidores 2003, al ejecutar el archivo CMD, que tengo configurado al inicio, mediante una GPO o en forma manual.

    De antemano muchas gracias…

    CMD.EXE was started with the above path as the current directory.

    UNC paths are not supported.  Defaulting to Windows directory.

    Microsoft (R) Windows Script Host Version 5.6

    Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

  15. Cristian says:

    Pablo, gracias pero ya habia revisado ese articulo, sin embargo mi preocupacion es que tengo aprox. 80 servidores a los que tengo que aplicar este cambio.

    Saludos.

  16. Cristian says:

    Muchas gracias Germain, pero tengo servicios criticos, por ende no deseo correr riesgos innecesarios.

    Agradesco enormemente tu respuesta.

    Saludos.

  17. jandres says:

    Yo tengo un con win 2003 + estaciones de trabajo con xp,y me preocupa el tema porque todavia no veo una clara solucion.

  18. Guido5 says:

    Linacre, Muy bueno.

    ¿Que sucede con los smartphones, Windows Mobile 5.0 y 6.0?

  19. Juan says:

    Que resultado da si tan solo quitamos el tilde en "Cambiar la hora automáticamente según el horario de verano" ?

  20. andres says:

    Excelente viejo, afortunadamente íbamos por el mismo camino.

    Una consulta… sabes qué pasa con Windows Vista ?

    Entiendo que el formato del registro es diferente.

    Bastaría con generar una nueva zona horaria en Vista configurada adecuadamente ?

  21. Fernando says:

    que pasa con VISTA? a mi no me funciona en mi equipo… probé lo mismo en XP y ningún problema…

  22. GustavoG says:

    Gente,

    Ojo que el refreshTZinfo.vbs falla el refrescar la zona en sistemas operativos en castellano

    Dado que la zona del .reg esta en ingles. no puede encontrar la zona en castellano

    La zona en ingles importada por el .reg es Pacific SA Standard Time y la zona en castellano es

    "Dlt"="Hora de ver. del Pacífico SA"

    "Std"="Hora est. del Pacífico SA"

    para refrescar la zona importada ejecutar en ves del vbs

    CONTROL.EXE TIMEDATE.CPL,,/Z Pacific SA Standard Time

    Este ultimo refresca la zona importada en ingles.

  23. Cbocaz says:

    Germain, Me interesa tu propuesta, es posible que me puedas enviar los archivos?… un duda ante todo, los server son ingles y los clientes español??

  24. Fernando says:

    muy explicativo la solucion pero como dicen algunos, que pasa si solo desmarco la opcion de cambio hora automatico para el horario de verano, en ese caso no se actualiza el horario sino es en forma manual, si alguien le pasa por favor responda

  25. Cristian says:

    Como ya preguntaron, hay alguna diferencia en correr esto para servidores en español o ingles??

    Saludos,

    Cristian

  26. Andrea says:

    Gracias Cristian por la info. Mi pregunta es, que pasa para el próximo año si deciden volver a lo anterior, osea segundo sábado de marzo? en qué afecta correr este script. Habrá otro luego?

    Saludos.

  27. Carlos says:

    Necesito hacer el rollBack no hay documentacion al respecto ya que he aplicado el script sobre una maquina que ya tenia la hora adelantada y esto afecto adelantando una hora mas segun creo fue la aplicación de este script la que provoco adelantar una hora mas..

    quien tiene info del rollback necesario.

    saludos

  28. Carlos says:

    NECESITO EL ROLLBACK PLEASE

    por que aplique el cambio pero me sumo 1 hora osea cuando es horario verano EJ: 2:00 y invierno 1:00 cuando aplique el script cambio a 3:00 .. asi que necesito el archivo que repara o saca la instalacion del registro

    saludos

    Atte.Carlos

  29. Carlos says:

    Si te entiendo pero para el proximo año que sucedera?

    el equipo no cambiara la hora hasta que sea el dia que se señalo para cambiar la hora.

    leere el documento que me señalas.

    saludos

    Atte.

    Carlos

  30. Ignacio says:

    estimado

    tengo el mismo problema de @carlos…

    de que forma puedo dar solucion???