Windows Server 2008 R2系统时间在过去随机重置为4小时

我有一个问题,那就是过去随机跳到4小时。 因此,没有任何计划的任务(例如备份)在正确的时间发生,而且我们正在使用的一些时间关键的应用程序(如会计系统)不起作用。

例如,如果实际时间是东部标准时间下午4点,则系统时钟将读取12点。 如果您再次将系统时钟重新设置到正确的时间,则会再次随机跳回4个小时。

  • 操作系统:Windows Server 2008 R2 Standard SP1
  • 此服务器不在虚拟机上,也不join域。
  • 我们的时区是EST。
  • Windows设置为EST时区。
  • BIOS时钟是UTC。
  • 作为参考,EST是距UTC的-4小时。
  • 出于debugging目的,我禁用了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时间服务并将其configuration为外部时间同步不能解决问题。 互联网时间同步将正确设置时间,然后随机重新设置时间。

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

有没有人听说过这个问题或知道解决scheme?

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

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

从纯粹的技术angular度来看,保持BIOS时钟在UTC是“更好的”。 但是,Windows中有许多历史包袱,它们预计BIOS时钟将成为当地时间,所以除非有特定的原因,否则不应该混淆该设置。

因此,我的build议是将BIOS时钟设置为本地时区,确保在Windows中正确设置您的时区,并确保您已将Windows时间服务configuration为使用外部NTP源(因为您不在一个域,从命令行使用w32tm来做到这一点)。