Cómo cambiar el Time Zone automáticamente usando Group Policies

Por Daniel Seveso

Varios clientes de Venezuela han preguntado a este respecto. Luego de la instalación del update KB942763 o KB938977 que crea la zona horaria "(-04:30) Caracas", ¿cómo podemos automatizar el cambio en las estaciones de trabajo?

Los updates crean la zona pero no la cambia automáticamente por razones obvias (instalación del hotfix fuera de Venezuela y sincronización entre la instalación y el cambio por mencionar alguna), por lo tanto es una pregunta totalmente válida. Una posible solución que he probado en laboratorio y funciona correctamente, es la utilización de Group Policies para aplicar un startup script que realice este cambio en forma automática. Esto funciona solamente cuando las máquinas pertenecen a un dominio de Active Directory.

Es importante destacar que para cambiar la configuración de zona horaria se requiere permisos de administrador local de la máquina, por lo que un startup script se prefiere a un logon script, ya que el primero corre en el contexto de la cuenta “system” y el segundo en el contexto del usuario que está ingresando a la estación de trabajo.

Lo que hará este script es cambiar la zona horaria en la que se encuentre el cliente, a la zona "(-04:30) Caracas". El procedimiento de implementación sería el siguiente:

1) Instalar el hotfix KB942763 o KB938977 en los clientes usando SMS u otro método de distribución. Este paso debe ser concretado antes de correr el Startup script.

 

2) Corre un startup script que ejecute el comando para cambiar la zona horaria en uso a "(-04:30) Caracas". Este script puede ser implementado usando Starup scripts por Group Policies y debe ser ejecutado el día 9 de Diciembre cuando cambia la hora. Queda a criterio de cada uno, correrlo exactamente a las 3:00a o antes.

 

a. Crear un archivo cambioTZ.cmd con el siguiente texto:

"CONTROL.EXE TIMEDATE.CPL,,/Z Venezuela Standard Time" (sin las comillas), y lo grabamos en c:\

 

b. Determinar si usaremos Logon Script o Starup Script. Recomiendo el uso de Starup Scripts si hay usuarios que no son administradores locales de su estación de trabajo.

 

c. Determinar que computadoras queremos que corran el script. Puede ser en base a un Site de Active Directory o en base a una OU donde estén estas computadoras.

 

d. Crear un Group Policy Object asignado al site o OU definido en el punto 2c. Puedes también asignarlo a nivel de dominio, pero ten en cuenta que el script correrá en todas las computadoras del dominio. Para crear la Group Policy puedes hacerlo con botón derecho sobre la OU o el Site donde decidas aplicarla, y seleccionas el tab “Group Policy” y creas un nuevo Group Policy Object con “New”. Muestro abajo el ejemplo con una OU:

 

 

 

Y luego le ponemos un nombre.

 

e. Luego seleccionamos Edit para editar la policy y vamos al nodo

Computer Configuration/Windows Settings/ Scripts (Startup/Shutdown) y abrimos “Startup

 

f. Ahora agregamos el script a la Policy. Primero presionas “Show Files” para abrir el directorio de la Policy en sysvol. Luego copias el script generado en el paso 2a. a ese directorio. El directorio tendrá un formato similar a \\dominio\sysvol\domain.com\policies\{gpoID}\Machine\Scripts\Starup

 

g.  Presionando Add seleccionas el script que acabas de copiar.

 

3) Finalmente puedes probar el script reiniciando uno de los clientes afectados por la Policy.

Nota: Este procedimiento no funciona para clientes Vista. Yo lo he probado para Windows XP y también debería funcionar para Windows 2003/2000 aunque no lo he probado.

Espero que sea de utilidad.

Saludos!