Windows и время: настройка службы W32Time.

  • Михаил
  • 12 мин. на прочтение
  • 110
  • 11 Dec 2012
  • 11 Dec 2012

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

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

w32tm /query /configuration

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

w32tm /query /status

 

Чтобы понять, что это нам там Windows  выводит на экран, нужно разобраться как Windows работает со временем. Служба времени зависит от того является ли компьютер частью централизовано администрируемого домена или нет.

Возможные две ситуации:

  • компьютер (сервер) входит в состав рабочей группы, т.е. это домашний компьютер или компьютер в небольшом офисе;
  • компьютер (сервер) входит в состав домена Active Directory.

Компьютер входит в состав рабочей группы.

В этом случае централизованного управления компьютером нет, он сам заботиться о синхронизации времени. На нем вывод команды
 w32tm /query /configuration будет следующим.

Обратите внимание на параметры:
 SpecialPollInterval — интервал синхронизации в секундах, 604800 секунд — это неделя, т.е. синхронизация будет проводиться раз в неделю.
 Type — определяет источник синхронизации времени. Возможные значения параметра Type:
           NoSync. Служба времени вообще не синхронизируется ни с чем.
           NTP. Служба времени синхронизируется с серверами указанными в параметре NtpServer. Типично для домашних компьютеров. Как на скриншоте вверху.
           NT5DS. Служба времени синхронизируется используя доменную иерархию (только для компьютеров — членов домена Active Directory). Как на самом первом скриншоте.
           AllSync. Служба времени использует все возможные механизмы для синхронизации.
 NtpServer — указывает серверы, с которым может синхронизировать время компьютер.

Как можно видеть, по умолчанию интервал синхронизации 1 неделя, сервер time.windows.com, значение Type NTP.

Компьютер входит в состав домена Active Directory.

Домен AD —  иерархичная централизованная структура. Время на всех компьютерах в домене синхронизируется с контроллерами домена, а те в свою очередь синхронизируются с одним контроллером,  выполняющим FSMO роль PDC-Emulator. Синхронизация времени происходит раз в 1 час.

Как узнать какой контроллер — PDC-Emulator? Простейший способ — это выполнить команду из командной строки:

netdom /query fsmo

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

Делается это из командной строки с административными правами следующим образом (один из способов):

Останавливаем службу времени W32Time:  

C:\>net stop w32time

Конфигурируем внешние источники синхронизации:

 C:\> w32tm /config /syncfromflags:manual /manualpeerlist:”0.ru.pool.ntp.org, 1.ru.pool.ntp.org, 2.ru.pool.ntp.org”

Делаем PDC-Emulator надежным источником для клиентов:

C:\>w32tm /config /reliable:yes

Запускаем службу времени w32time : 

C:\>net start w32time

Служба должна начать синхронизироваться. Можно проверить как применились настройки уже знакомой командой: 

C:\>w32tm /query /configuration

Проверяем Event Viewer на наличие ошибок, относящихся к службе времени.

На остальных компьютерах домена вывод команды 

C:\>w32tm /query /configuration 

будет следующим:

Если вы по какой-то причине поменяли конфигурацию службы времени на доменном компьютере, то чтобы вернуть настройки по умолчанию выполните команду:

 w32tm /config /syncfromflags:domhier  /update

Иногда при переносе роли PDC-Emulator на другой контроллер домена, старый продолжает считает считать себя сервером времени для всего домена, что может стать причиной ошибок в Системном логе, например таких:
«The time provider NtpClient was unable to find a domain controller to use as a time source. NtpClient will try again in 15 minutes.»
и других веселых глюков. «Успокоить» его можно такой-же командой с небольшим дополнением:

w32tm /config /syncfromflags:domhier /reliable:no /update

Несколько комментариев:

  • В примере настройки контроллера домена мы останавливали службу времени, меняли настройки, потом запускали опять. Можно этого не делать, а использовать ключ /update, который принуждает службу времени считать конфигурацию заново.
  • Для работы протокола NTP необходимо открыть порт UDP 123 на вход и на выход, на файерволе сервера и внешнем файерволе.
  • Существует еще одна старая команда конфигурации времени net time, оставленная для совместимости, с меньшим количеством опций, которую все еще можно использовать.