Я побежал w32tm /stripchart /computer:time.windows.com
просто для удовольствия и выяснил, что мои часы на 1,3 секунды отстают от этого сервера времени. Не то чтобы я думаю, что Microsoft ошибается, но я пробовал это с различными другими серверами времени в моем городе, просто чтобы устранить возможные задержки в сети. Тот же результат.
Очевидный способ исправить это - принудительно выполнить повторную синхронизацию, поэтому я запустил w32tm /resync
, но разница во времени сохранилась.
Когда я казнил w32tm /query /status
чтобы выяснить причину этой проблемы, я был шокирован, узнав, что источником данных времени по умолчанию для моего компьютера был Local CMOS Clock
и, видимо, никогда ни с чем не синхронизировался!
Я подумал, что понял, что происходит, и быстро добавил несколько серверов времени своим сверстникам, используя следующую команду: w32tm /config /manualpeerlist:ntp1.scc.kit.edu /syncfromflags:manual /reliable:yes /update
.
Но даже после повторной синхронизации разница во времени осталась 1,3 секунды? Что не так?
Оказывается, w32time просто отстой. Microsoft признала, что
w32time не может надежно поддерживать время синхронизации в диапазоне от 1 до 2 секунд.
Отличные программисты ...
Я установил другую реализацию протокола NTP от Meinberg, компании, которая действительно знает, что делает: NTP Скачать
И бум: моя разница во времени мгновенно упала до нескольких мс.
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
https://github.com/MicrosoftDocs/windowsserverdocs/issues/2065#issuecomment-544785547
Это то, что вам нужно сделать, чтобы иметь точное время в w32tm.
Итак, вам нужен HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ W32Time \ Parameters \ NtpServer time.google.com, 0x5 time.cloudflare.com, 0x1 еще как минимум 2 (в вашей стране и в вашем местном IX или университете) https://gist.github.com/mutin-sa/eea1c396b1e610a2da1e5550d94b0453
Теперь сделайте это со всех вкладок https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/configuring-systems-for-high-accuracy?tabs=MaxPollInterval#registry-settings