Windows の NTP クライアント機能 (w32tm) を Slew モードで構成する方法

  1. トリガー開始を停止
    • 管理者権限でコマンドプロンプトを起動して次のコマンドを実行
      • sc triggerinfo w32time delete
  2. レジストリエントリを設定する
    • 次のような reg ファイルを作成して登録する
      • ntp_configure.reg
        Windows Registry Editor Version 5.00
        
        [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters]
        "NtpServer"="ntp.example.net,0x8"
        "Type"="NTP"
        [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\Config]
        "MinPollInterval"=dword:00000006
        "MaxPollInterval"=dword:0000000a
        "MaxAllowedPhaseOffset"=dword:0000012c
        "PhaseCorrectRate"=dword:00000007
        "UpdateInterval"=dword:00000064
        
      • 各値の意味
        NtpServer 同期するサーバーアドレス,同期間隔モード (同期モード 0x8 は RFC に準拠した間隔で同期するという意味)
        Type 同期先 ("NTP" は "NtpServer" に設定された値を使うという意味)
        MinPollInterval 最小同期間隔 (2 のべき乗を 16 進数で; ここでは 2^6 で 64 秒)
        MaxPollInterval 最大同期間隔 (2 のべき乗を 16 進数で; ここでは 2^10 で 1024 秒)
        MaxAllowedPhaseOffset Slew モードでの同期を試行する最大時刻差 (秒を 16 進数で; ここでは 300 秒, 時刻差がこの値を超えている場合即座にシステム時刻が変更される)
        PhaseCorrectRate サーバーから受信した値とシステム時刻を同期する速度を設定する値
        UpdateInterval システム時刻を変更する間隔を設定する値
      • PhaseCorrectRate の値を大きく、UpdateInterval の値を小さくすると同期精度が高まりますが、Slew モードで同期を試行する条件が変化します。通常は既定値のままでも問題ありません。
  3. サービスを設定する
    • ファイル名を指定して実行 -> services.msc -> Windows Time
      • 「スタートアップの種類」を「自動」に変更
      • 「開始」ボタンを押す
  4. 同期状態の確認方法
    • コマンドプロンプトから w32tm コマンドで確認可能
      • 例:
        w32tm /query /status & w32tm /query /peers
        閏インジケーター: 0 (警告なし)
        階層: 2 (二次参照 - (S)NTP で同期)
        精度: -23 (ティックごとに 119.209ns)
        ルート遅延: 0.0004809s
        ルート分散: 0.0105835s
        参照 ID: 0x790111E6 (ソース IP:  203.0.113.254)
        最終正常同期時刻: 2021/05/15 18:06:40
        ソース: ntp.example.net,0x8
        ポーリング間隔: 4 (16s)
        
        ピア数: 1
        
        ピア: ntp.example.net,0x8
        状態: アクティブ
        残り時間: 13.9490191s
        モード: 3 (クライアント)
        階層: 1 (主参照 - 電波時計で同期)
        ピアポーリング間隔: 4 (16s)
        ホストポーリング間隔: 4 (16s)
        

注: 設定アプリの「日付と時刻の調整」から時刻同期関連の設定を変更すると、正しく動作しなくなることがあります。