Как синхронизировать время Windows с сервера времени ntp в команде

Regionally independent date time parsing

The output format of %DATE%
and of the dir
command is regionally dependent and thus neither robust nor smart. date.exe
(part of UnxUtils
) delivers any date and time information in any thinkable format. You may also extract the date/time information from any file with date.exe
.

Examples: (in a cmd-script use %% instead of %)

date.exe +"%Y%m%d %H%M%S: Any text"

20091222 185503: Any text

date.exe +"Text: %y/%m/%d-any text-%H.%M"

Text: 09/12/22-any text-18.55

Command: date.exe +"%m-%d """%H %M %S """"

07-22 “18:55:03″`

The date/time information from a reference file:

date.exe -r c:\file.txt +"The timestamp of file.txt is: %Y-%m-%d %H:%M:%S"

Using it in a CMD script to get year, month, day, time information:

   for /f "tokens=1,2,3,4,5,6* delims=," %%i in ('C:\Tools\etc\date.exe +"%%y,%%m,%%d,%%H,%%M,%%S"') do set yy=%%i& set mo=%%j& set dd=%%k& set hh=%%l& set mm=%%m& set ss=%%n
  
  

Using it in a CMD script to get a timestamp in any required format:

   for /f "tokens=*" %%i in ('C:\Tools\etc\date.exe +"%%y-%%m-%%d %%H:%%M:%%S"') do set timestamp=%%i
  
  

Extracting the date/time information from any reference file.

   for /f "tokens=1,2,3,4,5,6* delims=," %%i in ('C:\Tools\etc\date.exe -r file.txt +"%%y,%%m,%%d,%%H,%%M,%%S"') do set yy=%%i& set mo=%%j& set dd=%%k& set hh=%%l& set mm=%%m& set ss=%%n
  
  

Adding to a file its date/time information:

   for /f "tokens=*" %%i in ('C:\Tools\etc\date.exe -r file.txt +"%%y-%%m-%%d.%%H%%M%%S"') do ren file.txt file.%%i.txt
  
  

date.exe is part of the free GNU tools
which need no installation.

NOTE: Copying date.exe
into any directory which is in the search path may cause other scripts to fail that use the Windows built-in date
command.

В Windows есть отличное средство управления синхронизацией времени — w32tm
. Управление которым осуществляется как через cmd, так и через реестр и даже групповые политики в домене Windows.

В этой статье — мы рассмотрим только первый вариант.

Основные команды конфигурации w32tm

  • w32tm /register
    — Регистрация и включение службы со стандартными параметрами.
  • w32tm /unregister
    — Отключение службы и удаление параметров конфигурации.
  • w32tm /monitor
    — Просмотр информации по домену.
  • w32tm /resync
    — Команда принудительной синхронизации с заданным в конфигурации источником.
  • w32tm /config /update
     — Применить и сохранить конфигурацию.
  • w32tm /config /syncfromflags:domhier /update
     – Задаем настройку синхронизации с контроллером домена.
  • w32tm /config /syncfromflags:manual /manualpeerlist:time.windows.com
     – задать конкретные источники синхронизации времени по протоколу NTP.

Просмотр параметров (/query)

  • w32tm /query /computer:<target>
     — Информация о стутусе синхронизации определенной станции (если имя не указано — используется локальный компьютер).
  • w32tm /query /Source
     – Показать источник времени.
  • w32tm /query /Configuration
     — Вывод всех настроек службы времени Windows.
  • w32tm /query /Peers
     – Показать источники времени и их состояние.
  • w32tm /query /Status
     – Статус службы времени.
  • w32tm /query /Verbose
     – Подробный вывод всей информации о работе службы.

Синхронизация через Net time

Так же можно воспользоватся вспомогательной службой net time для синхронизации времени.

  • net time /setsntp:time.itmake.org
     — Задаем источник синхронизации.
  • net time /querysntp
     — просмотр информации о заданном источнике времени.
  • net time \\server.lan.local /set /y
     – Принудительная синхронизация с указанного источника.


I am working on windows 7. I can sync time of win7 from a ntp linux server manually. How can I do that in command prompt. So I can run it on windows startup. And windows task plan not work for me. The time should be like this:

   Linux server -->  windows 7.
  
  

Any one knows that? Thank you. I can read msdn.

спросил 4 апр 2014 в 12:00

Nick Dong's user avatar

Использовать чистое время
net time \\timesrv /set /yes

после вашего комментария попробуйте это в расширенной подсказке:

 w32tm /config /update /manualpeerlist:yourtimerserver

  

ответил 4 апр 2014 в 12:12

Loïc MICHEL's user avatar

Лоик МИШЕЛЬ

9 золотых значков
74 серебряных знака
102 бронзовых знака

Если вам просто нужно resync
время Windows, откройте командную строку с повышенными привилегиями
и введите:

 w32tm /resync

  

 C:\WINDOWS\system32>w32tm /resync 
Sending resync command to local computer 
The command completed successfully.

  

ответил 2 декабря 2016 в 0:18

Pedro Lobito's user avatar

Педро Лобито

31 золотой значок
258 серебряных значков
267 бронзовых знаков

В то время как w32tm /resync
теоретически работает, но только при определенных условиях. Однако, когда имеет значение «с точностью до миллисекунды», я обнаружил, что Windows на самом деле не будет вносить коррективы; как бы «о, я ошибся на 2,5 секунды, достаточно близко, братан, здесь нечего смотреть или делать».

Чтобы действительно принудительно выполнить повторную синхронизацию (Windows 7):

  1. Панель управления -> Дата и время
  2. «Изменить дату и время». (требуются права администратора)
  3. Добавить или вычесть несколько минут (я использовал -5 минут)
  4. Запустите «cmd.exe» от имени администратора
  5. w32tm /resync
  6. Визуально проверьте, чтобы секунды на панели управления «Дата и время» отсчитывали время, соответствующее вашим официальным часам. (Я использовал watch -n 0.1 date
    на компьютере с Linux в сети, к которой я подключился по SSH)

— Экспресс-метод —

  1. Запустите «cmd.exe» от имени администратора
  2. net start w32time
    (Должна быть запущена Служба времени)
  3. time 8
    (где 8 может быть заменено любым значением часа, предположительно 0-23)
  4. w32tm /resync
  5. При необходимости перейдите к 3.

ответил 3 июня 2018 в 18:18

starlocke's user avatar

2 золотых значка
25 серебряных значков
37 бронзовых знаков

:/>  Папка Temp в Windows » Страница 2

Я вытащил это из архива электронной почты моего друга MCSE с 2009 года, так что информация должна быть довольно близкой, но, возможно, изменилась. С тех пор я довольно сильно поменял роли:

Каждый эмулятор Windows PDC является сервером времени домена. Если все домены находятся в одном лесу, вам просто нужно синхронизировать PFC корневых доменов с атомарным внешним источником времени. Если домены находятся в разных лесах (например, домен dmz), каждый эмулятор PDC должен быть настроен на просмотр одного и того же набора внешних атомных часов. навскидку, я использую эти два в своем пуле из 5 или около того.

 net time /setsntp time-a.nist.gov time-b.nist.gov

  

Вам необходимо убедиться, что порт udp 123 разрешен для исходящего трафика от PDC.
на всех других серверах и рабочих станциях должна быть запущена служба времени Windows.

вам нужно сбросить его, чтобы использовать доменное время. Запустите то же, что и выше, без источника времени:

 net time /setsntp

  

Бесценным инструментом для проверки времени в домене является w32tm. Беги

 W32tm /monitor 

  

Если мне не изменяет память, Windows 2012 (?) и выше изменили название службы с W32tm на W32time, поэтому ваш пробег может отличаться.

Наконец, если вы используете VMWare esx, вам необходимо убедиться, что все хост-серверы esx настроены на синхронизацию с теми же внешними серверами времени, что и ваши окна, используя их файл NTP.conf. Убедитесь, что на всех виртуальных машинах установлены новейшие инструменты виртуальных машин, и настройте инструменты для синхронизации своего времени с хостом esx. Я полагаю, что вы также останавливаете службу времени Windows, чтобы они не конкурировали, но мне нужно проверить. Это верно для всех виртуальных машин, кроме эмулятора pdc, если он работает на виртуальной машине. Он не будет синхронизироваться с хостом esx и должен быть настроен точно так, как указано выше. Удачи.

Продолжаем.
Во-первых, я бы спросил себя.

Есть ли у меня PDC (первичный контроллер домена)?

Или я просто имею дело с кучей автономных рабочих станций в одноранговой сети?

Вы ничего не сказали о своей топологии или сети.

Если у вас есть сервер NTP, ваши клиенты будут подключаться к нему.
Как сказал мой хороший друг, вам нужно будет использовать ретранслятор NTP, к которому подключаются ваши клиенты.

 net time /setsntp time-a.nist.gov time-b.nist.gov

  

теперь, переходя к вашим клиентам и другим рядовым серверам, вы должны сделать то же самое, за исключением того, что серверы времени не указаны, например.

   net time /setsntp
  
  

as your LAN clients and other member servers will set/synchronize with the PDC several times a day.

   @echo off
net time /setsntp time-a.nist.gov time-b.nist.gov
w32tm /query /peers 
net stop w32time
net start w32time
w32tm /resync /nowait
EOF
  
  

And then your workstations and other servers (again, you may also do well to add some SLEEP or PAUSE commands to your Batch File):

   @echo off
net time /setsntp
w32tm /query /peers 
net stop w32time
net start w32time
w32tm /resync /nowait
EOF
  
  

I don’t know how else to explain this to you as he offered how to do this in bite-sized chunks.

Hope this helps.

Утилита командной строки w32tm.exe
предназначена для удаления или установки службы времени Windows W32Time
и управления ею на локальном или удаленном компьютере. Служба времени Windows ( W32Time
) предназначена для синхронизации даты и времени на компьютерах в локальной или глобальной сети. Если служба времени не установлена или отключена, синхронизация времени невозможна.

Служба W32Time
обеспечивает функционирование как клиентской, так и серверной части программного обеспечения системы и один и тот же компьютер может быть одновременно и клиентом и сервером NTP
(NTP – Network Time Protocol). Протокол NTP использует порт 123/UDP, что нужно учитывать при настройке брандмауэра системы.

Алгоритм функционирования службы времени немного отличается в зависимости от того, является ли компьютер членом домена, или нет. Компьютеры, не входящие в домен используют синхронизацию часов с внешним источником, а входящие – с внутренним NTP-сервером, которым является контроллер домена с ролью PDC-эмулятора (эмулятора первичного контроллера домена). При этом, сам сервер NTP синхронизируется с внешним источником времени. Схема с контроллером домена реализуется при развертывании домена Active Directory и не требует какого-либо ручного вмешательства, более того, такое вмешательство чревато непредвиденными проблемами с функционированием всей инфраструктуры. Для компьютеров же, не входящих в домен, некоторые изменения настроек очень даже не помешают. В частности, во всех актуальных версиях Windows (Windows 7 и старше), предусмотрено выполнение планировщиком заданий стандартной задачи синхронизации времени с внешним источником SynchronizeTime
, которая настроена далеко не самым оптимальным образом. Кроме того, некоторые параметры самой службы времени, установленные по умолчанию, не обеспечивают надежную автоматическую синхронизацию часов системы с внешним сервером в Интернет.

Параметры командной строки для установки (удаления) службы времени:

?
– вывод справочной информации по использованию команды.

register
– установка службы времени Windows и добавление ее стандартной
конфигурации в реестр.

unregister
– удаление службы времени Windows и всех параметров конфигурации из реестра.

Параметры службы времени хранятся в ключе реестра

HKLM\System\ CurrentControlSet\ Services\ w32time

Соответственно, параметры службы времени можно менять не только с помощью команды w32tm
, но и правкой реестра. В этом случае, применение измененных параметров обеспечивается командой обновления конфигурации

:/>  Windows 8 беспроводная сеть откл

w32tm /config /update

или перезапуском службы W32Time.

Параметры командной строки для мониторинга службы времени:

domain
– указывает наблюдаемый домен. Если имя домена не задано,
или не заданы ни домен, ни компьютеры, используется текущее имя домена по умолчанию. Этот параметр может использоваться несколько раз.

computers
– наблюдение за перечисленными в списке компьютерами.
Имена компьютеров разделяются запятыми, без пробелов. Если имя имеет префикс ‘*’, оно считается именем эмулятора первичного контроллера домена в Active Directory (AD PDC). Этот параметр может использоваться несколько раз.

threads
– количество одновременно наблюдаемых компьютеров. Стандартное
значение по умолчанию – 3. Допустимый диапазон – от 1 до 50.

ipprotocol
– версия IP-протокола (4 или 6), которая будет использоваться для наблюдения. По умолчанию будет использоваться протокол IP любой доступной версии.

nowarn
– не отображать сообщения с предупреждениями.

Параметры командной строки для временных преобразований:

w32tm /ntte время_NT

– Преобразует системное время NT в интервалах (10^-7) с начиная с 00 часов 1 января 1601 г. в понятный формат.

w32tm /ntpte время NTP
– Преобразует время NTP в интервалах (2^-32) с начиная с 00 часов 1 января 1900 г. в понятный формат.

Параметры для выполнения принудительной синхронизации даты и времени с внешним источником:

Дает компьютеру команду как можно быстрее выполнить повторную синхронизацию своих часов с удалением всей накопившейся статистики ошибок.

computer :компьютер
— компьютер, который должен выполнить повторную
синхронизацию. Если параметр не указан, выполняется повторная синхронизация
локального компьютера.

nowait
— не ожидать завершения повторной синхронизации,
выполнять возврат немедленно. В противном случае ожидать завершения
повторной синхронизации перед возвратом.

rediscover
— повторно определить конфигурацию сети и повторно обнаружить
сетевые источники, а затем повторно синхронизировать.

soft
— повторно синхронизировать, используя существующую статистику ошибок.
Данный параметр в современных ОС не используется и предоставлен для обеспечения совместимости.

В справочной информации отсутствует описание параметра /force
, который предназначен для выполнения синхронизации времени даже если отклонение показаний аппаратных часов и источника превышает установленное отклонение ( по умолчанию – 15 часов).

Выводит диаграмму различий между этим и другим компьютером.
computer: компьютер
— компьютер, с которым выполняется сравнение.

period: обновление
— интервал между измерениями (в секундах). Значение
по умолчанию — 2 с.

dataonly
— отображать только данные, без диаграмм.

samples: число
— собрать число
показаний, затем остановиться.
Если не указано, сбор данных продолжается, пока не будут нажаты
клавиши CTRL+C или CTRL+Break.

packetinfo
— напечатать ответное сообщение NTP-пакета.
ipprotocol
— задать версию протокола IP, который нужно использовать. По умолчанию
применяется любой доступный протокол.

computer: компьютер
— настраивает конфигурацию указанного компьютера. Если параметр не задан, по умолчанию используется локальный компьютер.

update
— уведомляет службу времени, что конфигурация изменилась, чтобы изменения вступили в силу.

syncfromflags: источник
— определяет, с какими источниками должен синхронизироваться NTP-клиент. источник
должен быть списком из следующих ключевых слов, разделенных запятыми (без учета регистра):

  MANUAL
— синхронизация с узлами из заданного вручную списка.

  DOMHIER
— синхронизация с контроллером домена Active Directory в доменной иерархии.

  NO
— без синхронизации.

  ALL
— синхронизация как с узлами, заданными вручную, так и с узлами домена.

LocalClockDispersion: секунды
— настраивает точность внутренних часов, с которой служба w32time будет работать, если не сможет получить время из своих настроенных источников.

  YES
— этот компьютер является надежной службой времени.

  NO
— этот компьютер не является надежной службой времени.

largephaseoffset: миллисекунды
— устанавливает разницу между локальным и сетевым временем, которую служба w32time будет считать максимальной.

w32tm /tz
– Отображает текущие параметры часового пояса.

Раздел по умолчанию: HKLM\System\ CurrentControlSet\ Services\ W32Time
(корневой раздел службы времени).

subkey:раздел
— отображает значения, связанные с подразделом раздел

раздела по умолчанию.

computer:компьютер
— запрашивает параметры реестра для компьютера компьютер
.

Если параметр не указан, по умолчанию используется локальный компьютер.

source
— отобразить источник времени.

configuration
— отобразить конфигурацию во время выполнения и происхождение параметра. В режиме подробного протоколирования отобразить также незаданные или неиспользованные параметры.

peers
— отобразить список узлов и их состояние.

status
— отобразить состояние службы времени Windows.

verbose
— установить режим подробного протоколирования для вывода дополнительных сведений.

disable
— отключить частный журнал.

enable
— включить частный журнал.

file:имя
— указать абсолютное имя файла.

size:байт
— указать максимальный размер для циклического файла журнала.

entries: значение
— список флагов, заданных номером и разделенных запятыми, указывающих тип сведений, которые должны заноситься в журнал. Допустимые номера: 0–300. Кроме одиночных номеров, допустимы диапазоны номеров, например 0–100,103,106. Значение 0–300 используется для занесения в журнал всех сведений.

truncate
— усечь файл, если он существует.

Примеры использования команды w32tm

Как правило, служба времени Windows устанавливается с типом запуска Вручную
и запускается по необходимости. Если служба времени остановлена, то управление ею с помощью команды w32tm
невозможно. Для запуска, останова или проверки состояния службы можно использовать команду sc

sc query w32time
– отобразить состояние службы времени Windows

sc \\192.168.0.8 query w32time
– отобразить состояние службы времени на компьютере с адресом 192.168.0.8

:/>  Программы похожие на punto switcher

sc start w32time
– запустить службу времени Windows.

sc \\192.168.0.8 start w32time
– запустить службу времени Windows на компьютере с адресом 192.168.0.8
.

sc stop w32time
– остановить службу времени Windows.

Кроме утилиты sc.exe
можно использовать оснастку Службы
(services.msc) панели управления или классические команды net stop
и net start

net stop w32time

net start w32time

Для управления службой времени Windows требуются права администратора по отношению к локальной или удаленной системе.

w32tm /?
– отобразить подсказку по использованию.

w32tm /query /configuration
– отобразить конфигурацию службы времени Windows на локальном компьютере.

w32tm /query /configuration /computer: \\WIN10
– отобразить конфигурацию службы времени на компьютере с именем WIN10

Пример отображаемой информации:

В секции Настройка
приведены текущие параметры службы времени Windows, в секции TimeProviders
– настройки программного обеспечения как клиентской, так и серверной части.

Наиболее важные параметры службы времени:

Type
– задает тип синхронизации. Он может принимать следующие значения:

  NoSync
– не использовать синхронизацию с каким либо внешним источником времени.

  NTP
синхронизация с внешними серверами времени, которые указаны в параметре NtpServer

  NT5DS
— синхронизация выполняется согласно доменной иерархии;

  AllSync
– синхронизация с использованием любых доступных источников.

Для компьютера, не входящего в домен, используется тип синхронизации NTP
и NTPServer с именем time.windows.com
. При необходимости можно добавить еще несколько NTP-серверов, введя их DNS имена или IP адреса через пробел. В конце каждого имени можно добавлять 16-ричное число, или флаг (например –
0x1) который определяет режим синхронизации с сервером времени.

Возможные значения режима:

0x1 – SpecialInterval, использование задаваемого интервала опроса;

0x2 – режим UseAsFallbackOnly – синхронизация только при необходимости;

0x4 – SymmetricActive, симметричный активный режим;

0x8 – Client, отправка запроса в клиентском режиме.

Возможно использование комбинаций режимов:

NtpServer: time.windows.com,0x9
– клиентский запрос (0x8) с использованием заданного интервала (0x1) для синхронизации часов с сервером time.windows.com

SpecialPollInterval
– значение в секундах интервала обновления времени. По умолчанию – 604800 секунд, что соответствует 7 суткам. Имеет смысл изменить этот интервал, например, на 1 час (3600) или хотя бы на 1 сутки (86400).

Очень важное значение имеют параметры MaxNegPhaseCorrection
и MaxPosPhaseCorrection
задающие максимальное отрицательное и положительное отклонение показаний часов, при котором может выполняться синхронизация. Значение по умолчанию – 54000
(в секундах), т.е. 15часов, что приводит к тому, что синхронизация времени не выполняется при расхождении показаний часов на величину, превышающую 15 часов. При попытке ресинхронизации времени командой w32tm /resynс
показания часов не изменятся и будет выведено вообщение:


Синхронизация не выполнена, поскольку запрошенное изменение слишком велико.

Поэтому, для надежной синхронизации часов компьютера с сервером времени в Интернет, независимо от их текущих показаний, желательно увеличить абсолютное значение параметров MaxNegPhaseCorrection
и MaxPosPhaseCorrection
, или вообще задать им максимальное значение для типа DWORD – 0xffffffff или 4294967295.

”Параметры

MaxNegPhaseCorrection

MaxPosPhaseCorrection

w32tm /monitor /computers: ru.pool.ntp.org
– отобразить разницу во времени данного компьютера и сервера времени ru.pool.ntp.org
.

w32tm /monitor /computers: ru.pool.ntp.org, time.windows.com, time.nist.gov
– отобразить разницу во времени данного компьютера и нескольких серверов времени.

w32tm /resync
– синхронизировать часы локального компьютера с используемым им сервером времени.

w32tm /resync /force
– синхронизировать часы локального компьютера с используемым им сервером времени, игнорируя максимальное и минимальное отклонение показаний аппаратных часов и источника.

w32tm /stripchart /computer: pool.ntp.org /samples:3 /dataonly
– сравнить показания часов локального компьютера с показаниями сервера времени pool.ntp.org
. Будет выполнено 3 запроса и результаты будут представлены в текстовом виде.

Пример отображаемой информации:


Сбор образцов 3.

Текущее время – 14.02.2017 17:04:02.

17:04:02 d:+00.0154105s o:+00.0201873s

17:04:04 d:+00.0154035s o:+00.0257523s

17:04:06 d:+00.0154118s o:+00.0147256s

d:

o:
– смещение локальных часов относительно показаний сервера NTP (если положительное значение – часы отстают, отрицательное – спешат).

w32tm /stripchart /computer:pool.ntp.org
– то же, что и в предыдущем примере, но проверка выполняется непрерывно, до тех пор пока не будет нажата комбинация клавиш CTRL+C или CTRL+Break

w32tm /config /syncfromflags:manual /manualpeerlist:ru.pool.ntp.org /update
– изменить конфигурацию службы времени, для использования сервера NTP ru.pool.ntp.org
и применить сделанные изменения.

w32tm /query /configuration
– отобразить текущую конфигурацию службы времени Windows на локальном компьютере.

w32tm /query /configuration /computer:win10
– отобразить текущую конфигурацию службы времени Windows на компьютере WIN10
.

w32tm /query /source
– отобразить сведения об источнике времени на локальном компьютере.

w32tm /query /source /computer:win10
– отобразить сведения об источнике времени на компьютере win10
.

w32tm /unregister
— удалить службу времени Windows из системы. Все параметры службы в реестре удаляются. Перед выполнением команды, служба времени должна быть остановлена, в противном случае команда завершится сообщением об ошибке доступа.

w32tm /register
– установить службу времени Windows на данном компьютере. При этом все параметры службы в реестре создаются заново. Для изменения параметров заданных по умолчанию, можно использовать импорт из заранее подготовленного reg-файла, например:


Весь список команд CMD Windows

Оставьте комментарий