Windows Server 2016 日期时间在两个值之间反复切换

Windows Server 2016 日期时间在两个值之间反复切换

我有一台 Windows 2016 Standard 服务器,它的时间似乎每隔一两秒就会在两个值之间波动。这暗示着有两个不同的事物在反复尝试重置时间。

我已经跑过:

w32tm /resync 
net time \\DC /set

它会将其设置为今天的日期(在托盘中),当前为 2021 年 12 月 17 日 11:35,但几秒钟后它会切换到 2021 年 12 月 14 日 22:09,然后几秒钟后又变回原样。这是一个 SQL 服务器,因此这会导致一些有趣的问题,尽管它是一个开发箱,而不是实时的。

我如何知道还有什么在设置日期时间,或者,失败的其他软件/服务可能正在执行此操作?

如果我运行w32tm /query /source,我会得到:

Free-running system clock

如果我运行w32tm /query /configuration,我会得到:


EventLogFlags: 2 (Local)
AnnounceFlags: 10 (Local)
TimeJumpAuditOffset: 28800 (Local)
MinPollInterval: 6 (Local)
MaxPollInterval: 10 (Local)
MaxNegPhaseCorrection: 4294967295 (Local)
MaxPosPhaseCorrection: 4294967295 (Local)
MaxAllowedPhaseOffset: 300 (Local)

FrequencyCorrectRate: 4 (Local)
PollAdjustFactor: 5 (Local)
LargePhaseOffset: 50000000 (Local)
SpikeWatchPeriod: 900 (Local)
LocalClockDispersion: 10 (Local)
HoldPeriod: 5 (Local)
PhaseCorrectRate: 1 (Local)
UpdateInterval: 100 (Local)


[TimeProviders]

NtpClient (Local)
DllName: C:\Windows\system32\w32time.dll (Local)
Enabled: 1 (Local)
InputProvider: 1 (Local)
CrossSiteSyncFlags: 2 (Local)
AllowNonstandardModeCombinations: 1 (Local)
ResolvePeerBackoffMinutes: 15 (Local)
ResolvePeerBackoffMaxTimes: 7 (Local)
CompatibilityFlags: 2147483648 (Local)
EventLogFlags: 1 (Local)
LargeSampleSkew: 3 (Local)
SpecialPollInterval: 3600 (Local)
Type: AllSync (Local)
NtpServer: time.windows.com,0x8 (Local)

VMICTimeProvider (Local)
DllName: C:\Windows\System32\vmictimeprovider.dll (Local)
Enabled: 1 (Local)
InputProvider: 1 (Local)
NtpServer (Local)
DllName: C:\Windows\system32\w32time.dll (Local)
Enabled: 0 (Local)
InputProvider: 0 (Local)

按照下面 @harrymc 的评论,查看 eventvwr 中的事件 ID 4616(系统时间已更改),有两个进程正在修改系统时间。我在任务管理的“服务”选项卡中查找了它们:

PID: 0x394 => 916 (correct time)
Group: LocalServiceNetworkRestricted
vmictimesync
TimeBrokerSvc
Imhosts
EventLog
Dhcp
PID: 0x3a8 => 936 (incorrect time)
Group: Local Service
WinHttpAutoProxySvc
W32Time *-> Windows Time Service?*
nsi
netprofm
FontCache
EventSystem
CDPSvc

停止Windows Time service后,时间将处于正确值,因此这是一个修复,尽管我有点困惑,为什么它会尝试将其设置为 3 天前的时间。我暂时将服务关闭。

可能还有另一种解决方法,即通过 Akina 下面的注释删除 time.windows.com 作为时间服务器。如果我通过这种方式找到解决方法,我会补充这篇文章。感谢 @harrymc 和 @akina。

答案1

要查找哪个进程更改了日期/时间,请查阅 事件 ID 4616:系统时间已更改

  • 运行事件查看器
  • 定位至Windows 日志 > 安全
  • 右键单击“安全”并选择“过滤当前日志……”
  • 在对话框“过滤当前日志”的“过滤”选项卡中,输入 Event ID 4616
  • 单击“确定”

在显示的事件列表中,单击某个事件可以查看其详细信息,尤其是在“进程信息”下可以查看“名称”字段。

相关内容