Windows Server 2008 R2 系统时间随机重置为 4 小时前

Windows Server 2008 R2 系统时间随机重置为 4 小时前

我遇到了一个问题,时间会随机跳转到 4 小时前。因此,所有计划任务(例如备份)都无法在正确的时间发生,并且我们正在使用的某些时间关键型应用程序(例如会计系统)无法运行。

例如,如果实际时间是下午 4 点(美国东部时间),系统时钟将显示中午 12 点。如果您再次将系统时钟重置为正确时间,系统时钟将再次随机向后跳转 4 小时。

  • 操作系统:Windows Server 2008 R2 标准版 SP1
  • 该服务器不在虚拟机上且未加入域。
  • 我们的时区是 EST。
  • Windows 设置为 EST 时区。
  • BIOS 时钟采用 UTC。
  • 作为参考,EST 比 UTC 晚 4 小时。
  • 为了调试目的,我禁用了 Windows 时间服务和我能想到的任何其他会更改系统时间的服务。

我检查了事件查看器,发现有一些与时间变化相关的“Kernel-General”事件。以下是示例:

<?xml version="1.0" encoding="UTF-8"?>
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-Kernel-General" Guid="{A68CA8B7-004F-D7B6-A698-07E2DE0F1F5D}" />
    <EventID>1</EventID>
    <Version>0</Version>
    <Level>4</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x8000000000000010</Keywords>
    <TimeCreated SystemTime="2014-05-09T17:04:34.500000000Z" />
    <EventRecordID>39254</EventRecordID>
    <Correlation />
    <Execution ProcessID="4" ThreadID="68" />
    <Channel>System</Channel>
    <Computer>SERVER</Computer>
    <Security UserID="S-1-5-18" />
  </System>
  <EventData>
    <Data Name="NewTime">2014-05-09T17:04:34.500000000Z</Data>
    <Data Name="OldTime">2014-05-09T21:05:19.806811800Z</Data>
  </EventData>
</Event>

此事件发生在下午 5 点左右。事件发生后,系统时间显示为下午 1 点,比当前时间晚了整整 4 个小时。

安装并运行 Windows 时间服务并将其配置为外部时间同步并不能解决问题。Internet 时间同步将正确设置时间,然后时间将再次随机重置。

每次重新启动计算机时也肯定会出现此问题。

有人听说过这个问题或知道解决办法吗?

答案1

默认情况下,Windows 要求 BIOS 时钟设置为本地时间,不是UTC。Linux 和朋友下的情况并非如此。(这导致双启动系统中的乐趣。)

Windows 最近添加了注册表设置允许将 BIOS 时钟设置为 UTC。但是,此设置不受官方支持,并且已知会导致问题。 http://blogs.technet.com/b/askds/archive/2012/03/09/unresponsive-servers-due-to-dst-and-an-unsupported-registry-key.aspx

从纯技术角度来看,将 BIOS 时钟保持在 UTC 是“更好的选择”。但是,Windows 中有很多历史包袱,要求 BIOS 时钟为本地时间,因此除非有特殊原因,否则您不应该乱改该设置。

因此,我的建议是将您的 BIOS 时钟设置为本地时区,确保您的时区在 Windows 中设置正确,并确保您已将 Windows 时间服务配置为使用外部 NTP 源(由于您不在域中,请使用命令行中的 w32tm 来执行此操作)。

相关内容