L’orologio di Windows Server 2022 torna su un’ora “AM” non corretta dopo ogni riavvio? Questa guida pratica e completa spiega perché succede dopo l’upgrade da Windows Server 2008 e come risolvere definitivamente con verifiche, comandi e procedure passo‑passo.
Panoramica
Dopo l’aggiornamento da Windows Server 2008 a Windows Server 2022, alcuni amministratori osservano che, al termine di ogni riavvio, l’orologio di sistema non mantiene l’ora corretta e torna su un valore “AM” (tipicamente 12 ore indietro). Il fenomeno si presenta anche dopo generiche azioni di troubleshooting e può colpire sia server stand‑alone sia membri di dominio o controller di dominio virtualizzati.
La causa, quasi sempre, è una sincronizzazione dell’ora errata nelle primissime fasi di boot (o subito dopo il logon del servizio), dovuta a configurazioni NTP non corrette, policy che sovrascrivono le impostazioni locali, sincronizzazione concorrente da parte dell’hypervisor o impostazioni di fuso orario/RTC incoerenti.
Sintomi tipici
- L’ora torna sistematicamente al formato AM dopo il riavvio, spesso con uno scarto di 12 ore rispetto alla realtà.
- Gli Event Viewer mostrano eventi del servizio Tempo di Windows (W32Time) legati a sincronizzazioni fallite o fonti non raggiungibili.
- All’avvio in modalità provvisoria con rete l’orologio talvolta resta corretto, segnalando l’intervento di software terzo in ambiente normale.
- Su macchine virtuali, la modifica dell’ora coincide con l’attivazione dei servizi di integrazione (Hyper‑V) o degli strumenti dell’host (VMware Tools) subito dopo il boot.
Cause più probabili, a colpo d’occhio
Indizio | Possibile causa | Come confermare |
---|---|---|
Scarto fisso di 12 ore | Fuso orario non corretto o impostazione RTC/UTC non coerente | tzutil /g e controllo chiave RealTimeIsUniversal |
Ora corretta fino al login, poi cambia | GPO o software di terze parti che riscrive l’ora | gpresult /H , avvio in Safe Mode with Networking |
Server in dominio | Sincronizzazione da origine sbagliata (non dal PDC) | w32tm /monitor e w32tm /query /source |
Macchina virtuale | Time sync dell’host sovrascrive l’ora del guest | Verifica servizi di integrazione Hyper‑V/VMware Tools |
Eventi “Time‑Service” ricorrenti | Fonte NTP irraggiungibile o configurazione corrotta | w32tm /query /status , w32tm /resync , registro eventi |
Soluzioni e verifiche consigliate
Area da verificare | Azione pratica | Perché è rilevante |
---|---|---|
Servizio Windows Time (w32time) | Assicurarsi che il servizio sia impostato su Automatico e In esecuzione (services.msc ). | Se il servizio non parte all’avvio, il server non aggiorna l’ora da una fonte attendibile. |
Fonte di sincronizzazione | Eseguire w32tm /query /status per confermare origine, modalità e precisione; se necessario reimpostare con w32tm /config /syncfromflags:manual /manualpeerlist:"pool.ntp.org" e w32tm /resync . | Un’origine NTP errata o inesistente può riportare l’orologio a un valore di default. |
Integrazione in dominio | Se il server è membro di dominio, verificare che sincronizzi dal PDC Emulator (w32tm /monitor ). | In AD solo il PDC dovrebbe prendere l’ora da internet; tutti gli altri membri ereditano da lui. |
Firmware/driver aggiornati | Installare l’ultima versione di BIOS/UEFI e dei driver di chipset, storage e rete. | Bug nel firmware possono alterare l’RTC (real‑time clock) o la gestione dell’ora del sistema operativo. |
Registro eventi | In Event Viewer → Windows Logs → System filtrare per W32Time o ID evento 24xx, 19x, 134. | Gli errori “Time‑Service” spesso indicano problemi di reachability dell’NTP o di diritti di scrittura sul registro di sistema. |
Criteri di gruppo | In gpedit.msc o tramite RSoP controllare se esiste un criterio che forza un server NTP diverso o disattiva il servizio. | Un GPO mal configurato può sovrascrivere la configurazione locale a ogni riavvio. |
Modalità provvisoria con rete | Riavviare in Safe Mode with Networking e verificare se l’orario rimane corretto. | Esclude software di terze parti (antivirus, agent di backup, strumenti di gestione) che possano riscrivere l’ora. |
Controlli fondamentali su fuso orario e formato
Prima di intervenire sul servizio tempo, assicurarsi che la rappresentazione dell’ora non sia semplicemente un problema di formato AM/PM:
- Verificare in Impostazioni → Data/ora che il fuso orario sia corretto e che “Imposta fuso orario automaticamente” sia disattivato se non necessario.
- Per accertarsi che l’orario reale non sia solo “etichetta AM/PM”, usare il formato a 24 ore:
Get-Date -Format "HH:mm:ss (dd/MM/yyyy)"
- Controllare rapidamente il fuso:
tzutil /g
Conflitti con l’orologio hardware (RTC) e UTC
Se durante l’upgrade o in passato è stata impostata la chiave RealTimeIsUniversal
, Windows può interpretare l’RTC del BIOS come UTC. Con un fuso orario impostato localmente, ogni riavvio può introdurre uno scarto (tipicamente 1–2 ore, ma può apparire come 12h a seconda del fuso e dell’ora legale):
reg query "HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal
Se il valore è 0x1
e non si desidera utilizzare RTC in UTC, impostare a 0
o rimuovere la voce (riavvio richiesto):
reg add "HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /t REG_DWORD /d 0 /f
Server in dominio: linee guida corrette
- PDC Emulator del dominio: deve sincronizzarsi da fonti NTP esterne affidabili (più peer, con flag client). Esempio:
w32tm /config /syncfromflags:manual /manualpeerlist:"0.pool.ntp.org,0x8 1.pool.ntp.org,0x8" /reliable:yes /update net stop w32time & net start w32time w32tm /resync /force
- Membri di dominio (inclusi server applicativi): devono ereditare dal dominio, non da internet:
w32tm /config /syncfromflags:domhier /update w32tm /resync
- Verifica e diagnosi rapida:
w32tm /query /status w32tm /query /source w32tm /monitor
Macchine virtuali: chi comanda l’ora?
Su VM, l’host può imporre l’ora al guest al boot o alla ripresa da sospensione:
- Hyper‑V: nelle impostazioni della VM disabilitare “Time Synchronization” se il guest è un domain controller o se si vuole che l’ora derivi esclusivamente da w32time. Assicurarsi che l’host sincronizzi da una fonte NTP corretta.
- VMware: in VMware Tools disabilitare l’opzione “Synchronize guest time with host” quando la sorgente tempo deve essere il dominio o un NTP interno.
- In ambienti cluster o con snapshot, prevenire il “time drift” evitando ripristini di stato che riportino anche l’ora.
Rete e firewall
La sincronizzazione NTP usa UDP/123. Un firewall o un IPS che blocca o ritarda i pacchetti NTP può causare desincronizzazioni improvvise. Controllare anche la latenza e i jitter del link verso i peer NTP: un percorso instabile può far rifiutare l’aggiornamento.
Guida passo‑passo alla correzione
Verifica del servizio e avvio automatico
Get-Service w32time | Format-Table Status, StartType
Set-Service -Name w32time -StartupType Automatic
Start-Service w32time
Impostare il servizio su Automatico accelera la disponibilità della sincronizzazione nella finestra critica post‑boot.
Controllo della configurazione corrente
w32tm /query /configuration
w32tm /query /peers
w32tm /query /status
Verificare che la voce Type sia coerente (NTP
per PDC, NT5DS
per membri di dominio, NTP
con peer manuali per server stand‑alone).
Reimpostazione sicura della sincronizzazione
Per ripulire configurazioni residue dall’upgrade:
net stop w32time
w32tm /unregister
w32tm /register
net start w32time
w32tm /config /syncfromflags:manual /manualpeerlist:"pool.ntp.org"
w32tm /resync /nowait
Convalida del fuso e dell’ora legale
tzutil /g
tzutil /s "W. Europe Standard Time"
Sostituire il fuso con quello corretto per il vostro ambiente. Evitare l’impostazione automatica del fuso nelle VM ospitate in data center multi‑regione.
Controllo di GPO e RSoP
gpresult /H C:\Temp\rsop.html
In rsop.html controllare:
Computer Configuration → Administrative Templates → System → Windows Time Service
Disattivare policy conflittuali che sostituiscono la sorgente NTP o che forzano stati del servizio non desiderati.
Analisi del registro eventi
- Windows Logs → System: filtrare Source: W32Time.
- Applications and Services Logs → Microsoft → Windows → Time‑Service: cercare errori/avvisi all’avvio.
- Security: l’evento “System time was changed” (ID 4616) indica chi/che cosa ha modificato l’ora.
Safe Mode con rete
Se in modalità provvisoria l’ora resta corretta, indagare su agent antivirus, strumenti di gestione, software di backup o monitoraggio che eseguono un “time set” all’avvio. Disabilitare uno alla volta fino a identificare il responsabile.
Attività pianificate e trigger di sistema
Controllare le attività pianificate di sincronizzazione:
schtasks /query /fo LIST /v | findstr /I "Time Sync w32time"
In Task Scheduler → Microsoft → Windows → Time Synchronization verificare che i trigger non siano stati modificati o duplicati da software terzi.
Script PowerShell “tutto in uno” per audit e fix
Lo script seguente raccoglie informazioni chiave e, opzionalmente, applica alcune correzioni standard (nessuna modifica distruttiva senza interazione):
$report = [ordered]@{}
$report.TimeNow = (Get-Date).ToString("yyyy-MM-dd HH:mm:ss zzz")
$report.TZ = (tzutil /g)
$w32 = Get-Service w32time
$report.W32TimeStatus = "$($w32.Status) / $($w32.StartType)"
$report.Source = (w32tm /query /source) 2>&1
$report.Status = (w32tm /query /status) 2>&1
$report.Config = (w32tm /query /configuration) 2>&1
$rtu = try { reg query "HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal 2>1 } catch {}
$report.RealTimeIsUniversal = $rtu
$report.HyperVIntegration = (Get-Service -Name vmictimesync -ErrorAction SilentlyContinue) | ForEach-Object { "$($.Status) / $($.StartType)" }
$report.VMwareTools = (Get-Service -Name VMTools -ErrorAction SilentlyContinue) | ForEach-Object { "$($.Status) / $($.StartType)" }
$report | Format-List
Esempio di fix non distruttivo:
if ($w32.StartType -ne 'Automatic') { Set-Service w32time -StartupType Automatic }
Consigli pratici aggiuntivi
Time zone e ora legale
- Impostare manualmente il fuso corretto e disattivare l’opzione automatica se il server non è mobile.
- Se il problema sembra legato al passaggio AM/PM e non ai minuti, controllare l’allineamento fuso‑UTC/RTC.
RTC del BIOS
- Entrare nel firmware e verificare che l’orologio hardware sia preciso prima di avviare Windows.
- Una batteria CMOS scarica in genere riporta date molto vecchie: se il sintomo è solo “AM/PM”, è meno probabile ma da escludere comunque.
Virtualizzazione
- Se la VM deve seguire il dominio, disattivare la sincronizzazione dall’host o assicurarsi che l’host stesso sia accuratamente sincronizzato.
- Standardizzare la strategia: o solo dominio, o solo host, ma mai entrambe contemporaneamente.
Reset completo della configurazione W32Time
net stop w32time
w32tm /unregister
w32tm /register
net start w32time
w32tm /config /syncfromflags:manual /manualpeerlist:"pool.ntp.org"
w32tm /resync /nowait
Questa procedura ricrea le chiavi di registro del servizio, utile se l’upgrade ha lasciato impostazioni corrotte.
Errori comuni da evitare
- Configurare peer Internet su ogni server del dominio. Solo il PDC Emulator dovrebbe rivolgersi all’esterno; tutti gli altri ereditano.
- Lasciare attiva la sync dell’hypervisor su DC o membri di dominio. Genera “lotta” tra fonti e salti d’ora al riavvio.
- Affidarsi a un solo peer NTP. Usare sempre più fonti, preferibilmente geograficamente vicine.
- Ignorare il fuso. Un fuso sbagliato fa sembrare corretto un orario errato o viceversa.
Checklist rapida prima di dichiarare “risolto”
- Servizio w32time in Automatico e In esecuzione.
- Fuso orario corretto; nessun RealTimeIsUniversal indesiderato.
- Peer NTP configurati correttamente (PDC: peer esterni; membri:
domhier
). - UDP/123 consentito; latenza verso i peer accettabile.
- Nessuna policy o tool che sovrascrive l’ora al boot.
- Su VM, strategia di sincronizzazione unica e coerente.
- Event Viewer senza nuovi errori “Time‑Service” dopo 2–3 riavvii.
Domande frequenti
È solo un problema di visualizzazione AM/PM?
Verificare con Get-Date -Format "HH:mm:ss"
. Se in 24 ore l’orario è corretto ma la system tray mostra AM/PM, correggere le impostazioni di formato data/ora del profilo.
Posso usare server NTP pubblici su tutti i server?
Meglio di no in dominio. Il PDC si allinea all’esterno; gli altri ereditano per coerenza Kerberos/AD.
Quanto spesso deve sincronizzare w32time?
Dipende dalla stabilità dell’RTC e dall’ambiente. In generale, l’intervallo predefinito è adeguato; evitare polling eccessivi per non introdurre jitter.
Come capisco chi cambia l’ora?
Abilitare l’auditing: in Local Security Policy → Advanced Audit Policy → System attivare “Audit Security State Change” e cercare l’evento Security ID 4616.
Strategia di risoluzione consigliata
In ordine di impatto e probabilità:
- Allineare fuso e formato (
tzutil
) e verificare che non sia solo un tema di visualizzazione. - Impostare w32time su Automatico, controllare
/source
e/status
, quindi reimpostare la sorgente come da ruolo (PDC/membro/stand‑alone). - Eliminare interferenze: GPO, software terzi, integrazione hypervisor.
- Ripulire la configurazione con unregister/register e riconfigurare i peer.
- Controllare RTC/BIOS e l’eventuale uso di RealTimeIsUniversal.
Conclusione
Il comportamento “l’ora torna in AM dopo ogni riavvio” è quasi sempre il sintomo di una sincronizzazione eseguita male nei primi secondi di vita del sistema. La soluzione passa per tre azioni chiave: garantire l’avvio corretto del servizio Windows Time, indicare una fonte NTP/dominio affidabile coerente con il ruolo del server e assicurarsi che nessun GPO, software o hypervisor riscriva l’ora. Eliminati questi fattori, l’ora rimane stabile e i riavvii non introducono più lo scarto “AM/PM”.
Appendice: comandi utili
# Stato e sorgente
w32tm /query /status
w32tm /query /source
w32tm /monitor
Config
w32tm /query /configuration
w32tm /dumpreg /subkey:parameters
Reimpostazione peer (stand‑alone)
w32tm /config /syncfromflags:manual /manualpeerlist:"0.pool.ntp.org,0x8 1.pool.ntp.org,0x8" /update
w32tm /resync /force
Eredita dal dominio (membro)
w32tm /config /syncfromflags:domhier /update
w32tm /resync
Fuso orario
tzutil /g
tzutil /s "W. Europe Standard Time"
Auditing
wevtutil qe Security /q:"*[System[(EventID=4616)]]" /f:text /c:5
Safe Mode with Networking
bcdedit /set {default} safeboot network
shutdown /r /t 0
Riepilogo dei suggerimenti aggiuntivi originali
Time zone e ora legale
- Controllare che il fuso orario sia corretto in Settings → Time & Language → Date & Time e che l’opzione “Set time zone automatically” sia disattivata se non necessaria.
- Se il problema sembra legato al passaggio AM/PM piuttosto che ai minuti, un’impostazione errata di fuso/ora legale può essere responsabile.
RTC del BIOS
- Entrare nel firmware e verificare che l’orologio hardware (RTC) sia preciso prima di avviare Windows.
- Una batteria CMOS scarica può far perdere l’ora, ma in genere riporta una data molto vecchia: se il fenomeno è solo AM/PM, la batteria è poco probabile ma vale comunque la pena escluderla.
Virtualizzazione
- Se il server è una macchina virtuale, disabilitare la sincronizzazione dell’ora dell’host (VMware Tools, Hyper‑V Time Synchronization Service) oppure assicurarsi che l’host stesso sia sincronizzato con una fonte NTP affidabile.
Reset completo della configurazione W32Time
net stop w32time
w32tm /unregister
w32tm /register
net start w32time
w32tm /config /syncfromflags:manual /manualpeerlist:"pool.ntp.org"
w32tm /resync /nowait
In breve: definire con precisione chi fornisce l’ora (NTP o dominio), quando lo fa (startup del servizio) e come evitare che altri componenti la riscrivano. Con questa disciplina, il problema dell’ora che passa a “AM” dopo ogni riavvio si chiude definitivamente.