사실... 엄청난 삽질의 끝에 마지막에는 결국 꼼수를 더해 목적에 도달하였지만, 그렇게 찾고 또 찾아도 나타나지 않던 방법이 삽질+꼼수의 결과물로 다시 구글링을 해보니 같은 꼼수를 부린 해외파들이 있어 김이 좀 빠졌다... ㅡ.ㅡ;

그래도 목적은 달성했으니 그것으로 만족~ ^^;


Trouble :

Windows에서 시간 동기화 기능을 사용하기 위해서는 Windows Time(이는 표시명이고 서비스명은 W32Time) 서비스가 시작되어 있어야만 NTP 서버로부터 따끈따끈한 표준시간을 긁어올 수 있는데, 이녀석은 어떻게 되먹은 녀석인지 일반적인 환경에서는 services.msc에서 시작 유형을 자동으로 해도, 자동(지연된 시작)으로 해도, 의심가는 레지스트리를 수정해도, 작업 스케쥴러의 Time Synchronization을 건드려봐도, 그룹정책 편집기(gpedit.msc)를 이용해 요기조기 찔러봐도 절대 자동으로 시작되지가 않는다.

물론, services.msc에서 클릭해서 시작하거나, 명령 프롬프트에서 net start w32time 으로 시작하거나, 날짜 및 시간 → 인터넷 시간 에서 직접 동기화 시켜주거나 할 경우 서비스가 시작되기는 하지만, 컴퓨터를 부팅할 때 마다 일부러 하기는 상당히 귀찮은 작업이기에 자동으로 시작하게 하려고 용을 써봤다. (어쩌다 한번이라지만, 어쩌다 한번이기에 잊어버리기 쉬운 관계로... ㅡ.ㅡ;)

근본적인 원인은...
Windows Time(W32Time) 서비스는 아래와 같은 Trigger 조건을 충족해야만 자동으로 설정했을 때 자동으로 실행된다고 한다.

> sc qtriggerinfo w32time
[SC] ChangeServiceConfig2 성공
SERVICE_NAME: w32time
서비스 시작
도메인 가입 상태         : 1ce20aba-9851-4421-9430-1ddeb766e809 [도메인에 가입됨]
서비스 중지
도메인 가입 상태         : ddaf516e-58c2-4866-9574-c3b615d42ea1 [도메인에 가입되지 않음]

여기서 말하는 '도메인(domain)'이라는 것이 Active Directory(AD) 환경하에서 Domain Controller(DC)에 등록이 된 상태이어야 한다는 얘기인 듯 한데, Active Directory에 대한 지식이 백지상태인지라 뭐라 설명할 방법이 없고, 어쨌거나 일반적인 환경에서는 W32Time 서비스가 시작될 조건이 안된다는 얘기로 받아들였다. 아마도 컴퓨터 이름 설정창에서 소속 그룹을 작업 그룹이 아닌 도메인으로 설정이 가능한 환경이어야 한다는 설명인 듯 싶다.


Shooting :

이래도 안되고 저래도 안되고... 해서 도달한 결론이…
그럼...... 조건을 바꿔버리면 되지 않을까???

> sc triggerinfo w32time start/networkon stop/networkoff
[SC] ChangeServiceConfig2 성공
> sc qtriggerinfo w32time
[SC] ChangeServiceConfig2 성공
SERVICE_NAME: w32time
서비스 시작
IP 주소 가용성      : 4f27f2de-14e2-430b-a549-7cd48cbc8245 [첫 번째 IP 주소 사용 가능]
서비스 중지
IP 주소 가용성      : cc4ba62a-162e-4648-847a-b6bdf993e335 [사용 가능한 IP 주소 없음]

위와 같이 Trigger 조건 설정을 변경하니 WIndows 재시작 후 Windows Time(W32Time) 서비스가 자동으로 시작되었다.

이외 시간 동기화 서버 설정, 동기화 주기 변경 등에 대해서는 인터넷에 널려있는 관계로 여기서는 따로 언급하지 않는다. ^^;  정작 내가 다른 부분에 대해 관련 정보 기록해 놓은것을 찾으려고 폴더들을 뒤적거리는 상황이 발생하여, 한꺼번에 변경 가능한 레지스트리를 추가함. ^^;

대한민국_시간동기화_60분마다.reg


단, 국내 타임서버들 중 Stratum 1 / Stratum 2 서버에 시간 동기화를 위해 접속하고자 하는 경우(현재로서는 사실상 1차 서버들은 공식적으로 요청을 하지 않는 한 일반 사용자들이 직접 접속하기 어려운 듯) 동기화 주기를 적어도 1시간 이상으로 설정하여 몇 개 되지도 않는 서버들의 부하를 덜어주도록 하고, 일반 사용자라면 기본으로 설정되어 있는 time.windows.com에서 정보를 받아와도 표준시간에 사실상 동일하게 동기화 할 수 있다. (사실 이런 정보를 찾으시는 분들이 일반 사용자는 아니시겠지만요~ ^^;)

실제 작년 3월 중순 한국표준과학연구원 타임 서버에 과부하가 걸려 그 이후로는 공개적으로 접근이 불가하도록 해놓은 듯 하다. 접속 방법이 없지는 않지만 여기서는 언급하지는 않는다. 위 문제의 해결을 위해 구글링하던 중 공교롭게도 모 사이트에서 time.kriss.re.kr 서버에 10초 간격으로 동기화를 할 수 있도록 레지스트리를 변경하고자 하는 개발자(?)의 글이 같은해 3월 초에 올라와 있는것을 발견하였는데... 오비이락일 수도 있지만…  시기적으로 왠지... 의심스럽기 그지없다. ㅡ.ㅡ;

 

Posted by MorningT