2012-05-16 13:22:14 +0000 2012-05-16 13:22:14 +0000
66
66

Как проверить текущую конфигурацию NTP системы?

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

(я работаю с несколькими разными версиями ОС, и экраны конфигурации, как правило, не всегда находятся в одном и том же месте между версиями)

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

  • Конкретно, мне нужно следующее:

  • Показать, настроена ли система на получение времени от NTP сервера.

  • Показать NTP сервер(ы), с которых система получает время.

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

  • Показывать текущее время в системе.

  • Какие команды необходимы для достижения этих результатов?

  • Поиск решения, которое бы было кросс-совместимо с Windows XP, 7, Server 2003 и Server 2008.

Ответы (6)

83
83
83
2012-05-16 14:39:48 +0000

В командной строке, тип

w32tm /query /configuration
w32tm /query /status
Time /T

w32tm /query /configuration дает вам настроенную конфигурацию.

w32tm /query /status дает вам информацию, такую как:

  • stratum
  • прыжковый индикатор
  • точность
  • последняя синхронизация
  • сервер NTP
  • интервал опроса

time /T выводит текущее системное время.

17
17
17
2016-07-11 22:30:57 +0000

Это ответ на ваш последний вопрос:

Откройте командную строку и введите точно:

w32tm /stripchart /computer:NTPServerNameOrIP /dataonly /samples:x (сколько возвратов вы хотите)

Он возвращает время и разницу во времени NTP-сервера. Если возвращается время, ошибка: 0x80072746, то это не ваш NTP сервер.

Пример команды приведен ниже:

8
8
8
2015-03-13 22:33:22 +0000

Я попробовал:

w32tm /query /status

Я получил:

The command /query is unknown.

В другой машине я получил:

The following error occurred: The service has not been started. (0x80070426)

Тогда я попробовал:

reg QUERY [\machine\]HKLM\SYSTEM\CurrentControlSet\Services\W32Time

Я получил:

ERROR: The system was unable to find the specified registry key or value.

Тогда я попробовал:

Тогда я попробовал: На другой машине я получил страницу помощи, где также говорилось:

net time /querysntp

Так что, в основном, сервис не работал. Следуя эти инструкции, я сделал:

This computer is not currently configured to use a specific SNTP server.

Наконец, все вышесказанное сработало. (Примечание: если net start не сработает, см. ниже) Тогда мне просто нужно было настроить ntp… Я сделал это с:

The /QUERYSNTP and /SETSNTP options have been deprecated. Please use w32tm.exe to configure the Windows Time Service.

, следуя инструкциям здесь , но, возможно, это было бы так же просто, как:

w32tm /unregister
w32tm /unregister
w32tm /register
net start w32time

, следуя инструкциям здесь . (10.0.0.5 - мой локальный NTP-сервер). Если вы не используете локальный NTP сервер, вы можете использовать общий:

w32tm /config /manualpeerlist:10.0.0.5 /syncfromflags:manual /reliable:yes /update

Наконец, вам может понадобиться сделать следующее, в чем я не нуждался:

net time /setsntp:10.0.0.5
  • *

ЗАМЕЧАНИЕ: если net start w32time не удается с ошибкой 1290 (Служба запускается с ошибкой, поскольку одна или несколько служб в одном процессе имеют несовместимый тип SID службы), выполните шаги здесь :

w32tm /config /manualpeerlist:pool.ntp.org /syncfromflags:manual /reliable:yes /update

Затем выполните действия, описанные выше.

  • *

ПРИМЕЧАНИЕ 2: если служба NTP не запускается автоматически при перезагрузке, это может быть связано с ее настройками запуска, как описано в здесь : в зависимости от ваших окон, она может быть настроена на запуск только при подключении к домену. Вы можете проверить с:

w32tm /config /update
w32tm /resync /rediscover

Если она настроена на запуск, когда вы присоединяетесь к домену, и на вашей машине не установлен домен, то она не запустит службу и не установит время. Скорее всего, она не присоединится к домену, потому что вы этого не хотите. В любом случае, просто измените триггер, который его запускает. Например, чтобы запустить, когда машина имеет сеть (и, следовательно, имеет доступ к серверу), сделайте:

w32tm /unregister
w32tm /register
sc config w32time type= own
net start w32time
```.
5
5
5
2016-03-01 11:37:26 +0000

Использовать:

net stop w32time
w32tm /config /syncfromflags:manual /manualpeerlist:"0.it.pool.ntp.org 1.it.pool.ntp.org 2.it.pool.ntp.org 3.it.pool.ntp.org"
net start w32time
w32tm /config /update
w32tm /resync /rediscover

Файл образца .bat находится по адресу https://gist.github.com/thedom85/dbeb58627adfb3d5c3af .

Я также рекомендую эту программу: http://www.timesynctool.com/

3
3
3
2012-05-16 14:10:42 +0000

Из командной строки вы можете получить следующую информацию:

reg QUERY [\machine\]HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
reg QUERY [\machine\]HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config

Похоже, что этого должно быть достаточно, чтобы пойти в этом направлении, то есть, если я понял ваш вопрос. AFAIK, команда ‘reg’ работает на всех этих различных платформах, пока у вас запущены нужные службы.

2
2
2
2012-05-16 14:25:34 +0000

Взгляните на инструмент командной строки w32tm. Он может задать и запросить конфигурацию и сообщить /полоскальную диаграмму смещения времени на другом компьютере.

Похожие вопросы

3
19
10
28
7