精密な時刻同期

■誤差1秒以内でも時刻同期する
(通常誤差1秒以内※であれば直ちに時刻同期しないslewモード)※誤差1.9秒以内

slewモードの有効範囲を変更する。

時刻が進みすぎている場合に時刻同期を行うと、急に時刻が後戻りして問題が発生することがあるので、Windows Timeサービスでも後戻りをしないように徐々に時刻を同期するslewモードという機能があり、何秒間時刻が進んでいる状態まで適用するかを変更することができる。通常この設定時間以内のずれならばslewモードによって徐々に時間が変更されるが、この設定時間以上ずれていると、slewモードではなく、Step モードとして直ちに時刻が変更される。

==========================================================
キー
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config

値の名前
MaxAllowedPhaseOffset


DWORD

値の内容
1     (単位は秒。ワークグループ環境のデフォルト値)
slewモードの有効範囲を変更するためのレジストリ設定

値を1 から 0にする

==========================================================

上記値変更で誤差1秒以内でもslewモードではなく直ちに時刻が変更されるStep モードになります。

 

更新2017/05/01↓

Windows10

※値を「0」に変更してもWindowsの制限で1秒以内の誤差はslewモードになるようです。
現時点では1秒以内の誤差をstepモードにする方法はみつかりません。

暫定的な同期方法としては時刻誤差を2~3秒以上大きくし時刻同期すると直ちに同期されます。

 

更新2018/04/17↓

Windows10最新

上記キー[MaxAllowedPhaseOffset]の値
1(デフォルト値)の場合は、1秒台(1.0秒~1.9秒)の認識となりslewモードの範囲です。誤差2.0秒以上の場合にStepモードで同期します。

0に変更するとslewモードの範囲が0~0.9秒の認識となり誤差1.0秒以上であれば、Step モードで同期するようです。

誤差が0.9秒以内の場合はstepモードにする方法はみつかりません。