Системное время Windows Server 2008 R2 случайно сбрасывается на 4 часа назад

Системное время Windows Server 2008 R2 случайно сбрасывается на 4 часа назад

У меня проблема, когда время случайно перескакивает на 4 часа в прошлое. В результате ни одна из запланированных задач (например, резервное копирование) не выполняется в правильное время, а некоторые критичные ко времени приложения, которые мы используем (например, система учета), не работают.

Например, если фактическое время 4 PM EST, системные часы будут показывать 12 PM. Если вы снова переведете системные часы вперед на правильное время, они снова случайным образом перейдут на 4 часа назад.

  • ОС: Windows Server 2008 R2 Standard SP1
  • Этот сервер не находится на виртуальной машине и не присоединен к домену.
  • Наш часовой пояс — EST.
  • В Windows установлен часовой пояс EST.
  • Часы BIOS установлены в формате UTC.
  • Для справки: EST составляет -4 часа от UTC.
  • В целях отладки я отключил службу времени 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 и настройка ее для внешней синхронизации времени не решает проблему. Синхронизация времени в Интернете установит время правильно, а затем время снова будет сбрасываться случайным образом.

Эта проблема также наверняка возникает каждый раз при перезагрузке компьютера.

Кто-нибудь слышал об этой проблеме или знает решение?

решение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 из командной строки).

Связанный контент