Windows7での時刻合わせ

  • 投稿日:
  • by
  • カテゴリ:

私のPCの時刻は10分毎に、ntp.nict.jpと同期させています。しかしWindows 7のインストール時の設定では週に一度、日曜日の午前1時にtime.windows.comと同期するだけです。

このインストール時設定を変更するには次の3ステップが必要です。

  1. タイムプロバイダーを日本のNTPサーバーに切り替える
    time.windows.com から ntp.nict.jp に変更する。
  2. Windows Timeサービスを常時起動に変更する
    http://support.microsoft.com/kb/2385818/ja
    コマンドプロンプト(cmd.exe)を管理者権限で起動して、回避策の方法2を実行する。
  3. 同期周期を短く変更する
    次のフォーラムの回答のようにレジストリを2か所変更する。
    http://answers.microsoft.com/ja-jp/windows/forum/windows_7-desktop/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D/385b4717-a58a-4622-b888-fb3fbddbf42f
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\
    W32Time\TimeProviders\NtpClient の SpecialPollInterval
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\
    W32Time\Config の UpdateInterval について
    10分なら10進数で600に変更する。

Windows Vistaではステップ1と、ステップ3のSpecialPollIntervalだけでよかった。しかしトレードフロアのPCを整備している過程で時刻ズレに気が付き、この3ステップを実行することで、誤差0.1秒以内で同期するようになった。

なお、この記事はWindows 7 Professionalを前提にしているので、Windows 7 Home Premiumの場合はわかりません。

Windows 8 Proでも、この3ステップで時刻合わせができました。インストール時のタスクスケジューラ設定には週一の時刻合わせも登録されていないのですが、手動で時刻サーバーと同期させると次回同期が1週間後になるので、Windows 7とは違うところに何かあるのかもしれません。

ステップ1 タイムプロバイダーを日本のNTPサーバーに切り替える

わざわざ北米のNTPサーバーまでアクセスしなくとも、日本の標準時の元締めであるNICT(情報通信研究機構)がNTPサーバーを運用しているので切り替える。

タスクバーの時刻を右クリックして日付と時刻のプロパティを選択、日付と時刻を開くので、インターネット時刻のタブに切り替えて、設定の変更をクリックして、サーバーを ntp.nict.jp と入力し、今すぐ更新(U)をクリック、同期することを確認する。NICT以外に各インターネットプロバイダーや、インターネットマルチフィード(mfeed)などがNTPサーバーを運用している。

mfeedのほうが各ISPから近いので次のNTPサーバーを推奨。
ntp.jst.mfeed.ad.jp

20121104internettime.gif

ステップ2 Windows Timeサービスを常時起動に変更する

Windows7でアクティブディレクトリに参加していないスタンドアローンPCは、タスクスケジューラで週に一度Windows Timeサービスが起動するように設定されている。Windows Vistaでは常時起動していたのでこの設定は必要ない。これを有効なIPアドレスを取得しているときに起動するに変更。

手順は http://support.microsoft.com/kb/2385818/ja の方法 2の通り。

アクセサリからコマンドプロンプトをたどるのも面倒なので、スタートで cmd を検索、cmd.exeを右クリックして、管理者として実行を選択。

20121104adminmode.gif

20121104search_cmd.gif

次のコマンド(回避策の方法 2)を入力し、Enterキーで実行。コマンドプロンプトでの貼り付けは、左上アイコンをクリックして、編集 - 貼り付け(P)で出来る。

sc triggerinfo w32time start/networkon stop/networkoff

20121104w32time.gif

サービスが起動しているかは、管理ツールのサービスで Windows Time が開始となっているかを確認。

ステップ3 同期周期を短く変更する(レジストリの変更)

スタートで regedit を検索して、regedit.exeを起動する。この操作に慣れていない場合は避けたほうがよいかもしれないが、同期周期の変更はレジストリの直接変更(あるいはレジストリ変更を記述したファイル)が必要。以下の例では600秒周期に変更。表記を10進数に切り替えて入力する。

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\
W32Time\TimeProviders\NtpClient の SpecialPollInterval
20121104SpecialPollTime.gif

(Windows7のみWindows Vistaは不要)
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\
W32Time\Config の UpdateInterval
20121104UpdateInterval.gif