SpecialPollInterval の誤解
Windows の NTP クライアントは、時刻同期の間隔を自動的に調整する機能が備わっています。
MinPollInterval、MaxPollInterval の二つのレジストリ キーがそれにあたり、時刻の信頼度に合わせて同期間隔が自動的に調整されていきます。
これとは別に、SpecialPollInterval というレジストリ キーもあり、これも時刻同期の間隔を入力する値です。
この値を使うと、等間隔で時刻同期が実現できる…という、Windows の独自実装モード (RFC じゃそんな仕様がない?) での時刻同期が実現できるようです。
しかし、SpecialPollInterval が利用されるケースは極稀です。具体的には、NTP サーバーを指定する際の同期モードが「0x1」となっている場合のみです。
ナレッジベースにはこうしてきちんと書いてあるんですが、Web 上には間違った記述のページがたくさんあるようで、このあたりのせいで 「Windows の NTP クライアントの動きはよくわからん!」と言われてしまうのでしょう。正しく使いこなせていないのが残念ですね…。
この辺が間違った解釈の記事一覧。
- Windows TIPS:NTPでネットワーク全体のマシンの時刻を合わせる(2/2)
- http://journal.mycom.co.jp/column/windows/013/index.html
- http://sakura.bb-west.ne.jp/spr/damayan/report/timer/WindowsNtp.htm
この挙動、ワークグループ環境に限るんでしょうか?少なくとも NTP サーバー指定時に明示的に 0x1 を追記したほうがよいかと思います。デフォルトは 0x0 になっているようなので。
さらし首にして申し訳ないのですが、トラックバックに気づいて修正してくれること、もしくは別の根拠資料が提示されてくることを祈ります。