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

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

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

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

1.1. Формат командной строки:

C:\ w32tm [/? | /register | /unregister ]

1.2. Параметры.

  • ? — вывод справочной информации по использованию команды.
  • register — установка службы времени Windows и добавление ее стандартной конфигурации в реестр.
  • unregister — удаление службы времени Windows и всех параметров конфигурации из реестра.

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

HKLM\System\CurrentControlSet\Services\w32time

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

C:\ w32tm /config /update

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

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

2.1. Формат командной строки:

C:\ w32tm /monitor [/domain:<имя_домена>] [/computers:<имя>[,<имя>[,<имя>...]]] [/threads:<число>] [/ipprotocol:<4|6>] [/nowarn]

2.2. Параметры:

  • domain — указывает наблюдаемый домен. Если имя домена не задано, или не заданы ни домен, ни компьютеры, используется текущее имя домена по умолчанию. Этот параметр может использоваться несколько раз.
  • computers — наблюдение за перечисленными в списке компьютерами. Имена компьютеров разделяются запятыми, без пробелов. Если имя имеет префикс ‘*’, оно считается именем эмулятора первичного контроллера домена в Active Directory (AD PDC). Этот параметр может использоваться несколько раз.
  • threads — количество одновременно наблюдаемых компьютеров. Стандартное значение по умолчанию — 3. Допустимый диапазон — от 1 до 50.
  • ipprotocol — версия IP-протокола (4 или 6), которая будет использоваться для наблюдения. По умолчанию будет использоваться протокол IP любой доступной версии.
  • nowarn — не отображать сообщения с предупреждениями.

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

3.1. Формат командной строки:

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

C:\ w32tm /ntte время_NT

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

C:\ w32tm /ntpte время NTP

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

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

C:\ w32tm /resync [/computer:<компьютер>] [/nowait] [/rediscover] [/soft]

4.1.2. Параметры:

  • computer:компьютер — компьютер, который должен выполнить повторную синхронизацию. Если параметр не указан, выполняется повторная синхронизация локального компьютера.
  • nowait — не ожидать завершения повторной синхронизации, выполнять возврат немедленно. В противном случае ожидать завершения повторной синхронизации перед возвратом.
  • rediscover — повторно определить конфигурацию сети и повторно обнаружить сетевые источники, а затем повторно синхронизировать.
  • soft — повторно синхронизировать, используя существующую статистику ошибок. Данный параметр в современных ОС не используется и предоставлен для обеспечения совместимости.

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

4.2.1. Выводим диаграмму различий между этим и другим компьютером:

C:\ w32tm /stripchart /computer:компьютер [/period:обновление] [/dataonly] [/samples:число] [/packetinfo] [/ipprotocol:<4|6>]

4.2.2. Параметры:

  • computer:компьютер — компьютер, с которым выполняется сравнение.
  • period:обновление — интервал между измерениями (в секундах). Значение по умолчанию — 2 с.
  • dataonly — отображать только данные, без диаграмм.
  • samples:число — собрать число показаний, затем остановиться. Если не указано, сбор данных продолжается, пока не будут нажаты клавиши CTRL+C или CTRL+Break.
  • packetinfo — напечатать ответное сообщение NTP-пакета. ipprotocol — задать версию протокола IP, который нужно использовать. По умолчанию применяется любой доступный протокол.

4.3.1. Настраиваем конфигурацию указанного компьютера:

C:\ w32tm /config [/computer:компьютер] [/update] [/manualpeerlist:узлы] /syncfromflags:источник] [/LocalClockDispersion:секунды] [/reliable:(YES|NO)] [/largephaseoffset:миллисекунды]

4.3.2. Параметры:

  • computer:компьютер — настраивает конфигурацию указанного компьютера. Если параметр не задан, по умолчанию используется локальный компьютер.
  • update — уведомляет службу времени, что конфигурация изменилась, чтобы изменения вступили в силу.
  • manualpeerlist:узлы — задает вручную список DNS-имен и (или) IP-адресов, разделенных пробелами. При указании нескольких узлов этот параметр должен быть заключен в кавычки.
    • syncfromflags:источник — определяет, с какими источниками должен синхронизироваться NTP-клиент. источник должен быть списком из следующих ключевых слов, разделенных запятыми (без учета регистра):
    • MANUAL — синхронизация с узлами из заданного вручную списка.
    • DOMHIER — синхронизация с контроллером домена Active Directory в доменной иерархии.
    • NO — без синхронизации.
    • ALL — синхронизация как с узлами, заданными вручную, так и с узлами домена.
  • LocalClockDispersion:секунды — настраивает точность внутренних часов, с которой служба w32time будет работать, если не сможет получить время из своих настроенных источников.
  • reliable:(YES|NO) — определяет, является ли этот компьютер надежным источником времени. Этот параметр имеет значение только для контроллеров домена.
    • YES — этот компьютер является надежной службой времени.
    • NO — этот компьютер не является надежной службой времени.
  • largephaseoffset:миллисекунды — устанавливает разницу между локальным и сетевым временем, которую служба w32time будет считать максимальной.

4.4. Отображает текущие параметры часового пояса:

C:\ w32tm /tz

4.5.1. Отображает значения, связанные с данным разделом реестра:

C:\ w32tm /dumpreg [/subkey:раздел] [/computer:компьютер]

Раздел по умолчанию (корневой раздел службы времени):

HKLM\System\CurrentControlSet\Services\W32Time

4.5.2. Параметры:

  • subkey:раздел — отображает значения, связанные с подразделом раздел раздела по умолчанию.
  • computer:компьютер — запрашивает параметры реестра для компьютера компьютер.

4.6.1. Отображает сведения о службе времени Windows на компьютере компьютер:

C:\ w32tm /query [/computer:компьютер] {/source | /configuration | /peers | /status} [/verbose]

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

4.6.2. Параметры:

  • source — отобразить источник времени.
  • configuration — отобразить конфигурацию во время выполнения и происхождение параметра. В режиме подробного протоколирования отобразить также незаданные или неиспользованные параметры.
  • peers — отобразить список узлов и их состояние.
  • status — отобразить состояние службы времени Windows.
  • verbose — установить режим подробного протоколирования для вывода дополнительных сведений.

4.7.1. Включает или отключает частный журнал службы времени Windows на локальном компьютере:

C:\ w32tm /debug {/disable | {/enable /file:имя /size:байт /entries:значение [/truncate]}} - 

4.7.2. Параметры:

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

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

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

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

C:\ sc query w32time

5.2. Отобразить состояние службы времени на компьютере с адресом 192.168.0.8:

C:\ sc \\192.168.0.8 query w32time 

5.3. Запустить службу времени Windows:

C:\ sc start w32time

5.4. Запустить службу времени Windows на компьютере с адресом 192.168.0.8:

C:\ sc \\192.168.0.8 start w32time

5.5. Остановить службу времени Windows:

C:\ sc stop w32time

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

C:\ net stop w32time
C:\ net start w32time

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

5.6. Отобразить подсказку по использованию:

C:\ w32tm /?

5.7. Отобразить конфигурацию службы времени Windows на локальном компьютере:

C:\ w32tm /query /configuration

5.8. Отобразить конфигурацию службы времени на компьютере с именем WIN10:

C:\ w32tm /query /configuration /computer:\\WIN10

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

[Настройка]
EventLogFlags: 2 (Локально)
AnnounceFlags: 10 (Локально)
TimeJumpAuditOffset: 28800 (Локально)
MinPollInterval: 10 (Локально)
MaxPollInterval: 15 (Локально)
MaxNegPhaseCorrection: 54000 (Локально)
MaxPosPhaseCorrection: 54000 (Локально)
MaxAllowedPhaseOffset: 1 (Локально)
FrequencyCorrectRate: 4 (Локально)
PollAdjustFactor: 5 (Локально)
LargePhaseOffset: 50000000 (Локально)
SpikeWatchPeriod: 900 (Локально)
LocalClockDispersion: 10 (Локально)
HoldPeriod: 5 (Локально)
PhaseCorrectRate: 1 (Локально
) UpdateInterval: 360000 (Локально)
FileLogName: C:\User1\w32tmlog.log (Локально)
FileLogEntries: 0-300 (Локально)
FileLogSize: 100000 (Локально)

[TimeProviders]
NtpClient (Локально)
DllName: C:\WINDOWS\SYSTEM32\w32time.DLL (Локально)
Enabled: 1 (Локально)
InputProvider: 1 (Локально)
AllowNonstandardModeCombinations: 1 (Локально)
ResolvePeerBackoffMinutes: 15 (Локально)
ResolvePeerBackoffMaxTimes: 7 (Локально)
CompatibilityFlags: 2147483648 (Локально)
EventLogFlags: 1 (Локально)
LargeSampleSkew: 3 (Локально)
SpecialPollInterval: 604800 (Локально
) Type: NTP (Локально)
NtpServer: time.windows.com,0x9 (Локально)
VMICTimeProvider (Локально)
DllName: C:\WINDOWS\System32\vmictimeprovider.dll (Локально)
Enabled: 1 (Локально)
InputProvider: 1 (Локально)
NtpServer (Локально)
DllName: C:\WINDOWS\SYSTEM32\w32time.DLL (Локально)
Enabled: 0 (Локально)
InputProvider: 0 (Локально)

В секции Настройка приведены текущие параметры службы времени 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 в реестре системы, синхронизация времени будет выполняться независимо от текущих показаний часов компьютера.

5.10. Отобразить разницу во времени данного компьютера и сервера времени ru.pool.ntp.org:

C:\ w32tm /monitor /computers:ru.pool.ntp.org

5.11. Отобразить разницу во времени данного компьютера и нескольких серверов времени:

C:\ w32tm /monitor /computers:ru.pool.ntp.org,time.windows.com,time.nist.gov

5.12. Синхронизировать часы локального компьютера с используемым им сервером времени:

C:\ w32tm /resync

5.13. Синхронизировать часы локального компьютера с используемым им сервером времени, игнорируя максимальное и минимальное отклонение показаний аппаратных часов и источника:

C:\ w32tm /resync /force

5.14. Сравнить показания часов локального компьютера с показаниями сервера времени pool.ntp.org:

C:\ w32tm /stripchart /computer:pool.ntp.org /samples:3 /dataonly

Будет выполнено 3 запроса и результаты будут представлены в текстовом виде.

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

Отслеживание pool.ntp.org [77.232.189.6:123].

Сбор образцов 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: — задержка ответа, интервал времени между отправкой запроса и получением ответа от сервера NTP.
  • o: — смещение локальных часов относительно показаний сервера NTP (если положительное значение – часы отстают, отрицательное – спешат).

5.15. То же, что и в предыдущем примере, но проверка выполняется непрерывно, до тех пор пока не будет нажата комбинация клавиш CTRL+C или CTRL+Break:

C:\ w32tm /stripchart /computer:pool.ntp.org

5.16. Изменить конфигурацию службы времени, для использования сервера NTP ru.pool.ntp.org и применить сделанные изменения:

C:\ w32tm /config /syncfromflags:manual /manualpeerlist:ru.pool.ntp.org /update

5.17. Отобразить текущую конфигурацию службы времени Windows на локальном компьютере:

C:\ w32tm /query /configuration

5.18. Отобразить текущую конфигурацию службы времени Windows на компьютере WIN10:

C:\ w32tm /query /configuration /computer:win10

5.19. Отобразить сведения об источнике времени на локальном компьютере:

C:\ w32tm /query /source

5.20. Отобразить сведения об источнике времени на компьютере win10:

C:\ w32tm /query /source /computer:win10

5.21. Удалить службу времени Windows из системы:

C:\ w32tm /unregister

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

5.22. Установить службу времени Windows на данном компьютере:

w32tm /register

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

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\w32time\Config]
"MaxNegPhaseCorrection"=dword:ffffffff
"MaxPosPhaseCorrection"=dword:ffffffff