Утилита командной строки 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