Системное время Windows Server 2008 R2 случайно сбрасывается до 4 часов в прошлом
У меня возникла проблема, когда время случайно перепрыгивает на 4 часа в прошлом. В результате ни одно из запланированных заданий (таких как резервное копирование) не выполняется в нужное время, а некоторые приложения, которые мы используем в срочном порядке (например, система учета), не работают.
Например, если фактическим временем является 16:00 EST, системные часы будут показывать 12:00. Если вы снова сбросите системное время на правильное время, оно будет случайным образом снова возвращаться на 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 вечера. После этого события системное время показывало 13:00, ровно на 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 из командной строки, чтобы сделать это).