ClockSync

Синхронизируйте часы Windows.

ClockSync — это простой скрипт командной строки для синхронизации часов Windows.
В некоторых системах и по разным причинам часы Windows могут часто не синхронизироваться.
Этот небольшой инструмент должен решить эту проблему.
ClockSync написан на пакетном языке.

Если вы ищете программу для поддержания точного системного времени, вы только что ее нашли!

  • Бесплатно
  • Open Source
  • Малый: менее 2 КБ
  • Быстрый и простой в использовании
  • Работает на любой Windows от Win7 до Win10, включая версии Server.
    Поддерживаются как 32-битные, так и 64-битные ОС.
Применение:
  1. Убедитесь, что вы подключены к Интернету.
  2. Запустите файл ClockSync.bat с правами администратора.

ClockSync автоматически выполнит первую синхронизацию.
После этого он выполняет периодические синхронизации на временном интервале.
По умолчанию время синхронизируется каждые 10 минут.

Если вы хотите указать настраиваемый интервал повторной синхронизации, запустите файл с параметром команды «минуты».
Следующая команда, например, синхронизирует часы каждые 60 минут:
«ClockSync.bat 60»

Детали:

ClockSync будет поддерживать точность ваших системных часов, выполняя периодическую синхронизацию с вашим сервером времени в Интернете по умолчанию.

Если служба времени Windows или синхронизация времени в Интернете были отключены, ClockSync перезапустит их.
Это поможет поддерживать точность системных часов, даже если ClockSync не запущен.

Исходный код:

ClockSync.bat:

@echo off
echo * ClockSync v1.0
echo * BreakingSecurity.net
echo.

:: Check that we own administrator access level. 
echo [INFO] Checking Access Level...
net session >nul 2>&1
if %errorLevel% == 0 (
	:: We have the necessary rights, go forward
	echo [INFO] Administrative Access confirmed.
) else (
	:: Error, insufficient privileges. Exit program.
	echo [ERROR] Insufficient Access Level. Please restart script with administrative permission.
	echo.
	echo Press any key to exit...
	pause > nul
	exit
)

:: Check command-line parameter.
:: User can specify any number of minutes for the Resync interval.
:: If there is no user-specified parameter, default one is used.
set /A minutes = 10
if not "%1" == "" (
	set /A minutes=%1
)

:loop
:: Synchronize Clock
:: Use /force parameter to bypass "time change too big" error
w32tm /resync /force
if not errorlevel 0 (
	:: If Error, restart time service
    echo [WARNING] Time Service error. Restarting service...
	net stop w32time
    w32tm /unregister
    w32tm /register
    net start w32time
	w32tm /resync /force
	if not errorlevel 0 (
		:: Unknown error, exit program.
		echo [ERROR] Unknown error.
		echo.
		echo Press any key to exit...
		pause > nul
		exit
	)
)
echo.
echo [SUCCESS] Clock successfully synchronized!
echo Date: %date%
echo Time: %time%
echo.

:: Sleep
set /A seconds = %minutes% * 60
echo [INFO] Sleeping for %minutes% minutes until next synchronization...
echo.
ping 127.0.0.1 -n %seconds% > nul

:: Repeat
goto loop