Назад | Перейти на главную страницу

Как принудительно синхронизировать время на Windows Workstation или Server?

Какая команда выполняет синхронизацию рабочей станции или сервера Windows с настроенным источником времени?

Как сказал Кайл w32tm /resync это современный способ сделать это. Посмотри это Ссылка на базу знаний Microsoft (307897 КБ) для получения дополнительной информации о команде w32tm.

А также есть net time это более старая версия, но, возможно, проще.

Для тех, кто все еще задает этот вопрос.

  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

Вы можете использовать следующую команду:

w32tm /resync

Ты можешь использовать:

w32tm /resync

Кроме того, используя w32tm /resync /rediscover будет тоже «принудительное повторное определение ресурсов сети перед повторной синхронизацией».

Или используя:

net time /set

Подскажет вам установить время на DC. (Работает для более старых версий Windows)

ОС: 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 файл из меню Пуск StartUp:

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

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

Powershell one liner, если настроен ntp-сервер:

gsv w32time | sasv; w32tm /resync /force

Вы можете поместить этот файл .bat в автозагрузку, если у вас произошел сбой батареи CMOS, чтобы он мог повторно синхронизироваться при запуске ОС:

@powershell -NoProfile -Command 'gsv w32time | sasv; w32tm /resync /force'
net start w32time
w32tm /resync

По данным Riot Games

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

w32tm /resync /force не работает, потому что /force не отображается на сервере 2016.

net time /SET /Y тоже не работает, потому что он бы спросил:

Вы хотите, чтобы время на локальном компьютере соответствовало времени в \AD.example.net? (Да / Нет) [Д]

Конечно, это не сработает, если вы на 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

У меня есть образ 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 получится.

В конечном итоге синхронизация времени все же удается, но не своевременно и не надежно.

Попробуйте в таком порядке. Работает все время.

w32tm /unregister

w32tm /register

net stop w32time

net start w32time

w32tm /resync