Як я можу перевірити поточну конфігурацію NTP системи?


65

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

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

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

Конкретніше мені потрібно наступне:

  • Покажіть, налаштована чи ні система для отримання часу від сервера NTP.
  • Показати сервери NTP, з яких система отримує час.
  • Показати час останньої синхронізації.
  • Показати поточний час у системі.

Яка команда (и) була б необхідною для досягнення цих результатів?

Шукаєте рішення, сумісне з Windows XP, 7, Server 2003 та Server 2008.


Я знаю, щоб перевірити час ви можете зробити "чистий час \\ ім'я комп'ютера", щоб отримати час віддаленого ПК. Я не думаю, що чистий час дозволяє переглядати останню синхронізацію, хоча ... однак "чистий час?" дає набір варіантів, так що це як 1/2 того, що ви шукаєте.
Суперсереальний

@Kyle Я щойно зрозумів, що net time /querysntpпоказує сервер. Отримати решту може бути складним.
Іссі

3
У Windows 7 чистий час / querysntp було вимкнено.
Даніель

Відповіді:


82

У командному рядку введіть

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

w32tm /query /configuration дає конфігурацію, яку ви створили.

w32tm /query /status надає інформацію, таку як:

  • прошарок
  • показник стрибка
  • точність
  • остання синхронізація
  • NTP-сервер
  • інтервал опитування

time /T виводить поточний системний час.

Примітка: w32tm /queryвперше була доступна у клієнтських версіях Windows Time Windows Vista та Windows Server 2008. Див. Інструменти та налаштування служби часу Windows


5
Немає користі для XP. "Команда / запит невідомі."
Іссі

Яка різниця між часом time /tі часом, показаним у нижній правій частині панелі завдань?
Печер'є

По-перше, w32tm /query /configurationя отримую "Виникла така помилка: Доступ заборонено. (0x80070005)" . Я думаю, що я маю достатньо прав.
Пітер Мортенсен

3
Потрібно знаходитись у підвищеному вікні команди для цього.
Філіп Р.

16

Це відповідає на ваше останнє запитання:

Відкрийте командний рядок і введіть точно:

w32tm /stripchart /computer:NTPServerNameOrIP /dataonly /samples:x (скільки повернень ви хочете)

Він повертає час та різницю до часу сервера NTP. Якщо він повертає час, помилка: 0x80072746, то це не ваш NTP-сервер.

Приклад команди наведено нижче:

Командний приклад


Чи можете ви відформатувати цю відповідь?
Рамхаунд

Спосіб самоформатування дивний. Внесли зміни
Байрон

8

Я намагався:

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.

В іншій машині я знайшов сторінку довідки, сказавши також:

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

Нарешті, все вищесказане спрацювало б. (Примітка: якщо net startне вдалося, див. нижче) Тоді мені просто потрібно було налаштувати свій ntp ... Я це робив із:

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

наступні інструкції звідси , але, можливо, це могло бути так просто, як:

net time /setsntp:10.0.0.5

як тут прописано . (10.0.0.5 є моїм локальним сервером NTP). Якщо ви не використовуєте локальний сервер NTP, ви можете використовувати загальний:

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

Нарешті, вам може знадобитися зробити наступне, що мені було не потрібно:

w32tm /config /update
w32tm /resync /rediscover

Примітка: якщо net start w32timeз помилкою +1290 (Початок служби не вдалося , так як один або кілька послуг в тому ж процесі мають служби установки несумісного типу SID) , а потім виконайте кроки тут :

w32tm /unregister
w32tm /register
sc config w32time type= own
net start w32time

Потім виконайте, як зазначено вище.


ПРИМІТКА 2: якщо служба NTP не запускається автоматично при перезавантаженні, це може бути пов’язано з її налаштуваннями запуску, як описано тут : залежно від ваших вікон, воно може бути встановлено для запуску лише тоді, коли він приєднується до домену. Ви можете перевірити за допомогою:

sc qtriggerinfo w32time

Якщо це налаштовано для запуску, коли ви приєднуєтесь до домену, і у вас немає домену, налаштованого на вашому пристрої, він не запустить службу та встановить час. Він, ймовірно, не приєднується до домену, тому що ви цього не хочете. У будь-якому випадку просто змініть, який тригер запускає. Наприклад, щоб почати, коли машина має мережу (і тому може отримати доступ до сервера), виконайте:

sc triggerinfo w32time start/networkon stop/networkoff

4

Використання:

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

З командного рядка ви можете отримати таку інформацію:

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

Здається, що цього має бути достатньо хоча б для того, щоб піти в тому напрямку, тобто якщо я зрозумів ваше запитання. AFAIK, команда 'reg' працює на всіх цих різних платформах до тих пір, поки у вас працюють правильні служби.


Я отримав: "ПОМИЛКА. Система не змогла знайти вказаний ключ або значення реєстру." Виявляється, W32Time не був запущений ...
msb

Отже, " [\\machine\]" означає, що його можна залишити, якщо на одній машині?
Пітер Мортенсен

2

Погляньте на інструмент w32tmкомандного рядка. Він може встановлювати та запитувати конфігурацію та повідомляти про / смужку діаграми про зсув часу на іншому комп’ютері.


1
Ця /queryопція недоступна для XP.
Іссі

5
Спробуйте net time /querysntp.
Фран

1
@Fran Це працює. Я сподівався отримати одну команду, яка була кросплатформенною, але, здається, мені, можливо, доведеться використовувати дві різні - або написати пакетний файл, який включає в себе виявлення платформи, щоб визначити, які команди (и) виконувати.
Іссі

1
@lszi У своїх сценаріях я перевіряю наявність C: \ користувачів. Якщо я знайду цю папку, я знаю, що перебуваю у вікні після XP.
Фран

1
@Fran Чи не могли б ви написати власну відповідь, що включає обидві команди? Крім того, яку команду я використовував би для перевірки останнього успішного часу синхронізації для XP?
Ізі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.