Serach

2013년 10월 10일 목요일

윈도우 시간 동기화

Windows Time(W32Time) 서비스 자동으로 시작하기..




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

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

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

 

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






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

그래서 인터넷을 뒤적뒤적 바꿔보자 ..


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



위의 삽질 결과를 .. 하나로 축약한 레지스트리 파일을 올린다..
그냥 등록만 하면 싱크서버를 잡고 자동시작된다 ..


레지스트리 파일 설명이다 ..

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time]
"Start"=dword:00000002
→ W32Time 서비스 '자동시작'으로 변경. "services.msc → Windows Time → 자동" 과 동일함.  
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parameters]
"Type"="NTP"
"NtpServer"="time.windows.com,0x9"
→ 시간 동기화 서버를 time.windows.com로 지정하고, 서버 타입을 NTP로 설정.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpClient]
"SpecialPollInterval"=dword:00000e10
→ 동기화 주기를 1시간(3600초 = 16진수 0x00000e10)으로 변경.
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\TriggerInfo]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\TriggerInfo]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\TriggerInfo\0]
"Type"=dword:00000002
"Action"=dword:00000001
"Guid"=hex:de,f2,27,4f,e2,14,0b,43,a5,49,7c,d4,8c,bc,82,45
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\TriggerInfo\1]
"Type"=dword:00000002
"Action"=dword:00000002
"Guid"=hex:2a,a6,4b,cc,2e,16,48,46,84,7a,b6,bd,f9,93,e3,35
→ 위에서 설명한 대로 W32Time Trigger 조건을 start/networkon, stop/networkoff 으로 변경.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers]
@="0"
"0"="kr.pool.ntp.org"
→ '인터넷 시간' 지정하는 GUI 화면에서 kr.pool.ntp.org 추가하고, 기본 선택 상태로 변경.

레지스트리 수동변경시 ㅋㅋ 백업은 선택이 아닌 필수 ..




NTP 서버를 이용할시 구축 방법이나 설명은 아래 블로그를 참조 ..

댓글 없음:

댓글 쓰기