Windows 7/8.1/10での時計の自動調整の設定方法(追記)

Pocket

Windowsパソコンがインターネットに接続されるようになってから、パソコンの時刻の調整はNTPという仕組みで行われるようになりました。

しかし、調整の間隔がデフォルトでは長すぎるので結構時刻が狂います。

調整間隔や調整先のサーバーはレジストリーの値を変更することで変えることができます。

※この方法はレジストリーを変更するので初心者向きではありません。

資料

時刻の調整についての細かな記述は、下記のページに掲載されています。

古い資料ですが、レジストリーはWindows 10でも有効です。2番目の記述では調整に成功した場合、失敗した場合で間隔が変わる設定を説明していますが、こちらのレジストリーキーはデフォルトでは登録されていませんので、1番目の方法を使います。

また、こちらにも詳細に記されています。

時刻の調整間隔

[Windows]+[R]で「regedit.exe」を起動します。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\

の下の「SpecialPollInterval」の値を変更します。

値は秒単位で指定しますが、デフォルトでは、10進数で604,800、すなわち7日が指定されています。

推奨値は、10進数で900、すなわち15分です。

CASIOの電波時計でも1時間に一回調整していますので、7日は長すぎるでしょう。

値を設定後、最初に調整が行われた後は、指定した間隔で調整されます。

(2016/5/6 追記)

Windows 7以降これだけではダメなようです。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config

の下の「UpdateInterval」にもSpecialPollIntervalと同じ値を設定する必要があるそうです。デフォルトでは10進数で360,000、すなわち100時間が設定されています。

時刻調整先のNTPサーバー

Windows 8.1まではタスクバーの時計から変更できましたが、Windows 10ではコントロールパネルからしか変更できません。

「コントロールパネル」の「時刻、言語、および地域」をクリックし「日付と時刻」をクリックします。「日付と時刻」のダイアログが表示されるので「インターネット時刻」タブを選択し「設定の変更」をクリックします。「インターネット時刻設定」ダイアログが表示されるので「サーバー」にNTPサーバーを入力して「今すぐ更新」をクリックします。「時刻は正常に<NTPサーバー>と同期しました。:と表示されれば完了です。(コメントで頂いた情報から記事を修正しました)

レジストリーで変更する場合は同期方法も指定できます。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\

の下の「NtpServer」の値を変更します。

デフォルトの値は、「time.windows.com,0x9」です。time.windows.comの部分を自分が指定するNTPサーバーに変更して、「,0x9」の部分はそのまま追加します。0x9はビットごとに意味を持っており、0x9とは0x8(明示的なClient/Server Modeによる同期方法)と0x1(Windows上のみ実装された定間隔での同期方法)を合わせた意味になるとのことです。詳細は上記の@ITの記事を参照願います。

ただし、下記の記事などを見ると0x9と設定した場合0x8と0x1のどちらを優先するのかが分かりません。

デフォルトのtime.windows.comは時刻調整に失敗することが多いため、日本のサーバーに変更した方がよいでしょう。

例えばインターネットマルチフィードを使う場合は、「ntp.jst.mfeed.ad.jp,0x9」と設定します。

時刻調整を行うサービスである「Windows Time」サービスはデフォルトでは「手動(トリガー開始)」となっています。トリガーとは何かというと「Time Synchronization」というタスクがWindows Timeの起動と停止を行っているそうです。

ところが元々これらの機能がADでの時刻同期が目的のためか、個人用PCなどのワークグループ環境ではあまりうまく機能していないようです。PC間で時刻を同期させる必要が無いので当然なのですが時計が狂うのは困ります。

時刻同期を行うWindows Timeサービスを自動起動にしてもこのタスクによって止められる場合があるそうです。こちらの記事によると、

Windows Timeサービスのスタートアップを「手動」から「自動(遅延開始)」にすればよいとのことです。

時刻の同期

暫くすれば指定したNTPサーバーと時刻の同期が行われますが、すぐに同期させる場合は、管理者権限でコマンドプロンプトを開き、

w32tm /resync

と入力します。

C:\WINDOWS\system32>w32tm /resync
再同期コマンドをローカル コンピューターに送信しています
コマンドは正しく完了しました。

成功すればこのように表示されます。

Windows 10では「設定」アプリの「時刻と言語」の「日付と時刻」で「時刻を自動的に設定する」を一度「オフ」にしてから「オン」に戻すことで即座に同期が行われます。

また、NTPサーバーの設定で説明したようにコントロールパネルからも同期させることはできます。

まとめ

一度設定すれば、変更する必要はありませんので、Windowsをアップグレードした場合や、新しいパソコンを買ったときに一度だけ設定することを覚えておけばよいでしょう。

初心者はわかる人に設定してもらってください。

Amazonで見る
Pocket

4 comments

  • 匿名

    Windows10のNTPサーバー変更はレジストリエディタ使わなくても出来ましたよ。
    (コントロールパネルの日付と時刻からインターネット時刻の設定変更で直接入力)

    • Solomon

      コメントを頂き、ありがとうございます。

      コントロールパネルから従来の設定が起動できることに気付きませんでした。ありがとうございます。

      頂いた情報をもとに記事を修正させて頂きました。

  • nas

    初めまして
    記事中の例にあげられている ntp1.jst.mfeed.ad.jp ですが、複数設定できる場合ですので、その点を説明するか ntp.jst.mfeed.ad.jp の方が無難じゃないでしょうか
    自分はこの手の設定をまとめてエキスポートしていてOS再インストール等で一発設定できるようにしています
    サービスの起動指定ですが、自動(遅延起動)はこれで出来るんじゃないかと思います
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time]
    "Start"=dword:00000002
    "DelayedAutostart"=dword:00000001

    • Solomon

      コメントを頂き、ありがとうございます。

      御指摘頂いたように1台しか設定できない場合は「ntp.jst.mfeed.ad.jp」とのことですので記事を修正しました。

      レジストリー設定については、サーバー設定も含めて早急に記述を追加致します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*