У меня есть сервер, который находится в рабочей группе в отдельной сети от остальной части домена. В результате он не может использовать контроллеры домена в качестве источника времени. Сервер - это компьютер с Windows Server 2012 R2.
Я хотел бы убедиться, что сервер настроен на получение своего времени из списка надежных серверов NTP, которые находятся в моей стране, но мне сложно понять, как лучше всего это настроить.
Моя первая мысль заключалась в том, чтобы настроить машину так же, как если бы вы настраивали свой основной контроллер ДОМЕНА в доменной среде, чтобы он получал свое время из одного или нескольких внешних источников времени. Командная строка будет выглядеть примерно так:
w32tm /configure /manualpeerlist:"ntp1.npl.co.uk ntp2.npl.co.uk" /syncfromflags:manual /update
Это устанавливает соответствующие значения реестра в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parameters
ключ.
К сожалению, эта команда не работает, потому что служба Windows Time (AKA w32time) не запущена. Исследование показывает, что на сервере, не присоединенном к домену, для службы времени Windows установлено значение «Вручную (запуск по триггеру)», причем триггером является то, присоединен ли компьютер к домену. Поскольку это не так, служба не запущена.
Поскольку служба не работает, вы можете подумать, что настройка w32time для использования определенных серверов NTP ничего не даст. Однако есть также встроенная запланированная задача с именем SynchronizeTime
находится в Task Scheduler Library\Microsoft\Windows\Time Synchronization\SynchronizeTime
который запускает службу w32time с task_started
аргумент. Кажется, это вызывает запуск службы, синхронизацию и затем немедленную остановку снова. Еще более странно то, что у задачи нет триггеров, но она выполняется периодически. Я не могу найти способ определить, что вызывает выполнение задачи.
Чтобы еще больше усугубить путаницу, есть также параметр, который вы видите в диалоговом окне «Дата и время» на вкладке «Время в Интернете»:
Похоже, этот параметр относится к совершенно другому разделу реестра, который также содержит список серверов NTP. Ключ:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers
Итак, все вышеперечисленное заставило меня задуматься о том, как правильно достичь того, что я хочу делать. Мне также было бы интересно узнать ответы на любой из этих вопросов:
Я настраиваю NTP, как и вы, с w32tm /configure /manualpeerlist:
команда.
Чтобы изменить окна так, чтобы w32time запускался при перезагрузке, выполните следующую команду:
sc triggerinfo w32time delete
Если вы хотите проверить запущенное состояние службы, вы можете сделать это следующим образом:
C:\Windows\system32>sc qtriggerinfo w32time
[SC] QueryServiceConfig2 SUCCESS
SERVICE_NAME: w32time
START SERVICE
DOMAIN JOINED STATUS : <clip> [DOMAIN JOINED]
STOP SERVICE
DOMAIN JOINED STATUS : <clip> [NOT DOMAIN JOINED]
Как вы сами обнаружили, настройка NTP в Windows может быть проблемой. Хотя вы, безусловно, можете заставить его работать, я настоятельно рекомендую вам использовать что-нибудь как NetTime или (если вам нужна настоящая, потрясающая точность NTP) это порт NTP для винды.
В любом случае, что касается несоответствий между w32time и тем, что показывает графический интерфейс, для http://www.timesynctool.com/ мы читаем:
Служба времени Windows в Windows 7 также настроена по умолчанию, чтобы не запускаться автоматически каждый раз при запуске системы - пользовательский интерфейс сообщает, что Windows настроена на автоматическое обновление системного времени, но это не происходит, если пользователь вручную не запускает Windows. Служба времени либо через апплет панели управления службами, либо путем запроса синхронизации вручную. Если пользователь не переконфигурирует службу времени Windows для автоматического запуска, она будет эффективно отключаться каждый раз при перезапуске системы!