Потерянное время: сбои часов на «семерке»
Потерянное время: сбои часов на «семерке»
Сбои часов реального времени в ОС производства Microsoft имеют давнюю историю, уходящую корнями во времена операционных систем семейства MS-DOS с консольным интерфейсом. Первые версии ДОС требовали от пользователя ручного ввода текущей даты и времени на старте системы и вели отсчет минут с секундами только на протяжении текущего сеанса работы пользователя.
Дело в том, что их показания не синхронизировались с показаниями времени на удаленных серверах, как это происходит сейчас, а основывались на функционировании специально микрочипа, впаянного прямо в материнскую плату компьютера. Такое понятие, как часовой пояс, не поддерживалось в принципе, и пользователь сам должен был следить за всем, что касалось работы часов в реальном времени. Как только батарейка микрочипа разряжалась, ни о какой точности измерений не могло быть и речи.
Это было причиной сбоев многих программ и даже систематических зависаний компьютера. Поэтому пользователю не только нужно было знать о том, как физически функционируют механизмы таймера, но и уметь своевременно заменить батарейку, что требовало возни с потрохами железа ПК.
Однако время сбивается и на современных нам версиях Windows. Почему сбивается время на компьютере при наличии синхронизации с удаленным сервером и как устранить эту неполадку – тема отдельного разговора. Именно ей мы и посвятили эту небольшую заметку. Мы не станем заниматься разбирательством причин эпизодических багов, а будем описывать ситуацию, когда часы на компьютере барахлят регулярно.
Причины неполадок с системным хронометром
Основных причин три:
- Несоответствие часового пояса региона, в котором находится пользователь, и часового пояса, указанного в настройках компа.
- Проблемы с батарейкой CMOS, той самой, о которой мы говорили выше. Как бы там ни было, а она по-прежнему используется Windows для отчетов таймера.
- Компьютер заражен вирусом особого типа, влияющим на показания хронометра ПК.
Во всех этих случаях возникает ситуация, характерная для древних версий ДОС: пользователь входит в систему и начинает возню с настройками времени. Правда делает он это не в консоли, а при помощи апплета трея, но суть дела от этого нисколько не меняется. Кому же приятно каждый раз настраивать эти параметры?
Есть и неочевидные последствия этой проблемы. Например, многие сайты используют привязку посетителей к определенному промежутку времени. И если показания стрелок часов компьютера оказываются вне этого диапазона, то доступ к ресурсам сайта блокируется. Другая проблема связана с лицензированием программного обеспечения.
Современные лицензионные пакеты программ имеют обыкновение допускать работу с ними пользователя только с правильно настроенным хронометражем, соответствующим периоду действия лицензии.
Неправильная работа подсистемы измерения времени Windows приводит к тому, что эти программы просто отказываются запускаться (конкретный пример – антивирусы).
Чтобы не иметь неприятностей, нужно настроить синхронизацию с интернетом. Это вполне возможно, так как большинство современных компьютеров подключено к сети практически постоянно:
- Заходим в панель управления операционной системой.
- Открываем окошко «Дата и время» по ссылке с таким же названием.
- Переходим на закладку «Время по интернету».
- Жмем на кнопку «Изменить параметры».
- Проставляем флажок, ответственный за синхронизацию.
Часы больше не сбиваются, а вы теперь знаете, что делать, если на ОС Windows 7 постоянно сбивается время.
Синхронизация времени
В Linux вопрос синхронизации времени решается довольно просто, причем существует масса различных способов. В Windows все сложнее.
Да, есть возможность синхронизировать время встроенными средствами. Но настройка их довольно убогая и если возникает ошибка во время синхронизации, а это происходит довольно часто, то мы об этом ничего не узнаем. А время тем временем все куда то бежит… Часы сбиваются.
Проверить точность хода часов довольно просто в любой системе, если зайти на сайт time.is .
В данном случае время синхронизировано, поэтому показывается сообщение “You have the exact time!”, в остальных случаях показывается величина отклонения в секундах.
Что же можно использовать для синхронизации времени в Windows, помимо встроенных средств? Воспользуемся программой [Neutron](a href=“http://keir.net/neutron.html) . Архив с программой весит всего 7 килобайт. Распаковываем программу в любую папку на диске. Установка не требуется.
При запуске получаем следующее окно:
Проставляем все возможные галочки в настройках, чтобы программа автоматически синхронизировалась с сервером точного времени при запуске и завершала свою работу в случае удачи и так же перебирала сервера в случае, если синхронизация не удалась. Так же эти опции можно указать путем редактирования файла Neutron.ini, который располагается в папке с программой.
Примерное содержимое файла:
Из серверов оставил только первые два, список по умолчанию довольно обширный.
Небольшое замечание, в Windows 7 для того, чтобы программа провела синхронизацию времени, ее необходимо запускать от имени администратора системы. В противном случае мы сможем посмотреть отклонение времени, но не сможем изменить системное время из-за недостатка прав.
Итак, разобрались как можно вручную синхронизировать время. Осталось только этот процесс автоматизировать. По сути вся задача автоматизации сводиться к периодическому запуску программы с правами администратора. Воспользуемся для этого встроенными средствами операционной системы.
Для этого переходим в “Панель управленияВсе элементы панели управленияАдминистрирование” и выбираем пункт “Планировщик заданий”.
Создаем новое задание:
Указываем имя задачи (в данном случае я открыл для редактирования существующую задачу, поэтому поле ввода не активно). Указываем, что задача будет запускаться как системный процесс и с наивысшими правами. Затем переходим во вкладки Триггеры и задаем следующие условия запуска:
После чего нам осталось только указать, что именно мы собираемся запускать. Это делается во вкладке действия:
Вот и все. После создания задания оно становиться активным и согласно нашим настройкам Neutron будет автоматически запускаться раз в 3 часа с правами администратора, приводя наше системное время в порядок.
Данный способ автоматизации запуска можно использовать не только для синхронизации времени. Но это в другой раз.
Время Windows 7 меняется само по себе
Как видно из названия, время окон меняется в случайное время со случайными величинами. Иногда это происходит каждую минуту, иногда это хорошо часами. Если я нажму синхронизировать с интернет-временем, оно обновится до нужного времени.
Вещи, которые я прочитал / проверил
- Отключить / включить интернет-синхронизацию времени . Нет помощи.
- Отключить / включить службу времени Windows . Нет помощи.
- Батарея CMOS разряжена . Нет, это не мертвый. Изменения времени также случаются, когда окна работают.
- Ваше время маршрутизатора / модема неверно и влияет на время Windows . Нет, это не так.
- Ваш часовой пояс настроен неправильно . Нет, это UTC + 0 Лондон
- У вас двойная загрузка в Hackintosh / Linux . Не только Win 7 работает на этом ПК.
- У вас хитрый разгон . У меня был высокий профиль OC, но я пытался работать на стандартных скоростях без посторонней помощи.
- Вирус / Троян . Я очень сомневаюсь в этом. Это очень простая установка Windows для игр. Установлены только окна и игры со Steam.
Обновить
Я могу подтвердить, что эта проблема не существует, когда я запускаю окна в безопасном режиме. Я проверил это, загрузившись в безопасном режиме. После загрузки я исправил время вручную и оставил компьютер включенным на пару часов, а время не изменилось.
Обновление 2
Я не знаю, как я пропустил эту деталь (или на самом деле, если это поможет), но время сбрасывается на «это» точное время. Это точное время, являющееся первым обновленным временем.
- Я загружаю компьютер, и через некоторое время он сбрасывается (скажем так) 09:33:27
- а-) Я исправляю время, оставляю его на время, и оно возвращается к 09:33:27.
- б) Я оставляю его включенным в течение некоторого времени, и через некоторое время он сбрасывается до 09:33:27 (очень случайный период, я не вижу здесь никакой картины, как ежечасно / каждые 17 минут или что-либо еще)
- Это происходит независимо от того, меняю время или нет.
- После следующей загрузки (на следующий день?) Он выбирает другое время для сброса
Подробнее
Вот скриншот из просмотра событий, об изменении времени. Имейте в виду, что этот снимок экрана сделан, когда служба Windows Time отключена.
Скриншот свойств события:
Страница с подробностями из того же события:
Снимок экрана и его детали подразумевают, что Windows действительно думает, что это правильное время, и чувствует необходимость его обновления. Хотя ни одна служба Windows не активирована, чтобы разрешить это.
Обновление 3 Проблема и решение
Проблема, видимо, была не в Windows или любом другом программном обеспечении, пытающемся обновить время.
Прочитав дамп системной памяти в течение часа, я обнаружил, что Windows не может прочитать RTC с материнской платы. После того, как какое-то время не удалось прочитать состояние RTC, Windows считает, что неправильно рассчитывает время, и возвращается к последнему известному состоянию RTC.
Я понятия не имею, почему это не происходит в «Безопасном режиме», и успешное выполнение Windows в безопасном режиме приводит меня к совершенно неправильному маршруту (Поиск ошибки в программном обеспечении вместо аппаратного). Источником ошибки был системный BIOS (или UEFI в мой случай) не работает вообще после System POST и загрузки. Простой поиск в Google по этому вопросу, и, по-видимому, это действительно распространенная проблема с большинством плат UEFI (я сам использую плату Asus-ROG)
Рекомендуемое решение: прошить свой UEFI и сбросить CMOS в режиме ожидания. Поскольку я знал, что уже использую последнюю версию UEFI, просто сброс CMOS в режиме ожидания сработал для меня. Теперь все работает без проблем.
Спасибо за все комментарии и извините за вводящую в заблуждение информацию о проблеме, но я оставлю всю информацию, размещенную выше, в надежде, что это может кто-то другой.
ИСПРАВЛЕНИЕ: Произошла ошибка во время синхронизации Windows с time.windows.com
Автоматическая синхронизация часов была частью Windows в течение многих лет, и эта функция также присутствует в Windows 10. К сожалению, немногие пользователи имеют некоторые проблемы с синхронизацией часов, и они сообщают об ошибке Произошла ошибка во время синхронизации Windows с time.windows.com сообщение об ошибке.
Как я могу исправить ошибку, произошедшую во время синхронизации windows с time.windows.com?
Содержание:
- Проверьте, работает ли служба времени Windows
- Используйте другой сервер
- Перезапустите службу времени Windows.
- Использовать командную строку
- Отключите сторонний брандмауэр
- Изменить интервал обновления по умолчанию
- Добавьте больше серверов в реестр
- Изменить значения реестра
Решение 1. Проверьте, работает ли служба времени Windows
Функция синхронизации времени в значительной степени зависит от службы времени Windows, и если служба времени Windows не работает, вы можете столкнуться с этой ошибкой. Чтобы устранить эту проблему, необходимо изменить настройки службы времени Windows, выполнив следующие действия:
- Нажмите Windows Key + R и введите services.msc . Нажмите Enter или нажмите ОК .
- Когда откроется окно « Службы» , найдите службу Windows Time и дважды щелкните ее, чтобы открыть ее свойства.
- Установите для параметра « Тип запуска» значение « Автоматический» и нажмите кнопку « Пуск» , чтобы запустить службу времени Windows .
- После этого нажмите Apply и OK, чтобы сохранить изменения.
Решение 2. Используйте другой сервер
Пользователи сообщили, что им удалось решить эту проблему, просто используя другой сервер. Чтобы изменить сервер синхронизации, сделайте следующее:
- Нажмите Windows Key + S и введите дату. Выберите дату и время из меню.
- Когда откроется окно « Дата и время» , перейдите в Интернет-время и нажмите кнопку « Изменить настройки» .
- Выберите time.nist.gov в качестве Сервера и нажмите кнопку Обновить сейчас . Некоторые пользователи также сообщают, что использование pool.ntp.org в качестве сервера решает эту проблему, поэтому вы также можете попробовать его использовать.
- Нажмите OK, чтобы сохранить изменения.
Существуют разные серверы времени, которые вы можете использовать, и некоторые из них: time-a.nist.gov, time-b.nist.gov, time-a.timefreq.bldrdoc.gov и time-b.timefreq.bldrdoc. правительство
Прежде чем попробовать это решение, убедитесь, что служба времени Windows настроена на работу в автоматическом режиме. Для получения подробных инструкций о том, как это сделать, обязательно ознакомьтесь с нашим предыдущим решением.
Решение 3 — Перезапустите службу Windows Time
Чтобы решить эту проблему, вам, возможно, придется перезапустить службу времени Windows . Для этого откройте окно « Службы» и дважды щелкните службу времени Windows, чтобы открыть ее свойства.
Если служба работает, остановите ее. Установите для параметра « Тип запуска» значение « Автоматически» и снова запустите службу. Нажмите Apply и OK, чтобы сохранить изменения и перезагрузить компьютер.
Некоторые пользователи также предлагают изменить настройки входа в систему службы времени Windows перед применением изменений и перезагрузкой компьютера. Для этого выполните следующие действия:
- Перейдите в раздел «Службы» и откройте свойства службы Windows Time .
- Перейдите на вкладку « Вход в систему » и выберите вариант учетной записи локальной системы . Установите флажок Разрешить службе взаимодействовать с опцией рабочего стола .
- После этого нажмите Apply и OK и перезагрузите компьютер.
Имейте в виду, что вам нужно сделать этот шаг сразу после перезапуска службы Windows Time.
Решение 4 — Использование командной строки
По словам пользователей, вы можете решить эту проблему, просто используя командную строку и выполнив несколько команд. Для этого выполните следующие действия:
- Нажмите клавиши Windows + X, чтобы открыть меню Win + X, и выберите « Командная строка» («Администратор») .
- Когда запускается командная строка , введите следующие команды:
- w32tm / debug / disable
- w32tm / незарегистрированный
- w32tm / регистрация
- чистый старт w32time
- Если все прошло успешно, вы должны увидеть «Служба времени Windows запускается.Служба времени Windows была успешно запущена » .
- Закройте командную строку и попробуйте синхронизировать ваши часы.
Решение 5. Отключите сторонний брандмауэр
Инструменты брандмауэра всегда полезны, потому что они предотвращают доступ потенциально опасных приложений к Интернету. К сожалению, иногда эти инструменты могут мешать вашим часам и вызывать появление этой ошибки.
Чтобы исправить эту ошибку, не забудьте временно отключить брандмауэр и проверить, устраняет ли это проблему. Если проблема не устранена, вы можете полностью удалить брандмауэр.
Пользователи сообщили, что после перехода в стандартный режим в своем брандмауэре или после полного его отключения они смогли синхронизировать свои часы без каких-либо проблем.
Кроме того, вы можете настроить брандмауэр на разблокировку доступа NPT через UDP-порт 123. Если вы изменили конфигурацию брандмауэра маршрутизатора, вам также может потребоваться разблокировать UDP-порт 123 на маршрутизаторе.
Вам нужно настроить роутер? Измените любые настройки легко с этими программными инструментами .
Решение 6. Изменить интервал обновления по умолчанию
Иногда эти ошибки могут возникать из-за вашего интервала обновления, но вы можете легко исправить эту ошибку, изменив несколько значений в вашем реестре.
Мы должны предупредить вас, что изменение реестра может привести к проблемам со стабильностью системы, если вы делаете это неправильно, поэтому вы можете создать резервную копию реестра на всякий случай. Чтобы отредактировать реестр, сделайте следующее:
- Нажмите Windows Key + R и введите regedit . Нажмите Enter или нажмите ОК .
- Когда редактор реестра запустится, перейдите к ключу HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services W32Time TimeProviders NtpClient на левой панели. Дважды щелкните ключ SpecialPollInterval .
- В разделе Base выберите Decimal . По умолчанию значение должно быть равно 604800 . Это число представляет 7 дней в секундах, но вы можете изменить его на 86400, чтобы оно представляло 1 день.
- После этого нажмите кнопку ОК, чтобы сохранить изменения.
Решение 7 — Добавьте больше серверов в реестр
Иногда вам просто нужно переключиться на другой сервер времени, и если вы хотите, вы можете добавить эти серверы в реестр, выполнив следующие действия:
- Откройте редактор реестра и перейдите к ключу HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows CurrentVersion DateTime Servers на левой панели.
- Вы должны увидеть несколько значений, доступных на правой панели. Каждый сервер будет представлен числом. Чтобы добавить новый сервер времени, щелкните правой кнопкой мыши пустое место и выберите « Создать»> «Строковое значение» .
- Введите соответствующий номер в качестве имени, в нашем случае это 3, так как у нас уже есть 3 доступных сервера, и дважды щелкните по нему.
- В поле « Значение» введите адрес сервера. Пользователи сообщали, что сервер tick.usno.navy.mil работал для них, поэтому вы можете добавить его, если хотите. Нажмите OK, чтобы сохранить изменения.
- Необязательно: Вы можете добавить столько серверов, сколько хотите, выполнив предыдущие шаги. Что касается серверов, вы можете добавить любой из них:
- time-a.nist.gov
- time-b.nist.gov
- 128.105.37.11
- europe.pool.ntp.org
- clock.isc.org
- north-america.pool.ntp.org
- time.windows.com
- time.nist.gov
После добавления серверов в реестр просто перейдите к настройкам времени и даты и выберите любой из добавленных вами серверов. Для получения дополнительной информации о том, как изменить сервер времени, обязательно проверьте Решение 2 для получения подробных инструкций.
Решение 8 — Изменить значения реестра
Пользователи сообщили, что вы можете решить эту проблему, просто изменив два значения в вашем реестре. Для этого выполните следующие действия:
- Откройте редактор реестра и перейдите к ключу HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services W32Time Config на левой панели.
- В правой панели дважды щелкните MaxNegPhaseCorrection и установите для данных значения значениеffffff. Нажмите OK, чтобы сохранить изменения.
- Дважды щелкните MaxPosPhaseCorrection и установите значение данных в значение ffffff. Нажмите OK, чтобы сохранить изменения.
- Закройте редактор реестра .
После этого попробуйте снова синхронизировать ваши часы. Прежде чем попробовать это решение, рекомендуется сделать резервную копию реестра, если что-то пойдет не так.
Произошла ошибка во время синхронизации Windows с time.windows.com. Ошибка может помешать синхронизации ваших часов, но вы можете легко решить эту проблему, изменив сервер времени или воспользовавшись любым из наших решений.
Если у вас есть еще вопросы или предложения, не стесняйтесь оставлять их в разделе комментариев ниже.
ЧИТАЙТЕ ТАКЖЕ:
- Исправлено: значки синхронизации Dropbox не отображаются в Windows 10
- Исправлено: Chrome не синхронизируется в Windows 10
- Cortana теперь синхронизирует уведомления между телефонами на базе Windows 10 / Android и ПК
- Исправлено: не удается синхронизировать электронную почту AOL с приложением Windows 10 Mail
- Исправлено: Runtime Broker вызывает высокую загрузку процессора
Примечание редактора: этот пост был первоначально опубликован в сентябре 2016 года и с тех пор был полностью переработан и обновлен для обеспечения свежести, точности и полноты.