Принудительная синхронизация времени с сервером
Принудительная синхронизация времени с сервером
Управление временем — один из ключевых аспектов системного администрирования. Как правило, все клиентские серверы и рабочие станции синхронизируют время с доменом Active Directory, однако откуда берется точное время в AD? Это зависит от разных факторов. В стандартной конфигурации время синхронизируется с серверами Microsoft, а виртуальные машины обычно получают данные от хост-сервера.
Лучше всего задать единый источник данных о точном времени для всех компьютеров в корпоративной сети — сервер (или несколько серверов), с которым будут синхронизироваться все системы. Это может быть ресурс или пул ресурсов в Интернете, либо локальный сервер. Так или иначе, с источником точного времени стоит определиться заранее.
За синхронизацию компьютеров и серверов Windows отвечает сетвой протокол Network Time Protocol (NTP). NTP использует для своей работы протокол UDP порт по умолчанию 123. Что бы в дальнейшем можно было настроить работу этого сетевого протокола, необходимо проверить, не блокирует ли этот порт фаерволл.
Способы указания NTP Сервера.
1) Команда w32tm позволяет задать список пиров, предоставляющих информацию о точном времени для домена. Чтобы получить дополнительные сведения о команде w32tm, введите в командной строке указанную команду w32tm /?
Первым, что необходимо сделать, это выяснить в каком состоянии находятся контролеры домена в домене. Для этого запускаем в командной строке команду (если у вас права доменного администратора, то можете запустить командную строку на своей рабочей станции)
w32tm /monitor — команда позволяет посмотреть с каким сервером (серверами)/сервисом происходит синхронизация и какая разница во времени с эталонным севером.
w32tm /config /manualpeerlist:time.windows.com /syncfromflags:manual /reliable:yes /update — этой командой мы указываем с каким сервисом/сервером будет происходить синхронизация ( в данном примере с time.windows.com).
Эта команда выполняется на контроллере домена однократно и записывает указанные адреса в реестр ( по пути HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeConfigParametrs в параметре NTPServer должно быть прописано time.windows.com). Можно указать сразу несколько серверов, разделенных пробелами.
2) Еще один способ указать контролеру домена сервер с кем он будет синхронизироваться по времени, это локальные или групповые политики. Запускаем реестр- Нажмите кнопку Пуск, выберите команду Выполнить, введите в командную строку gpedit.msc и нажмите кнопку ОК. Заходим «Конфигурация компьютера- Политики- Административные шаблоны- Система- Служба времени Windows- Поставщики времени» и настраиваем политику. В данном примере в значении NTPServer прописываем time.windows.com, в значении Тип указываем NTP. Тип- указывает узлы одноранговой сети, принимающие синхронизацию следующих типов:
NoSync— Служба времени не синхронизируется с другими источниками.
NTP- Служба времени выполняет синхронизацию с серверами, указанными в записи реестра NtpServer.
NT5DS- Служба времени выполняет синхронизацию на основе иерархии домена.
AllSync- Служба времени использует все доступные механизмы синхронизации.
Значение CrossSiteSyncFlags выбираем 2.
CrossSiteSyncFlags. Определяет возможность выбора службой партнеров по синхронизации за пределами домена компьютера.
Нет 0
PdcOnly 1
Все 2
В значении ResolvePeerBackoffMinutes прописываем 15
ResolvePeerBackoffMinutes- указывает первоначальный интервал ожидания (в минутах) перед тем, как начать поиск узла одноранговой сети для синхронизации. Если службе времени Windows не удается успешно синхронизироваться с источником времени, будут выполняться повторные попытки с использованием указанных значений параметров ResolvePeerBackoffMinutes и ResolvePeerBackoffMaxTimes.
В значении ResolvePeerBackoffMaxTimes прописываем 7
ResolvePeerBackoffMaxTimes- указывает максимальное число раз удвоения интервала ожидания в случае, если повторяющиеся попытки поиска узла одноранговой сети для синхронизации не дали результата. Нулевое значение предполагает, что интервал ожидания всегда равен первоначальному, указанному в параметре ResolvePeerBackoffMinutes.
В значении SpecialPollInterval прописываем 3600
SpecialPollInterval- указывает интервал специального опроса (в секундах) для узлов одноранговой сети, настроенных вручную. Если специальный опрос включен, то служба времени Windows будет использовать его интервал вместо динамического значения, определяемого с помощью алгоритмов синхронизации, встроенных в службу времени Windows.
Если вы создали политику, то ее нужно применить на все контролеры домены.
Изменить сервер времени в Windows 10
Введите «Панель управления» в начальном поиске и нажмите Enter, чтобы открыть панель управления вашего ПК с Windows 10.
Введите «Дата и время» в поле поиска и щелкните результат.
Нажать на ‘Интернет-время ‘ вкладка и нажмите «Изменить настройки’ кнопка.
В раскрывающемся меню выберите, скажем, time.nist.gov в качестве сервера и нажмите ‘Обновить сейчас’ кнопка.
Если вы получите какую-либо ошибку, попробуйте использовать pool.ntp.org в качестве сервера времени, а затем нажмите кнопку «Обновить сейчас».
Убедитесь, что вы установили флажок с надписью: Синхронизация с интернет-сервером времени.
Добавить новые серверы времени в Windows 10
Если вы хотите добавить больше серверов времени в раскрывающийся список, откройте редактор реестра и перейдите по указанному ниже пути:
Это покажет вам список текущих серверов available-time.windows.com
- time-nist.gov
- time-nw.nist.gov
- time-a.nist.gov
- time-b.nist.gov
Если вы хотите добавить серверы времени, вы можете использовать, например, следующее или любое другое по вашему выбору:
Просто выберите сервер, который вы хотите добавить, щелкните правой кнопкой мыши в любом месте справа и выберите «Создать»> «Строковое значение». Введите следующее число и укажите адрес сервера времени в поле «Значение».
После этого вернитесь к Дата и время настройки, выберите свой сервер и нажмите Обновить сейчас кнопка.
Заставить Windows синхронизировать время с помощью CMD
Вы также можете заставить Windows синхронизировать время с помощью W32tm.exe. W32tm.exe — это строка командной строки, используемая для настройки, мониторинга или устранения неполадок службы времени Windows на ПК с Windows 10.
Для этого откройте командную строку с повышенными привилегиями и введите одну за другой следующие команды:
Как запустить ежедневную автоматическую синхронизацию времени Windows 7 с помощью планировщика задач
Если пользователю требуется создать задачу в планировщике задач, для включения ежедневной синхронизации времени по интернету, то ему нужно:
- Включить как было описано выше еженедельную синхронизацию по интернету.
- Открыть «Планировщик заданий». Для этого нужно нажать «Пуск» → «Все программы» → «Стандартные» → «Служебные», в затем его ярлычок.
- Потом последовательно развернуть в его левой части «Библиотеку планировщика заданий» → «Microsoft» → «Windows» → «Time Synchronization».
- После чего требуется нажать кнопку в правой части планировщика «Создать задачу» и дать ей название. При этом нужно поставить галочку рядом с опцией «Выполнить с наивысшими правами», чтобы повысить ее приоритет.
- Далее в разделе «Действия» нужно нажать «Создать» и выбрать там «Запустить программу», после чего с помощью кнопки «Обзор» выбрать программу по следующему пути C:WindowsSystem32sc.exe с аргументами start w32time task_started. Благодаря этому будет запускаться системная служба времени.
- После чего нужно создать еще одну задачу для запуска программы, расположенной по такому пути C:WindowsSystem32w32tm.exe с аргументом /resync.
- Потом необходимо создать в «Триггерах» график выполнения задачи, так как требуется ежедневно корректировать показания часов, то для этого нужно переставить точку на «Ежедневно».
В конце корректируют остальные настройки, если нужно.
Настройка ежедневной синхронизации с помощью планировщика задач
Рекомендуемый контент
А тут же ж мог быть рекомендуемый контент от гугла 🙂 Для отображения рекомендуемого контента необходимо в браузере разрешить выполнение JavaScript скриптов, включая скрипты с доменов googlesyndication.com и doubleclick.net
Вы не любите рекламу!? Напрасно!:) На нашем сайте она вовсе ненавязчивая, а потому для нашего сайта можете полностью отключить AdBlock (uBlock/uBlock Origin/NoScript) и прочие блокировщики рекламы! AdBlock/uBlock может препятствовать нормальной работе системы поиска по сайту, отображению рекомендуемого контента и прочих сервисов Google. Рекомендуем полностью отключить блокировщик рекламы и скриптов, а также разрешить фреймы (aka iframe).
Давайте кратко рассмотрим код, чтобы увидеть, как он работает. Сначала вы включаете библиотеки для подключения к Wi-Fi и получаете время и создаете NTP-клиента.
Установка SSID и пароля
Введите свои сетевые учетные данные в следующих переменных, чтобы ESP32 мог устанавливать подключение к Интернету и получать дату и время с NTP-сервера.
Подготовка клиента NTP
Следующие две строки определяют клиента NTP для запроса даты и времени с сервера NTP.
Затем инициализируйте строковые переменные, чтобы сохранить дату и время.
В setup() вы инициализируете последовательную связь со скоростью 115200 бод, чтобы распечатать результаты:
Эти следующие строки подключают ESP32 к вашему маршрутизатору.
Затем инициализируйте клиент NTP, чтобы получить дату и время с сервера NTP.
Вы можете использовать метод setTimeOffset (), чтобы настроить время для вашего часового пояса в миллисекундах.
Вот несколько примеров для разных часовых поясов:
- GMT +1 = 3600GMT +8 = 28800GMT -1 = -3600GMT 0 = 0
Следующие строки гарантируют, что мы получим правильную дату и время:
Примечание: иногда NTP-клиент извлекает 1970-е годы. Чтобы этого не произошло, нам нужно принудительно установить обновление.
Получение даты и времени
Преобразуйте дату и время в читаемый формат с помощью метода getFormattedDate():
Дата и время возвращаются в следующем формате:
Если вы хотите получить дату и время отдельно, вам нужно разделить эту строку. Буква «Т» отделяет дату от времени, поэтому мы можем легко разделить эту строку. Вот что мы делаем в следующих строках.
Дата сохраняется в переменной dayStamp, а время — в переменной timeStamp. Время запрашивается и печатается каждую секунду.
Настройка времени
Как установить и изменить время в Windows
Способ 1
Пожалуй, наиболее очевидный и простой способ сделать это (в любой версии Windows) — щелкнуть правой кнопкой мышки (ПКМ) по отображаемому времени в правом нижнем углу экрана (👇), и в появившемся меню выбрать «Настройка даты и времени» .
Windows 11 — настроить дату и время
Настройка даты и времени (Windows 10)
После снять ползунки с автоматического определения времени и часового пояса и задать их вручную (особенно это полезно в том случае, если компьютер постоянно не подключен к интернету).
Текущая дата и время — Windows 10
Способ 2
Это универсальный способ! Сначала необходимо нажать на сочетание Win+R (появится окно «Выполнить») и использовать команду timedate.cpl . См. пример ниже. 👇
timedate.cpl — настройка времени
Должно открыться окно настроек даты и времени — кликните по кнопке «Изменить. « . После обновите необходимые вам данные.
Изменить дату и время
Способ 3
Если в Windows время изменить не получается (или она еще и не установлена даже 😉) — это можно сделать и через настройки BIOS (UEFI).
👉 В помощь!
Как войти в BIOS (UEFI) на компьютере или ноутбуке [инструкция]
Как правило достаточно на основном (на первом) экране UEFI кликнуть по значку времени и установить то значение, которое вам нужно (я обычно раньше всегда ставил на +10 мин., чтобы никуда не опаздывать 👌).
BIOS (UEFI) — изменение времени
Теперь время будет спешить на 10 мин.
Как настроить синхронизацию (или отключить ее вовсе)
И так, для начала нужно использовать сочетание Win+R , и в окно «Выполнить» ввести команду timedate.cpl , нажать Enter.
Далее проверить свой часовой пояс (и уточнить его, если он установлен некорректно).
Изменить часовой пояс
Далее перейти во вкладку «Время по Интернету» и открыть окно изменения настроек.
Время по интернету — изменить
Далее установить галочку «Синхронизировать с сервером времени в Интернете» , указать сервер и нажать OK (разумеется, если синхронизация у вас работает некорректно — лучше тогда снять эту галочку. 👌).
Есть еще один универсальный способ отключить синхронизацию
Для этого необходимо открыть службы (сочетание Win+R , и команда services.msc (👇)).
Открываем службы — services.msc (универсальный способ)
В списке служб нужно найти «Службу времени Windows» и открыть ее.
Служба времени Windows
После перевести ее тип запуска в режим «отключена» и остановить ее работу. После этого синхронизация времени выполняться на ПК не будет! 👌
Как изменить отображение: только часы и минуты, или дни недели с датой
В Windows можно немного по-разному представить отображение времени: с датой, с днями недели и пр. (см. скрин ниже, я спец. сделал 3 разных варианта).
Кстати, рекомендации ниже актуальны для ОС Windows 10/11.
Как отображать время в трее
Для настройки отображения:
- сначала необходимо нажать Win+R (для вызова «выполнить») , и воспользоваться командой intl.cpl ;
intl.cpl — настройка даты, времени (часового пояса)
Как изменить отображение даты (времени)
Да, кстати, чтобы в Windows 10 (11*) отображалось не только время (но и дни недели, дата) — необходимо зайти в параметры ОС (Win+i) и в разделе «Персонализация / Панель задач» отключить использование маленьких кнопок на панели задач (эта штука на некоторых ноутбуках вкл. автоматически). 👇
Использовать маленькие кнопки панели задач
Что делать, если время сбрасывается (слетает)
Причина 1
Наиболее частая причина сброса времени — это севшая батарейка на материнской плате компьютера (в среднем одна добротная батарейка живет ∼5-7 лет). Что характерно при этом: время слетает после отключения/перезагрузки ПК (в процессе работы — должно быть всё нормально. ).
Как выглядит батарейка на мат. плате
Приобрести новую батарейку можно практически в любом компьютерном магазине (и даже заказать в Китае 👇).
Причина 2
Неправильно установленный часовой пояс . Из-за этого Windows при любых обновлениях устанавливает автоматически некорректное время.
Если авто-режим неправильно определяет ваш пояс — задайте его вручную (для Windows 10: сочетание клавиш Win+i —> Время и язык —> Дата и время —> Часовой пояс 👇).
Часовой пояс — Windows 10
Windows 11 — время и язык — дата и время
👉 Еще один вариант : сочетание Win+R — > команда timedate.cpl
Изменить часовой пояс
Причина 3
Дело также может быть в некорректной работе синхронизации (например, из-за каких-то системных сбоев ОС, или неправильно-установленного часового пояса, или, например, из-за использования устаревшей версии Windows (от народных «умельцев»)).
Чтобы исправить подобную проблему : уточните часовой пояс и измените сервер для обновления. Если не поможет — отключите синхронизацию и установите время вручную (как это сделать — см. чуть выше в статье 👆).
Подмена адреса time.windows.com локальным NTP на DNS-сервере
В крупных, постоянно меняющихся и развивающихся сетях установка адреса локального ntp-сервера на всех машинах, не подключенных к Active Directory, может представлять определенную проблему. В данном случае можно воспользоваться возможностями DNS-сервера BIND и подменить выдаваемый по запросу «time.windows.com» ip-адрес на принадлежащий локальному серверу NTP [21] .
На DNS сервере (на примере SLES 10) создадим интересующую нас зону следующего содержания:
/var/lib/named/master/time.windows.com
где 192.0.2.30 — ip-адрес локального ntp-сервера
В конфигурационный файл /etc/named.conf добавляем строки:
где acls — используемые в локальной сети ACL’и
Если все правильно, то в логе /var/log/messages появится подобная строчка:
Проверяем результат на клиентской машине, предварительно сбросив кэш dns (How do I Flush DNS?):