Як змусити синхронізувати час на робочій станції Windows або сервері?


Відповіді:


81

Як сказав Кайл, w32tm /resyncце сучасний спосіб зробити це. Дивіться це посилання на базу знань Microsoft (KB 307897) для отримання додаткової інформації про команду w32tm.

Існує також net timeстаріша версія, але, можливо, простіша.


4
w32tm /resyncкаже: "Комп'ютер не перезавантажувався, оскільки потрібна зміна часу була занадто великою". оскільки мій акумулятор CMOS мертвий, а годинник мого комп'ютера скидається під час кожного завантаження о 1.01.2000 00:00 ранку. Будь-яка допомога?
Ніколи не виходьте

Знайдено рішення відповідно до blog.bruteforcetech.com/archives/911 , не забудьте перезапустити сервіс W32Time, net stop W32Timeа потім повторіть спробуw32tm /resync
ніколи не вийдіть

1
Посилання розірвано.
Штійн Сандерс

2
@LightnessRacesinOrbit та інші, якщо ви отримаєте помилку "зміна часу була занадто великою", використовуйте w32tm /resync /force. Але якщо у вас не запущена послуга, запустіть net start w32time. Обоє з піднесеного підказу.
cdlvcdlv

4
Для того, щоб вирішити 'зміна часу було занадто велике' записи реєстру змін параметра MaxNegPhaseCorrection і MaxPosPhaseCorrection в HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ W32Time \ Config до максимуму (FFFFFFFF)
Томас Ф.

37

Для тих, хто ще задає це питання.

  1. Для оновлення використовуйте команду нижче (сумісність сервера 2008 та 2012 рр.)

    w32tm /config /manualpeerlist:"ntp_server" /syncfromflags:manual /reliable:yes /update
    

змінити ntp_server зі своїм джерелом

  1. Перезапустіть службу часу

    net stop w32time
    net start w32time
    
  2. Перезахистіть час

    w32tm /resync
    
  3. Перевірте свій статус синхронізації

    w32tm /query /status
    

Команди, наведені вище, мають бути добре, якщо ваші джерела працюють правильно та / або ваш зв’язок у порядку (брандмауер або Microsoft Forefront також можуть бути проблемою). Команди нижче можуть допомогти у вирішенні проблем

Щоб перелічити однолітків

w32tm /query /peers

Щоб перерахувати джерела NTP:

w32tm /query /source

Приємна, вичерпна відповідь! Визначте +1 для команди настройки NTP-сервера.
Шааман

Як зауваження, це працює для Windows 10 Professional без прапора "/ update", оскільки це недійсне.
Fmstrat

Для усунення несправностей часто корисно перевірити підключення до конкретного сервера:w32tm /monitor /computers:time.windows.com
Ренді Оррісон,


16

Ви можете використовувати:

w32tm /resync

Крім того, використання w32tm /resync /rediscoverтакож "примусить повторне виявлення мережевих ресурсів перед ресинхронізацією".

Або використовуючи:

net time /set

Підкаже вам встановити час на постійний струм. (Працює для старих версій Windows)


2
Чомусь w32tm /resyncне працював для мене, але net time /SET /Yробив. Я використовував /Yдля net timeтому , що він , мабуть , не читав STDIN належним чином при переході через SSHD з Cygwin.
qwertzguy

Під час запуску w32tm /resyncя отримав повідомлення The computer did not resync because no time data was available.навіть після перезавантаження служби, але net time /SETпрацював належним чином для мене.
Кріс Магнусон

3

ОС: MS Windows 7

Усі вищезазначені ідеї були випробувані, але не допомогли. Первісна проблема все ще існує: " Комп'ютер не пересинхронізувався, оскільки потрібна зміна часу була занадто великою ".

Рішення знайдено в реєстрі: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ w32time \ Config

  • змінити це, якщо місцевий час поспішає (наприклад, 31 грудня-2050 р.): MaxNegPhaseCorrection
  • змініть це, якщо місцевий час затриманий (наприклад, 1 січня-1980): MaxPosPhaseCorrection
  • Значення за замовчуванням - 0xD2F0 (тобто 54000 сек. = 15 годин)

(більше інформації використовуйте Google)

Я використовую цей простий win_clock_sync.batфайл із меню "Пуск": запуск:

echo off
echo Sync computer time from internet
echo.
echo Back-up registry w32time\Config
reg export HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\w32time\Config exported_w32time.reg /y
rem changing the registry keys temporarly:
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\w32time\Config /v MaxNegPhaseCorrection /d 0xFFFFFFFF /t REG_DWORD /f
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\w32time\Config /v MaxPosPhaseCorrection /d 0xFFFFFFFF /t REG_DWORD /f
echo.
echo w32tm /config /update
w32tm /config /update
echo.
echo w32tm /resync /rediscover 
w32tm /resync /rediscover 
echo.
echo Restore registry w32time\Config
reg import exported_w32time.reg

Насолоджуйтесь! :-)


Ваша відповідь може використовувати пояснення функції значень MaxNegPhaseCorrectionта MaxPosPhaseCorrectionзначень замість того, щоб пропонувати, що вони повинні бути відключені наосліп. Ось що робить цей скрипт, встановлюючи їхні дані на 0xFFFFFFFF .
Twisty Impersonator

Ви не можете ігнорувати згадане повідомлення про помилку "Комп'ютер не пересинхронізувався, оскільки потрібна зміна часу була занадто великою". без зміни даних у значеннях MaxNegPhaseCorrection та MaxPosPhaseCorrection. Або ви знайшли якесь робоче рішення оригінальної проблеми ?? А чому ти пишеш «наосліп»? Якщо вам потрібно буде прочитати короткий час, тоді ви могли б побачити експорт та імпорт оригінальних даних цих значень, що трохи далеко від того, щоб зробити щось "наосліп".
Акос

Вам слід дозволити цьому сценарію змінити значення на відключене, примусити оновити та повернути їх до рекомендованих.
Cory Knutson

У Twisty є вагомі моменти, які не дуже зосереджені на проблемі, порушеній NeverQuit ... але тоді Акос чітко не пояснив, чому сценарій є відповідним рішенням для NeverQuit. По суті, значення реєстру MaxNegPhaseCorrection і MaxPosPhaseCorrection існують для того, щоб служба W32Time не застосувала кардинальних змін до поточного часу (за таких обставин, як зовнішнє джерело часу сильно зіткнеться). надійне джерело часу, тоді корекція виправлення не дозволить w32tm фіксувати великий дрейф. У цій ситуації ::: b
Creaky_Uncle_Nick

@Akos Downvote відкликаний виходячи з того, що ви вказали, що ваш сценарій дійсно повертає зміни до значень MaxNegPhaseCorrectionта MaxPosPhaseCorrectionзначень. Я все ще рекомендую включити пояснення того, що ці два налаштування виконують, оскільки вони є ключовою особливістю вашої відповіді, і важливо, щоб адміністратор знав, що якщо вони встановлять ці налаштування на постійне місце, вони налаштують свою систему на прийняття будь-яких змін часу, незалежно від величини, яка може зламати Kerberos та інші важливі мережеві послуги.
Twisty Impersonator

2

Отримує один лайнер, якщо налаштований ntp-сервер:

gsv w32time | sasv; w32tm /resync /force

Ви можете помістити цей .bat файл під час запуску, якщо CMOS акумулятор не вдався, щоб він міг повторно синхронізуватися після запуску ОС:

@powrshell -NoProfile -Command 'gsv w32time | sasv; w32tm /resync /force'

/forceне є документально підтвердженим варіантом командного рядка для w32tm /resync.
Дай


0

Спробуйте в такому порядку. Працює весь час.

w32tm /unregister

w32tm /register

net stop w32time

net start w32time

w32tm /resync

0

Майже жодне з рішень (за винятком @Akos) не працює, якщо хостом є контролер домену Windows Server 2016 Active Directory (ADDC), оскільки він вважає себе "надійним" джерелом, яке не може змінити великих часових змін.

w32tm /resync /forceне працює, оскільки /forceне з’являється на сервері 2016.

net time /SET /Y не працює, тому що він би попросив:

Ви хочете встановити час локального комп'ютера, щоб він відповідав часу \AD.example.net? (Так / Ні) [Y]

Звичайно, якщо він не працює AD.example.net, це /Yпросто приховує питання.

Кроки працюють для мене за допомогою PowerShell:

  1. Встановіть послугу w32time як ненадійну :
w32tm /config /reliable:no /syncfromflags:manual /update

Опція /syncfromflags:manualозначає синхронізацію з NTP, переліченим у списку рівних (тобто зовнішнім NTP), /updateдля повідомлення про час служби, що конфігурація змінилася.

  1. Перезапустіть w32time
Stop-Service w32time
Start-Service w32time
  1. Синхронізація
w32tm /resync

Це має спрацювати.

  1. Якщо вам потрібен ADDC як надійне джерело часу, зробіть його знову надійним:
w32tm /config /reliable:yes /update
Stop-Service w32time
Start-Service w32time

0

У мене є зображення Win10, яке я можу відновити до знімка, де це повідомлення про помилку завжди відтворюється: "The computer did not resync because the required time change was too big."

Я намагався безрезультатно розкрити рішення цієї проблеми:

reg import nettime.reg # updates MaxPosPhaseOffset and MaxNegPhaseOffset

net start w32time
w32tm.exe /config /manualpeerlist:"pool.ntp.org",0x8 /syncfromflags:manual /reliable:no /update  
w32tm.exe /query /configuration
w32tm.exe /resync /rediscover
w32tm.exe /resync /force

Ні , /reliable:noні MaxPosPhaseCorrectionнастройки, ні які - або інші команди , зазначені тут відразу ж працював відтвореним способом.

Після оновлення реєстру, запуску служби, оновлення конфігурації та знову перезавантаження послуги мені довелося почекати багато хвилин, перш ніж я w32tm /resync /rediscoverдосягти успіху.

Синхронізація в часі все-таки досягає успіху, тільки не вчасно та надійно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.