忙しい年末。時計の正確さがなにかと気になる。例えば年末年始の航空便のインターネット予約。受け付け開始後,秒単位の速さで満席になってしまったりする。時計を秒単位で合わせるために,電話の時報サービスなどで時刻合わせをした方もいらっしゃるだろう。

 では,Windowsパソコンの時計はどうだろうか。実はWindowsは,定期的に時刻を合わせる「Windows Timeサービス」という機能を内蔵している。ただし,デフォルトの設定では,時刻合わせは不十分。結果としてパソコンの時計は秒単位でずれていることが多い。そこで,Windows Timeサービスを使ってパソコンの時計を正確に合わせる,お勧めの方法を紹介しよう。数ミリ秒から数十ミリ秒の精度で時計を合わせられるようになるはずだ。

 今回紹介するのは,Active Directoryに参加していない,自宅のパソコンの時刻合わせの方法だ。パソコンの時計の時刻を合わせておけば,時計を合わせるために,スッキリした気持ちでお正月を迎えられるだろう。

1週間に一度しか合わせようとしない

 時刻を正確に合わせる方法を紹介する前に,Windows Timeサービスでは,どのように時刻を合わせているのかを解説しよう。Windows Timeサービスは,NTPというプロトコルを使って標準時刻を配信するNTPサーバーにアクセスし,取得した時刻をパソコンが内蔵する時計に反映させる。

 NTPは,インターネットで広く使われている時刻配信用プロトコル。ネットワーク内の遅延時間を補正したり,多数の時刻データを平均して測定揺らぎを取り除いたりする,緻密なプロトコルだ。ただし,正確に時刻を合わせるには,ネットワーク内の遅延がなるべく安定する「近く」のNTPサーバーにアクセスする必要がある。また,最初はNTPサーバーに数分おきにアクセスして時刻と時間の進み具合のずれを見極め,あとはアクセス間隔を伸ばして,進み具合のずれの変化を補正するのが本来の使い方だ。

 ところが,デフォルト設定のWindows Timeサービスは,週に1回,1発勝負でずれを補正しようとする。このため,ときには時刻が十数秒ずれてしまったりするし,時刻合わせのタイミングで時刻が飛んだりすることもある。メールの受信記録で受信順序とタイムスタンプの時刻順がずれるなど,イベントの発生順と記録の時刻順が一致しないことが起こりえるのだ。また,Windows Timeサービスの時刻情報の取得先は,デフォルトでは「time.windows.com」。米国にあるNTPサーバーで,正確な時刻情報を取得するには遅延時間が大きすぎる。

レジストリを変更する

 そこで,Windows Timeサービスで時刻を正確に合わせるには,設定を「より近くのNTPサーバーに」,「より頻繁に」アクセスするようにすればよい。両方の設定をレジストリを書き換えることで変える。レジストリの書き換えにはくれぐれも注意してもらいたい。

 まずは,自分の接続しているプロバイダが公開NTPサーバーを用意しているかを調べよう。検索サイトでプロバイダ名と「NTPサーバー」を基に検索してみるといった方法で探す。公開NTPサーバーがあるなら,そのホスト名を設定する。公開サーバーがない場合,情報通信研究機構(NICT)の公開NTPサーバー(ntp.nict.jp)か,インターネットマルチフィードの公開NTPサーバー(ntp.jst.mfeed.ad.jp)にアクセスさせるとよいだろう。

 次にパソコンのスタート・メニューの「ファイル名を指定して実行で「regedit」を入力する。レジストリ・エディタが起動するので,「KEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time
\Parametersを開く。中のNtpServerをダブルクリックして,値にアクセスさせるNTPサーバーのURLを入力し,最後に「,0x8」を付ける。例えばNICTのNTPサーバーにアクセスさせる場合なら「ntp.nict.jp,0x8」と入力する。OKをクリックしてレジストリ・エディタを終了すれば,設定は完了だ。

 再起動すればWindowsタイム・サーバーは,指定したNTPサーバーに最初は17分間隔,時刻がほぼ合えば8時間間隔でアクセスするようになる。これだけで,パソコンの時刻はずっと正確になるはずだ。さらにレジストリ・エディタで「Parameters」と同レベルにある「Config」を開き,「MinPollInterval」の値を「8」に,「MaxPollInterval」の値を「d」にすれば,アクセス間隔が最初は約4分間隔,安定したあとは約2時間間隔にできる。

 ただし,企業ネットワークでは事情が異なる。多数のパソコンが勝手に公開NTPサーバーにアクセスすると,集中したアクセスがNTPサーバーの機能に影響を与えかねない。そこで企業で時刻を正確に合わせたいなら,自前のNTPサーバーを1台用意するのが原則だ。自前のNTPサーバーに社内を代表して公開NTPサーバーから時刻情報を取得させる。社内のパソコンは,自前のNTPサーバーにアクセスするようにする。例えばNICTは,「10台以上パソコンがある企業では,自前のNTPサーバー経由でアクセスしてほしい」と呼びかけている。Windows環境でActive Directoryを使っているのなら,新たにNTPサーバーを用意する必要はない。最初からドメイン・コントローラがNTPサーバーになっている。