Linacre's Blog

Life is a journey, like bike riding...

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

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

  • Comments 32
  • Likes

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
  • 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?

  • 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?

  • @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.-

  • 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.

  • 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.

  • Espero esto te sirva

    http://support.microsoft.com/kb/156276

  • 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.

  • 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.

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

    Agradesco enormemente tu respuesta.

    Saludos.

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

  • Linacre, Muy bueno.

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

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

  • 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 ?

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

  • 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

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment