Windows Server 2008 R2系統時間隨機重設為過去4小時

Windows Server 2008 R2系統時間隨機重設為過去4小時

我遇到一個問題,時間隨機跳到過去 4 小時。因此,計劃任務(例如備份)都不會在正確的時間發生,並且我們正在使用的一些時間關鍵型應用程式(例如會計系統)無法運作。

例如,如果實際時間為美國東部時間下午 4 點,系統時鐘將顯示為中午 12 點。如果您再次將系統時鐘向前重設為正確的時間,它會再次隨機跳回 4 小時。

  • 作業系統:Windows Server 2008 R2 標準 SP1
  • 該伺服器不在虛擬機器上,也未加入網域。
  • 我們的時區是東部時間。
  • Windows 設定為 EST 時區。
  • BIOS 時鐘採用 UTC。
  • 作為參考,EST 距離 UTC 為 -4 小時。
  • 出於調試目的,我禁用了 Windows 時間服務以及我能想到的任何其他會更改系統時間的服務。

我檢查了事件檢視器,並看到一些與時間更改相關的“內核常規”事件。這是一個例子:

<?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 時間服務並將其配置為外部時間同步並不能解決問題。網路時間同步會正確設定時間,然後時間會再次隨機重設。

每次重新啟動電腦時也會確實出現此問題。

有人聽過這個問題或知道解決方案嗎?

答案1

預設情況下,Windows 希望 BIOS 時鐘設定為本機時間,不是世界標準時間。 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 來執行此操作)。

相關內容