Синхронизация времени в ОС Windows
◆ 𝙄𝘿𝙀𝙉𝘼 - 𝙝𝙚𝙡𝙥 ◆
СОДЕРЖАНИЕ:
📃 Данный материал предназначен для быстрой и простой настройки синхронизации времени 🕒 в ОС Windows с помощью bat-файла. Подойдет как для домашнего ПК, так и для VPS.
Пользователям Идены поможет устранить ошибку:


Кроме того отклонение времени на несколько секунд может привести к провалу короткой сессии валидации Идены (ошибка #Late_submission).
Скрипт настраивает w32time (Служба времени Windows) на автозапуск, добавляет в реестр параметры NTP, интервал синхронизации и список серверов (для настройки из панели управления). Материалы собраны участником Telegram-группы IdenaRU @AleksejSudba.
ИНСТРУКЦИЯ по использованию
1. Скопируйте все строки кода (перейти к коду), вставьте в текстовый документ через Блокнот 📘 и измените расширение файла на .bat.
2. Нажмите правую кнопку мыши и выберите Запуск от имени администратора:

3. Согласитесь на внесение изменений в окошке. Запустится командная строка.

4. Выберите интервал синхронизации. Введите 1, 2 или 3 для 30 минут, 1 часа или 6 часов соответственно и нажмите клавишу Enter (рекомендую для Идены указывать 1 час). Если введете что-нибудь другое или вообще ничего, то интервал установится в 1 час.

5. Укажите NTP-сервер для синхронизации. Желательно выбирать в соответствии со страной, где физически находится ваш компьютер (или VPS-сервер). Например, для сервера в Финляндии (VPS от Hetzner) 3-й вариант. Если желаете использовать стандартный NTP-сервер Windows, наберите 9. Если введете что-нибудь другое или вообще ничего, то будет использован сервер ru.pool.ntp.org.

6. Далее можете поменять часовой пояс на MSK (это никак не повлияет на синхронизацию в Идене). Это может быть удобно, если вы используете VPS с нерусифицированной версией Windows.
При этом также поменяется отображение даты и времени на привычное (пример: изменится на 17:25 14.08.2021 вместо 5:25 PM 08-14-2021). Для этих изменений наберите латинскую Y, либо y, либо 1 и нажмите Enter. При любом другом введенном значении часовой пояс и формат даты и времени не изменятся. (На скриншоте ниже часовой пояс не изменяли).

7. Теперь можно закрывать либо нажать на какую-нибудь клавишу.
Убедитесь, что время синхронизировалось, посетив сайт time.is:

Возможно отклонение до 0,5 секунд. Обычно оно самостоятельно устраняется после нескольких синхронизаций по расписанию в будущем.
☝️ Если после этой процедуры время не синхронизировалось возможно дело в брандмауэре Windows или антивирусном ПО. Если вы арендуете VPS и синхронизация не произошла, обратитесь в тех-поддержку хостинга.
КОД BAT-ФАЙЛА для настройки синхронизации
@echo off
rem Запуск службы времени w32time (на случай, если она отключена) и изменение параметра запуска на "автоматически"
sc start w32time
sc config w32time start= auto
rem -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
rem Выбор интервала времени (частоты) синхронизации Windows
echo.
echo.
echo.
echo Select the time synchronization interval (1 hour by default):
echo 1 - 30 minutes
echo 2 - 1 hour
echo 3 - 6 hours
echo.
set /p choice=Input 1, 2 or 3 and press ENTER:
rem Значение переменной interval по умолчанию (в секундах)
rem При вводе любых некорректных данных интервал синхронизации будет установлен в 1 час (3607 секунд, несколько секунд добавлены умышленно)
set interval=3607
if '%choice%'=='1' set interval=1803
if '%choice%'=='2' set interval=3607
if '%choice%'=='3' set interval=21609
echo.
rem -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
rem Выбор сервера синхронизации
echo.
echo.
echo.
echo Select the time synchronization server (ru.pool.ntp.org by default):
echo 1 - ru.pool.ntp.org (Russia)
echo 2 - de.pool.ntp.org (Germany)
echo 3 - fi.pool.ntp.org (Finland)
echo 4 - europe.pool.ntp.org (Europe)
echo 5 - asia.pool.ntp.org (Asia)
echo 6 - us.pool.ntp.org (USA)
echo 7 - timeserver.ru (Russia)
echo 8 - time.google.com
echo 9 - time.windows.com
echo.
set /p choice=Input number 1, 2 ... 9 and press ENTER:
rem Значение переменной server по умолчанию
rem При вводе любых некорректных данных сервер синхронизации будет установлен в ru.pool.ntp.org & timeserver.ru
set ntpServer="ru.pool.ntp.org,0x9 timeserver.ru,0x9"
if '%choice%'=='1' set ntpServer=ru.pool.ntp.org,0x9
if '%choice%'=='2' set ntpServer=de.pool.ntp.org,0x9
if '%choice%'=='3' set ntpServer=fi.pool.ntp.org,0x9
if '%choice%'=='4' set ntpServer=europe.pool.ntp.org,0x9
if '%choice%'=='5' set ntpServer=asia.pool.ntp.org,0x9
if '%choice%'=='6' set ntpServer=us.pool.ntp.org,0x9
if '%choice%'=='7' set ntpServer=timeserver.ru,0x9
if '%choice%'=='8' set ntpServer=time.google.com,0x9
if '%choice%'=='9' set ntpServer=time.windows.com,0x9
echo.
rem -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
rem Смена часового пояса на MSK (UTC+3). Актуально для англоязычной версии Windows
echo.
echo.
echo.
echo Change the time zone to Moscow Time?
echo.
set /p choice=Input Y, y or 1 and press ENTER to change the time zone or another - do not change:
rem При вводе любых некорректных данных часовой пояс не меняется
if '%choice%'=='Y' goto change
if '%choice%'=='y' goto change
if '%choice%'=='1' goto change
goto noChange
:change
tzutil /s "Russian Standard Time_dstoff"
REG ADD "HKCU\Control Panel\International" /v sShortDate /t REG_SZ /d dd.MM.yyyy /f
REG ADD "HKCU\Control Panel\International" /v sShortTime /t REG_SZ /d H:mm /f
echo The time zone changed successfully!
:noChange
echo.
rem -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
rem Настройка реестра и занесение введенных данных
echo.
echo.
echo.
echo Changing Windows Registry Settings
echo.
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers /v 0 /t REG_SZ /d ru.pool.ntp.org /f
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers /v 1 /t REG_SZ /d timeserver.ru /f
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers /v 2 /t REG_SZ /d time.windows.com /f
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers /v 3 /t REG_SZ /d time.nist.gov /f
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers /v 4 /t REG_SZ /d time.google.com /f
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers /v 5 /t REG_SZ /d de.pool.ntp.org /f
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers /v 6 /t REG_SZ /d fi.pool.ntp.org /f
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers /v 7 /t REG_SZ /d europe.pool.ntp.org /f
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers /v 8 /t REG_SZ /d asia.pool.ntp.org /f
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers /v 9 /t REG_SZ /d us.pool.ntp.org /f
reg add HKLM\SYSTEM\CurrentControlSet\services\W32Time\Parameters /v Type /t REG_SZ /d NTP /f
reg add HKLM\SYSTEM\CurrentControlSet\services\W32Time\Config /v AnnounceFlags /t REG_DWORD /d 0x0000000a /f
reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer /v Enabled /t REG_DWORD /d 0x00000001 /f
reg add HKLM\SYSTEM\CurrentControlSet\services\W32Time\Config /v MaxPosPhaseCorrection /t REG_DWORD /d 0xffffffff /f
reg add HKLM\SYSTEM\CurrentControlSet\services\W32Time\Config /v MaxNegPhaseCorrection /t REG_DWORD /d 0xffffffff /f
reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient /v SpecialPollInterval /t REG_DWORD /d %interval% /f
reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters /v NtpServer /t REG_SZ /d %ntpServer% /f
timeout 1 /nobreak
rem -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
rem Сохранение и применение конфигурации w32tm
w32tm /config /update
w32tm /resync /nowait
echo.
echo Done. The synchronization setup has been successfully completed! Press any key to exit.
echo.
pause