본문으로 바로가기

윈도우 타임서버 변경 스크립트

category 자료실/Windows 2021. 11. 7. 12:05
반응형
@echo off
title 관리자 권한 확인중...

 :: BatchGotAdmin
 :-------------------------------------
 REM  --> Check for permissions
 >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

REM --> If error flag set, we do not have admin.
 if '%errorlevel%' NEQ '0' (
     color 4f
     echo 관리자 권한으로 실행중이 아닙니다...
     echo 경고창이 표시되면 예를 눌러주세요...
     goto UACPrompt
 ) else ( goto gotAdmin )

:UACPrompt
     echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
     echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"

    "%temp%\getadmin.vbs"
     exit /B

:gotAdmin
     if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
     pushd "%CD%"
     CD /D "%~dp0"
 :--------------------------------------  

:Main
@echo off

title 타임 서버 변경


cls

echo 원하는 NTP 서버를 선택해주세요.
echo.
echo 1. time2.kriss.re.kr (한국 표준 과학 연구원)
echo 2. time.bora.net (LG 유플러스)
echo 3. ntp.kornet.net (KT)
echo 4. time.windows.com (Windows 기본)
echo 5. kr.pool.ntp.org (한국 NTP Pool, 권장)

:set
set _ok=
set /p _ok= 원하는 선택을 입력해주세요 :
if "%_ok%" == "1" set ntpadr=time2.kriss.re.kr
if "%_ok%" == "2" set ntpadr=time.bora.net
if "%_ok%" == "3" set ntpadr=ntp.kornet.net
if "%_ok%" == "4" set ntpadr=time.windows.com
if "%_ok%" == "5" set ntpadr=kr.pool.ntp.org


:set
set _min=
set /p _min= 동기화 실행 주기를 입력해주세요.(분 단위로) :
set min=%_min%
set /a settime=100*%min%

cls

echo "%ntpadr%" 를 기본 동기화 서버로 등록 합니다.
w32tm /config /syncfromflags:manual /manualpeerlist:%ntpadr% /reliable:yes /update > nul
echo.
echo 자동 동기화 주기를 %min%분으로 설정 합니다.
reg add " HKLM\system\currentcontrolset\services\w32time\TimeProviders\NtpClient" /v SpecialPollInterval /t REG_DWORD /d %settime% /f  > nul
echo.
echo 시간 오차 허용치를 %min%분으로 수정 합니다.
reg add " HKLM\system\currentcontrolset\services\w32time\Config" /v MaxPosPhaseCorrection /t REG_DWORD /d %settime% /f  > nul
reg add " HKLM\system\currentcontrolset\services\w32time\Config" /v MaxNegPhaseCorrection /t REG_DWORD /d %settime% /f  > nul
echo.
echo 서비스 반영을 위하여 시간 동기화 서비스를 재시작합니다.
net stop w32time  > nul
net start w32time  > nul
echo.
echo NTP 서버와 동기화를 실행합니다.
w32tm /resync > nul

cls
echo.
echo 작업이 완료 되었습니다.
echo.
echo 설정 값을 확인 합니다.
echo "MaxNegPhaseCorrection", "MaxPosPhaseCorrection", "SpecialPollInterval" 값이 %settime%인지 확인해 주시기 바랍니다.
echo NtpServer 값이 "%ntpadr%" 인지 확인해 주시기 바랍니다.

echo 7초후 결과를 표시 합니다.
timeout /t 7

w32tm /query /configuration | findstr  "MaxNegPhaseCorrection MaxPosPhaseCorrection SpecialPollInterval NtpServer"
pause

NTP Renew.bat
0.00MB