Почему сбивается время компьютера (сервера) с Windows после выключения / перезагрузки
В этой статье рассмотрим, почему после выключения или перезагрузки ноутбука / компьютера / сервера в операционной системе могут сбрасываться текущие настройки даты и времени, указанные ранее. Рассмотрим, как самый банальный случая с севшей батарейкой BIOS, так и более интересные кейсы с мультизагрузкой Windows и Linux на одном компьютере, и багом прошивки на Windows серверах HPE ProLiant G9 /G8.
Не сохраняется время из-за севшей батарейка BIOS
Самый «классический» ответ на вопрос «Почему не сохраняется и сбивается время и дата на компьютере?» — севшая батарейка BIOS. Данная батарейка отвечает за сохранение настроек BIOS/ UEFI, когда ваш компьютер/ноутбук выключен из розетки, а также обеспечивает автономную работу встроенных аппаратных часов.
Если батарейка села, то при отключении питания материнской карты, BIOS не может сохранить свои настройки, и все они сбрасываются, в том числе и текущее дата и время. Если ваш компьютер довольно старый, вероятность того, что у вас села батарейка крайне велика. Настоятельно рекомендуем ее заменить. Сделать это не сложно, и, как правило, особых инженерных навыков процесс замены батарейки BIOS не требует. В большинстве домашних систем используется в BIOS стандартная батарейка CR2032 на 3 вольта.
Если замена батарейки не помогла, проверьте состояние перемычки сброса настроек BIOS (джампер с перемычкой расположен рядом с отсеком для батарейки и может быть подписан как CCMOS / CLEAR / RESET). Возможно кто-то оставил данный джампер в положении «сброса», в результате чего при каждой подачи питания на мат.плату, настройки BIOS обнуляются. Верните джампер в нормальное положение.
Следующий вариант – обновление прошивки BIOS материнской карты (как это сделать – смотрите на сайте производителя вашего железа). Часто в более новых прошивках исправляются различные баги.
Настройки часового пояса и синхронизации времени с time.windows.com
В том случае, если у вас постоянно меняются настройки даты//времени в Windows, в первую очередь стоит проверить текущие настройки часового пояса и параметры синхронизации времени с интернетом. В Windows 10 текущие настройки времени можно посмотреть в меню панели инструментов (Панель управления\Часы, язык и регион -> Дата и время). В этом примере видно, что указан часовой пояс UTC + 03, переход на зимнее время отключен.
Совет . Вы можете управлять часовым поясом Windows из командой строки с помощью утилиты tzutil .
Если ваш компьютер не в домене, проверьте настройки синхронизации времени с внешним источником времени (сервером времени NTP). В этом случае в этом же окне щелкните по вкладке «Время по Интернету» и проверьте, что компьютер настроен на автоматическую синхронизацию времени с сервером time.windows.com.
Совет . Напомню, что с 2014 года в России отменен переход на летнее время. Возможно вы давно не обновляли свою ОС (Windows 8 и ниже) и у вас не установлены обновления, отключающие переход на летнее время .
Синхронизация времени в домене Windows
Если ваш компьютер входит в состав домена Active Directory, то информацию о том как работает синхронизация времени в домене можно получить из этой статьи.
Сбивается время при переключении между Linux и Windows (Dual Boot)
Отдельно стоит рассмотреть конфигурации, когда на компьютере установлены две операционные системы (Windows и Linux) в конфигурации двойной загрузки (Dual Boot). Вы можете столкнуться с проблемой, что после переключения между операционными системами (загрузки в Linux после Windows) сбивается время на несколько часов вперед или назад.
Windows и Linux по разному работают с временем BIOS. Дело тут в наличии двух форматов представления времени UTC и localtime .
Операционные системы GNU/Linux (в том числе Mac OS X) считают, что время в BIOS указано в формате UTC (по Гринвичу). Соответственно, при загрузке Linux для преобразования UTC к локальному времени добавляет (отнимает) смещение текущего часового пояса, который выбрал пользователь. Т.е. чтобы получить локальное время для часового пояса Москвы UTC+3, Linux добавит 3 часа.
Windows же считает, что в время в BIOS хранится в формате localtime, и если вы указали новый часовой пояс, или синхронизировали время с внешним источником, система соответственным образом меняет время в BIOS на локальное время. Linux (Ubuntu в моем случае) считает, что время в BIOS указано в формате UTC и дополнительно добавляет смещение часового пояса. Именно поэтому и сбивается время при переключении между Linux и Windows.
Чтобы исправить такую ситуацию, нужно переключить Windows на использование времени в формате UTC с помощью параметра реестра RealTimeIsUniversal .
reg add «HKLMACHINE\System\CurrentControlSet\Control\TimeZoneInformation» /v RealTimeIsUniversal /t REG_DWORD /d 1 /f
Совет. В 64 битных версиях Windows нужно создавать параметр типа QWORD вместо DWORD: reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_QWORD /d 1
Также в Windows нужно отключить обновление времени из Интернета, т.к. служба времени Windows при каждом обновлении времени будет сбрасывать UTC время на локальное.
sc config w32time start= disabled
Осталось перезагрузить Windows.
Либо можно переключить Linux на использование локального времени. В Ubuntu 15.04 и выше это можно сделать командой:
timedatectl set-local-rtc 1
Сбивается время после перезагрузки на серверах HP с Windows Server
На серверах HPE DL/ML Gen9 с Windows Server 2008 R2 / 2012 R2 у одного из удаленных заказчиков столкнулись с интересной проблемой после смены часового пояса. Как оказалось, на серверах HP ProLiant Gen9 (и на одном из серверов HP ProLiant DL580 Gen8) при изменении системного времени или часового пояса, после перезагрузки сервера, системное время не сохранялось и сбрасывалось на предыдущее. Проблема были подвержены сервера, в которых Windows Server загружается в режиме Legacy (при нативной UEFI загрузки проблемы отката времени не было).
В журнале системы при этом появлялось такое событие:
The system time has changed to 2018-04-29T12:12:28.500000000Z from 2018-04-29T13:12:27.923115700Z.
Change Reason: System time synchronized with the hardware clock.
В качестве решения проблемы HP предлагает обновить ROM до версии не менее 1.5. Именно в этой версии ROM-Based Setup Utility (RBSU) не подвержена багу со сбросом временм.
Либо в качестве обходного решения, можно указать, чтобы Windows считала, что BIOS отдает ей системное время в формате UTC (а не локальное время). Для этого, как мы уже говорили выше нужно создать в ключе реестра HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation параметр с именем RealTimeIsUniversal и значением 1.
Автоматическая синхронизация времени на компьютере Windows
Синхронизация времени – достаточно важная вещь. Без точного времени не работают сервисы обновлений, не функционируют некоторые сайты, мессенджеры и другие приложения. Настроить синхронизацию несложно, но требуется четкое соблюдение инструкции.
Принцип синхронизации времени
Синхронизация времени осуществляется при подключении компьютера к серверу, на котором указано точное время. Чаще всего, период обновления – 7 дней. Есть способы, с помощью которых можно укоротить промежуток синхронизацию и настроить другой сервер, не стандартный. Один из таких способов – настройка автоматического обновления.
Настройки автоматической синхронизации
В системе Windows 7, 8, 10 есть встроенные часы, которые расположены в правом нижнем углу экрана, на панели уведомлений. Эти часы уже настроены на автоматическое обновление времени, а сервером является “time.windows.com”. Бывают случаи, когда время, все же, не синхронизируется. Если пользователь столкнулся с такой проблемой, перейдем к ее решению.
Стандартные настройки
Для начала стоит воспользоваться стандартным функционалом:
- Перейти по пути “Пуск” – “Панель Управления”, в правом углу открывшегося окна найти пункт “Просмотр”, изменить значение на “Мелкие значки”, затем найти пункт “Дата и время”.
- Откроются настройки времени. Их также можно вызвать по клику левой кнопкой мыши на календаре в строке уведомлений. В открывшемся подменю нужно выбрать “Изменение настроек даты и времени…”.
- Далее, в открывшемся окне, перейти на вкладку “Время по Интернету”. На ней будет предоставлены сведения о существующем способе синхронизации и названии сервера (если она включена). Для изменения конфигурации нажать на “Изменить параметры…”.
- Список серверов времени для синхронизации будет описан далее. Выбрать один из них, либо один из предоставленных по стандарту, кликнуть по кнопке “Обновить сейчас” и убедиться в том, что галочка напротив пункта “Синхронизировать с сервером времени в Интернете” активна. Нажать “ОК”.
Это позволит устанавливать время и дату на компьютере автоматически.
Командная строка
Следующий способ не помогает настроить синхронизацию, это просто команда, которая помогает провести операцию синхронизации вручную с целью ее ускорения:
- Нажать комбинацию клавиш “WIN+R”, в поле открывшегося окна ввести “cmd” (возможно потребуются права администратора).
- Откроется командная строка. Ввести команду “w32tm /resync”.
Команда сработает, если включено автообновление времени.
SP TimeSync
Также можно воспользоваться сторонними приложениями:
- После того как программа была загружена и установлена, важно настроить ее на автозапуск при старте системы. Не обязательно в развернутом состоянии. Нужно отметить соответствующие пункты галочками.
- Перейти к вкладке “NTP клиент”, в пункте меню “Получать каждые…” указать интервал обновления.
- Вернуться к вкладке “Время”, нажать на кнопку “Получить время”, затем “Задать время”. После этого системное значение будет изменено на значение из программы.
Важно: программу нужно не закрывать, а сворачивать в трей, иначе обновления не произойдет.
Изменение времени обновления
Процедура связана с редактированием записей реестра с помощью стандартных возможностей системы:
- На клавиатуре одновременно нажать “WIN+R”, ввести в поле “regedit”.
- Перейти по следующему пути: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\W32Time\TimeProviders\NtpClient.
- Выбрать пункт “SpecialPollInterval”, кликнуть по нему дважды, переключиться на десятичную систему исчисления.
- Определиться с интервалом, перевести его в секунды, внести значение в поле, нажать “ОК”.
Популярные серверы
NTP-Servers
Самый распространенный сервер точного времени среди всех, имеет несколько адресов для синхронизации. Чтобы найти адреса, нужно в правой части сайта NTP-Servers кликнуть по кнопке “Серверы”.
NTP Pool Project
После перехода на сайт NTP Pool Project выбрать сервер в правой части экрана, соответствующий региону.
Скопировать один из адресов и настроить время на ПК.
Time in UA
Сервер Time in UA специально для украинской аудитории. Все что нужно – перейти на сайт и выбрать один из адресов.
Проблемы с синхронизацией
Если время на компьютере не синхронизируется, следует:
- Убедиться в том, что на ПК установлен правильный часовой пояс.
- Установить корректное время в настройках CMOSBIOS.
- Убедиться в том, что батарейка, питающая память BIOS все еще не разрядилась.
Если данные пункты соблюдены – время на ПК всегда будет точным.
Служба времени Windows не работает. Синхронизация времени завершается с ошибкой
Мы уже видели, как изменить интервал обновления времени Windows в Интернете. Но, возможно, ваше Windows Time неправильно и не синхронизируется, или вы не можете настроить параметры Windows Internet time для автоматической синхронизации с сервером времени в Интернете, например, time.windows.com . Хотя вы можете вручную синхронизировать время, нажав Обновить сейчас , вы можете обнаружить, что он просто не делает этого автоматически.
Прежде чем приступить к устранению неполадок, было бы неплохо запустить проверку системных файлов. Для этого вы должны ввести sfc/scannow в CMD с повышенными правами и нажать Enter. Подождите некоторое время, и когда работа будет завершена, перезагрузите компьютер с Windows. Как только вы это сделаете, мы можем двигаться дальше, чтобы попытаться устранить проблему синхронизации времени Windows.
Синхронизация времени Windows не работает
Чтобы изменить настройки времени, нажмите кнопку «Время» в правой части панели задач и выберите настройки даты и времени. Настройки синхронизации находятся на вкладке Интернет-время.
Служба Windows Time не работает
Если у вас неверное время в Windows 10, в первую очередь нужно выяснить, установлен ли для Службы времени Windows значение «Автоматически и запущено», иначе может появиться сообщение об ошибке: Windows Служба времени не работает .
Для этого введите services.msc в поле Начать поиск и нажмите Enter. В диспетчере служб перейдите к службе времени Windows и дважды щелкните ее.
Проверьте и посмотрите, запущен ли он и установлен ли на Автоматический. Если нет, измените тип запуска на Автоматический и нажмите Применить/ОК.
Если это работает, отлично, запустите сервис и выйдите. Это должно быть концом ваших проблем. Если нет, и вы получаете сообщения об ошибках — читайте дальше!
Служба Windows Time не запускается с ошибкой 1079
Если вы обнаружите, что служба времени Windows не запускается с Ошибка 1079 , вы можете убедиться, что служба запускается с помощью учетной записи локальной системы, а не учетной записи локальной службы (NT AUTHORITY \ LocalService ). Подробнее об этом здесь .
Система не может найти указанный путь
Появляется сообщение об ошибке: Системе не удается найти указанный путь .
В таком случае, вы можете перерегистрировать файл DLL. Соответствующий файл DLL — это w3time.dll . Для этого откройте командную строку от имени администратора, введите regsvr32 w32time.dll и нажмите Enter.
Если это работает, хорошо, еще вы все еще получаете это сообщение?
Модуль w32time.dll был загружен, но произошел сбой вызова DllRegisterServer с кодом ошибки 0x80070003
Затем вы также можете зарегистрировать соответствующий файл Windows Time , который называется W32tm.exe, и посмотреть, поможет ли это!
W32tm.exe , расположенный в папке System32, используется для настройки параметров службы времени Windows. Он также может быть использован для диагностики проблем со службой времени. W32tm.exe является предпочтительным средством командной строки для настройки, мониторинга или устранения неполадок службы времени Windows. Вы можете проверить все его параметры здесь на TechNet.
Мы будем использовать параметр /register . Этот параметр при запуске для W32tm.exe регистрирует службу времени для запуска в качестве службы и добавляет конфигурацию по умолчанию в реестр.
Для этого в командной строке с повышенными правами введите эти команды одну за другой и нажмите Enter:
Принудительно синхронизировать время с помощью CMD
Вы также можете заставить Windows синхронизировать время, используя W32tm.exe. W32tm.exe — это строка командной строки, используемая для настройки, мониторинга или устранения неполадок службы времени Windows на ПК с Windows 10.
Для этого откройте командную строку с повышенными правами и введите следующие команды одну за другой:
Перезагрузите компьютер и посмотрите, помог ли он.
Посмотрите, поможет ли это решить вашу проблему … если нет … вздох … вы можете снова получить сообщение при регистрации w32tm.exe:
Произошла следующая ошибка: система не может найти указанный путь. (0x80070003)
Убедитесь, что вы вошли в систему как администратор и открыли командную строку как администратор — но вы можете получить ошибку, даже если вы выполнили эти требования.
В таком случае вам придется открыть редактор реестра .
Открыв regedit, перейдите к следующему разделу реестра:
HKLM \ HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControl \ услуги \ TapiSrv
Теперь на правой панели щелкните правой кнопкой мыши ImagePath и выберите Modify. Здесь, в поле «Значение», убедитесь, что это значение:
% SystemRoot% \ System32 \ svchost.exe -k NetworkService
Нажмите OK и выйдите.
Надеюсь, что-нибудь поможет!
Если ничего не помогает, используйте другой сервер времени, воспользуйтесь бесплатным программным обеспечением для синхронизации времени или попробуйте восстановить/сбросить/переустановить Windows и посмотрите, поможет ли он вам. Если вы не хотите рассматривать этот последний вариант, я могу дать вам только один практический совет: снимите флажок Синхронизировать с сервером времени в Интернете , установите время вручную, а затем отметьте его один раз в какое-то время!
Хотите проверить точность своих системных часов?