WindowsのNTPサービスの仕様
Windows では NTP サーバとして「W32Time Service」 というプログラムが用意されています。
Windows 8.1 および Windows Server 2012R2 までの NTP の仕様については、MS の公式サイトに結構とんでもないことが書かれていました。
Windows Active Directory では NTP が必須となっています。これは AD ドメインのクライアントがドメインコントローラに対して Kerberos 認証を行う際に、5 分以上時刻がサーバとずれていることを許容しないためです。(セッションジャックを緩和するために時間制限を設けているため。)
しかし逆に言うと 5 分未満のずれであれば許容されるということで、W32Time サービスはこの仕様を基準に作られていたようです。
ですが Windows10 および Windows Server 2016 以降は高精度の時刻同期がサポートされたようです。
Windows 10 および Windows Server 2016 での時間の精度が大幅に向上し、以前のバージョンの Windows との NTP の完全な互換性が維持されています。 適切な動作条件下では、Windows 10 または Windows Server 2016 以降のリリースを実行しているシステムは、1秒、50ミリ秒 (ミリ秒)、または1ミリ秒の精度を提供できます。
Windows のクロックの取り扱い
Windows ではハードウェアクロックの時刻をそのままローカル時間として読み込むし仕様となっています。
つまり、ハードウェアクロックがUTCの状態でインストール済かつローカル時間が日本時間となっている Windows を起動すると、日本時間にも関わらず表示される時刻が UTC となるケースがあります。(主に時刻情報を VM に保存しない KVM 仮想環境)
WindowsのNTPクライアントの同期状態確認と設定確認の方法
Windows の NTP クライアントの同期状態は以下コマンドで確認できます。
> w32tm /query /status
また、Windows の NTP クライアントの設定は以下コマンドで確認できます。
> w32tm /query /configuration
コメント