Sincronizzare la time zone

Sincronizzare l’ora esatta è facile, sincronizzare l’impostazione della time zone un pochino meno.

Per sincronizzare l’ora esatta si usa il protocollo NTP, che, va ricordato, distribuisce solamente l’orario UTC; la time zone è una sorta di vista logica di UTC legata alla posizione in cui vi trovate (o al governo che riconoscete valido, se siete in Palestina).

Ci sono situazioni in cui l’impostazione della time zone cambia di frequente ed è necessario inventare un sistema per tenere tutti gli host Windows con la medesima impostazione del fuso orario, spiego in dettaglio questo ed altri problemi legati ai data centre sulle navi in questo video.

Dal momento che non esiste un protocollo di sincronizzazione della time zone, bisogna inventarsi qualcosa che sia il più possibile semplice e manutenibile.

L’implementazione di questa soluzione avviene attraverso l’utility tzutil di Windows e una condivisione file CIFS.

Innanzi tutto bisogna scegliere un host che faccia da time zone server che in questo esempio chiameremo TZSERVER.

Su questo host l’operatore cambia manualmente l’impostazione del fuso orario.

TZSERVER avrà una directory C:\TZ condivisa via CIFS con il nome TZ in cui viene registrato il file TZ.TXT da uno script schedulato ad intervalli regolari che esegue questo comando

tzutil /g > c:\tz\tz.txt

La condivisione \\TZSERVER\TZ e la directory che la ospita possono tranquillamente essere configurate in modo che siano leggibili da tutti, perché è esattamente quello che ci serve.

Su ogni host che si vuole tenere sincronizzato sarà sufficiente schedulare uno script con questi due comandi:

set /p TZ=<\\TZSERVER\TZ\TZ.TXT
tzutil /s "%TZ%"

Se si tratta di un client Windows 10 sincronizzare la time zone sotto il sedere dell’utente potrebbe non essere piacevole se i programmi che ha aperto non tollerano questa azione. Il questo caso è sufficiente aggiungere le due righe sopra al login script oppure creare una GPO User Configuration\Policies\Windows Settings\Scripts (Logon/Logoff)\Logon che richiama lo script.

Ho testato questa soluzione con un time zone server Windows Server 2016 e Windows 10 e Windows Server 2012R2 come client. Da notare che in 2016 ho schedulato tranquillamente il batch con il profilo di Administrator locale della macchina, mentre con 2012R2 ho dovuto utilizzare il SYSTEM account.

Autore: Luigi Rosa

Consulente IT, sviluppatore, SysAdmin, cazzaro, e, ovviamente, geek.

Spazio per un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.