皆様、こんにちは。
今回は、Windows 10 を使用していると、突然時刻が大幅に変わってしまう事象についてご説明いたします。
Windows 10 (TH2) から、新しい時刻同期の機能として、インターネット上の SSL サーバーと接続し、時刻を取得する Secure Time 機能が追加されております。
この機能にて取得した時刻情報は、以下レジストリキーに格納されます。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\SecureTimeLimits
そう、w32time 配下に新しく「SecureTimeLimits」というキーができました。
仕組みとしては、従来通り Windows Time サービスを使用して時刻同期先と時刻同期を実施しながら、更に時刻同期の精度をあげるために、Secure Time 機能も使用して時刻あわせを実施します。
Secure Time 機能が使用されるタイミングは、システム側で決めており、非公開情報となります。
検証レベルでは、システム再起動時や Windows Time サービスでの時刻同期に失敗すると参照していることを確認しております。
Secure Time 機能は、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\SecureTimeLimits 配下の値はインターネット上に存在する SSL サーバーと接続し、時刻を取得する仕組みとなっております。
つまり、https:// のサイトにアクセスすると、問題なくこのレジストリキー配下の値が更新されます。
インターネットに常に接続している場合は問題なく運用することができます。
しかし、Windows 10 をインターネット接続が限定的な環境もしくは、接続しない環境においてご利用いただいている際に、SecureTimeLimits 配下の値が適切に更新されず、正しいシステム日時が設定されない場合がある状況が発生することがあります。
この状態で運用を継続すると、Secure Time 機能が働いた時に、突然時刻が変わってしまいます。
この事象を回避するためには、以下のレジストリキーの値を変更いただき、、Secure Time 機能を無効化していただけますと幸いです。
- 手順
1. レジストリエディターを起動します。
2. 以下の値を確認し、設定変更します。
——————————————
レジストリキー : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
値の名前 : UtilizeSslTimeData
既定値 : 1
変更後の値 : 0
——————————————
3. システム再起動を実施します。
もしくは、Windows Time サービスを無効化し、net time コマンドを使用して時刻同期先と同期するように設定していただけますと幸いです。
最後に、本事象についての修正プログラムについてですが、TH2 の次期バージョンにて修正が含まれた形でのリリースを予定しております。
つまり、次期バージョンにアップグレードしていただいた際は本事象が発生することはありません。
現時点では、TH2 に対しての修正プログラムのリリース予定はありませんので、上記の対処策を実施してください。
本不具合に関して、アップデートがありましたら、適宜記事を更新しますので、今後とも何卒よろしくお願いいたします。