WindowsXP時計同期機能でLinux NTPサーバと同期させる設定

debian sarge kernel2.6.8 smp
ntp-server 4.2.0a
Wrote 2007.2.1

■ 問題点

MS-Windows には時刻サーバとの同期設定が標準で存在するが、LinuxのNTPサーバと同期できないようだ。
例えば以下のように Linuxのntpサーバ(192,168.10.11)を指定した場合に同期に失敗する。
(※以下は対策後のものなので正常に同期した画面)

■ 対策

マイクロソフトのサイト Windows Server 2003 で Windows 以外の NTP サーバーとの同期が成功しない で回避。タイトルはWindows Server 2003 とあるが Windows XPでも回避できた。一応以下に手順を記述。

コマンド プロンプトで、以下のコマンドを順に実行する。

w32tm /config /manualpeerlist:NTP_server_IP_Address,0x8 /syncfromflags:MANUAL
net stop w32time
net start w32time
w32tm /resync

上記は結果的にレジストリを操作しているらしい。
レジストリ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer の Enabled エントリの値が 1 であったものを 0x8 に変更する操作と記載されている。

※桜時計などなら問題なくLinuxのntpサーバと同期できる。

■ 同期周期の変更

MS-Windows XPは同期周期がデフォルトで7日とかになっている為意外と時計がずれたりする。
これをもっと短い間隔で同期させる為の同期周期変更方法がマイクロソフトのサイト 外部のタイムソースと時刻の誤差が生じる場合がある に記載されている。レジストリの修正には regedt32 コマンドを使って記載されているレジストリを書き換えることになる。
当方のMS-Windows XP professional では HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\SpecialPollInterval に秒単位で値が設定されているのでこれを書き換えた。書き換えた直後では反映されないが再起動すれば有効になる(多分MS-Windows内の時間同期のクライアントのみの再起動で良いのかもしれないが)。


Home Up