概要
Windows PC(クライアント)の時刻が同期されない事象(時刻が遅れている)が,現場から報告されてきたので,WindowsにおけるNTPサーバ/クライアントの設定方法を調査した。調査して分かったことや対策内容などを備忘録として記載する。間違っていたら,ご教授・ご指摘お願いします。
実機環境(前提条件)
対策方法
NTPサーバで設定・確認すべきと思われる項目
-
NTPサーバを権限があるNTPサーバとして公開する
レジストリエディタにより,サブキー「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControSet\services\W32Time\Config」の「AnnounceFlags」を次のように変更する。データ値を「10」から「5」に変更することで,NTPサーバを「権限があるNTPサーバ」として設定する。
・値名:AnnounceFlags
・型:REG_DWORD
・データ:0x0000000a(10)(デフォルト) → 0x00000005(5) -
NTPサーバの有効設定
レジストリエディタにより,サブキー「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControSet\services\W32Time\TimeProviders\NtpServer」の「Enabled」を次のように変更する。データ値を「0」から「1」に変更することで,NTPサーバを有効にする。
・値名:Enabled
・型:REG_DWORD
・データ:0x00000000(0)(デフォルト) → 0x00000001(1)
NTPクライアントで設定・確認すべきと思われる項目
-
インターネット時刻サーバの同期設定
Windows10におけるインターネット時刻サーバの時刻同期設定方法を記載する。Windows10以外は,各自で調査してほしい。
タスクバー上の時刻を右クリック→「日付と時刻の調整」→右のコンテキストメニューの「別のタイムゾーンの時計を追加する」→「日付と時刻」設定画面で「インターネット時刻」タブを選択する→「設定の変更(C)…」→「インターネット時刻設定」画面(下記参照)で以下を設定・確認する。
・「インターネット時刻サーバーと同期する」にチェックを入れる。
・サーバーに「時刻サーバーのドメインやIPアドレス」を入力する。
Windows10の場合,デフォルトの時刻サーバーは,「time.windows.com」と「time.nist.gov」がある。「time.windows.com」は,Microsoftのタイムサーバーである。「time.nist.gov」は,米国の国立標準技術研究所のタイムサーバーである。
-
NTPサーバとの時刻同期間隔設定
レジストリエディタにより,サブキー「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControSet\services\W32Time\TimeProviders\NtpClient」の「SpecialPollInterval」を環境に合った値に変更する。
・値名:SpecialPollInterval
・型:REG_DWORD
・データ(Win10):0x00008000(32,768)(デフォルト:9時間6分8秒)
・データ(Win7):0x00093A80(604,800)(デフォルト:7日) -
NTPクライアントの有効設定
レジストリエディタにより,サブキー「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControSet\services\W32Time\TimeProviders\NtpClient」の「Enabled」が「1」になっていることを確認する。
・値名:Enabled
・型:REG_DWORD
・データ:0x00000001(1)(デフォルト)
参考サイト
Windows NTPサーバー設定手順 (2023/4/29時点閲覧可能)
所感
今回の調査により,NTPの仕組みがなんとなく分かったので,別記事でNTPの仕組みや状態遷移ついても記載・調査する。また,Microsoftのコマンドラインツール「W32tm.exe」があることも知ることができた。今度試してみようと思う。