
Corri w32tm /stripchart /computer:time.windows.com
apenas por diversão e descobri que meu relógio está 1,3 segundos atrasado em relação a esse servidor de horário. Não que eu ache que a Microsoft esteja errada, mas tentei com vários outros servidores de horário na minha cidade apenas para eliminar possíveis atrasos na rede. Mesmo resultado.
A maneira óbvia de corrigir isso seria forçar uma ressincronização, então executei w32tm /resync
, mas a diferença de horário persistiu.
Quando executei w32tm /query /status
para descobrir o que estava causando esse problema, fiquei chocado ao descobrir que a fonte de dados de tempo padrão do meu computador foi Local CMOS Clock
e aparentemente nunca foi sincronizada com nada!
Achei que tinha descoberto o que estava acontecendo e adicionei rapidamente alguns servidores de tempo aos meus pares usando o seguinte comando: w32tm /config /manualpeerlist:ntp1.scc.kit.edu /syncfromflags:manual /reliable:yes /update
.
Mas mesmo depois de outra ressincronização, a diferença horária permaneceu em 1,3 segundos? O que está errado?
Responder1
Acontece que o w32time é simplesmente uma droga. A Microsoft admitiu que
w32time não pode manter o tempo de sincronização de forma confiável no intervalo de 1 a 2 segundos.
Ótimos softwares, pessoal...
Instalei uma implementação diferente do protocolo NTP da Meinberg, uma empresa que realmente sabe o que está fazendo:Baixar NTP
E bum: minha diferença de fuso horário caiu instantaneamente para apenas alguns ms.
23:43:23, d:+00.0135611s o:+00.6267124s
23:43:25, d:+00.0169653s o:+00.6379619s
23:43:28, d:+00.0145823s o:+00.0086838s <-- Exact moment the new NTP implementation was installed.
23:43:30, d:+00.0157926s o:-00.0037974s
Responder2
https://github.com/MicrosoftDocs/windowsserverdocs/issues/2065#issuecomment-544785547
Isso é o que você precisa fazer para ter o tempo preciso no w32tm.
Então, você precisa de HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer time.google.com,0x5 time.cloudflare.com,0x1 pelo menos mais 2 (em seu país e em seu IX ou universidade local)https://gist.github.com/mutin-sa/eea1c396b1e610a2da1e5550d94b0453
Agora faça isso em todas as guias https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/configurando-systems-for-high-accuracy?tabs=MaxPollInterval#registry-settings
Responder3
O serviço w32tm permite sincronizar a hora apenas com uma diferença de 1 segundo entre a hora do PC e do servidor de horário. Alternativamente, você pode forçá-lo a sempre sincronizar com o servidor de horário em cada verificação, independentemente da diferença de horário. O valor a ser verificado é a entrada de registro "MaxAllowedPhaseOffset" em HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
Para forçar a sincronização sempre, defina esse valor como 0.
Mas primeiro verifique se esse valor está dentro do valor desejado.Alguns sistemasprecisa permitir mais diferença de horário. Além disso, observe nodocumentação w32tmque depois que uma sincronização de horário for necessária (ou seja, a diferença for maior que MaxAllowedPhaseOffset), o w32tm alterará o horário instantaneamente ou gradualmente.