皆様、こんにちは。Windows プラットフォーム サポート担当の藤田です。
今回は、Windows Time サービスの警告イベント ID:36 についてご案内します。
=======================================================
[1] ID 36 の警告についての説明
=======================================================
システム
ログに以下のような イベントが記録されたことはありませんか?
-----
イベントの種類: 警告
イベント
ソース: W32Time
イベント ID: 36
説明:
使用可能なタイムスタンプがタイム サービス プロバイダーによって提供されなかったため、タイム サービスは 86400 秒間、システム時刻を同期していません。タイムサービスは、タイム ソースと同期できるようになるまで、ローカルのシステム時刻を更新しません。ローカル システムがクライアントの時刻サーバーとして機能するように構成されている場合は、タイムソースとしてクライアントにアドバタイズすることを止めます。タイム サービスは継続してタイム ソースとの同期を試みます。詳細については、他の W32time イベントのシステム イベント ログを確認してください。'w32tm /resync' を実行すると、時刻の同期を即座に強制実施できます。
-----
何か問題が発生しているのか、気になりますよね?
この警告イベントは、主にイベントの記録対象となったクライアントが、同期先の NTP サーバーと最後に同期を行ってから 24 時間、同期が行われなかった際に記録されます。
実は、これだけでは問題が発生しているかどうかの判断ができず、無視してもいい場合とそうではない場合があります。
この記事では、無視しても良いか否か判断する方法をお伝えします。
=======================================================
[2] 時刻同期の間隔について
=======================================================
このイベントを無視しても良いか否かは、時刻同期間隔によって決まります。
時刻同期間隔が 24 時間以上に設定されている場合は、 ID:36 を無視しても問題ありません。
時刻同期間隔が 1 時間などの短い間隔で設定されているにもかかわらず、ID:36 が記録されるのであれば、問題が起きている可能性が高いと判断できます。
時刻同期間隔は以下のレジストリキーの値によって、SpecialPollInterval レジストリ値を時刻同期間隔とするのか、MaxPollInterval と MinPollInterval レジストリ値を時刻同期間隔とするのか、決定します。
時刻同期の方法を指定するレジストリキー
--------------------------
レジストリキー:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
値の名前:Type
--------------------------
時刻同期先を指定するレジストリキー
--------------------------
レジストリキー:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
値の名前:NtpServer
値のデータ:時刻同期先の IP アドレス,フラグ
--------------------------
時刻同期の方法を指定するレジストリキーに「NTP」「AllSync」が指定されている場合は、時刻同期先を指定するレジストリキーの値のデータを参照します。
時刻同期先を指定するレジストリキーの値のデータに設定していただくフラグについて、ご説明させていただきます。
フラグの設定は任意です。設定しなかった場合は、いずれのフラグも設定されていないものとして扱われます。
フラグを設定する場合、下記のパラメータを指定します。
0x1 - SpecialPollInterval レジストリ値を同期間隔として使用して時刻同期を行います。設定されていない場合は、MaxPollInterval と MinPollInterval レジストリ値を同期間隔として使用して時刻同期を行います。
0x2 - UseAsFallbackOnly モードを使用します。優先的に同期を行うよう設定されている NTP サーバーが使用不可の場合に同期を取るサーバーとして設定されます。
0x4 - SymmetricActive モードとして要求を送信します。お互いが同期を取る時刻同期方法となります。
0x8 - Client モードとして要求を送信します。サーバー、クライアント、という区分を行い、クライアントからサーバーに対してのみの、一方通行の時刻同期を行います。
例えば、SpecialPollInterval で指定された時間の同期間隔かつ、Client モードとして動作させたい場合は、0x9 (0x1 + 0x8) を設定していただくなど、組み合わせて設定していただくことも可能です。
なお、ドメイン環境において、時刻同期の方法を指定するレジストリキーに「NT5DS」が設定されている場合は、時刻同期先を指定する NtpServer のレジストリキーの値は無視されます。
そして、MaxPollInterval と MinPollInterval レジストリ値を同期間隔として使用して時刻同期を行います。
--------------------------
SpecialPollInterval
--------------------------
レジストリキー: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient
値の名前: SpecialPollInterval
ワークグループ環境の既定値 : 604800
ドメインメンバーの既定値 : 3600
ドメインコントローラーの既定値 : 3600
--------------------------
MaxPollInterval
--------------------------
レジストリキー: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W32Time\Config
値の名前: MaxPollInterval
ワークグループ環境の既定値 : 15
ドメインメンバーの既定値 : 15
ドメインコントローラーの既定値 : 10
--------------------------
MinPollInterval
--------------------------
レジストリキー: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W32Time\Config
値の名前: MinPollInterval
ワークグループ環境の既定値 : 10
ドメインメンバーの既定値 : 10
ドメインコントローラーの既定値 : 6
--------------------------
※ MaxPollInterval と MinPollInterval を使用する場合は、実際には 2 のべき乗で時刻同期間隔が計算されます。
**********************************************
ワークグループ環境
**********************************************
既定の状態で、SpecialPollInterval の値を使用して時刻同期を実施した場合、 1 週間に 1 度時刻同期します。
よって、ID:36 が記録された場合、無視しても問題ありません。
既定の状態で、MaxPollInterval と MinPollInterval の値を使用して時刻同期を実施した場合、約 17 分から約 9 時間の範囲内で時刻同期が行われるようになります。
よって通常は ID:36 は記録されません。記録された場合は、何か問題が生じている可能性が高いので、正常に時刻同期が行えているかの確認を行うべき、ということになります。
**********************************************
ドメインメンバー
**********************************************
既定の状態で、SpecialPollInterval の値を使用して時刻同期を実施した場合、1 時間に 1 度時刻同期します。
MaxPollInterval と MinPollInterval の値を使用して時刻同期を実施した場合、約 17 分から約 9 時間の範囲内で時刻同期が行われるようになります。
よって通常は ID:36 は記録されません。記録された場合は、何か問題が生じている可能性が高いので、正常に時刻同期が行えているかの確認を行うべき、ということになります。
**********************************************
ドメインコントローラー
**********************************************
既定の状態で、SpecialPollInterval の値を使用して時刻同期を実施した場合、1 時間に 1 度時刻同期します。
MaxPollInterval と MinPollInterval の値を使用して時刻同期を実施した場合、約 1 分から約17 分の範囲内で時刻同期が行われるようになります。
よって通常は ID:36 は記録されません。記録された場合は、何か問題が生じている可能性が高いので、正常に時刻同期が行えているかの確認を行うべき、ということになります。
=======================================================
[3] 他に注意すべき点
=======================================================
警告 ID:36 については、上記に記述した内容に加えて、3 つの注意点があります。
-----------------------------------------
1.ワークグループ環境のトリガー起動サービス
-----------------------------------------
ワークグループ環境にて、SpecialPollInterval の値を時刻同期間隔とする場合、ID:36 が記録されないようにする方法として、SpecialPollInterval の間隔を86400 秒 (1 日) より小さい値に設定する方法があります。
ここで、注意しなければならないのが、トリガー起動サービスです。
ワークグループ環境では既定で 時刻同期を行う Windows Time サービスが停止しています。
時刻同期するためにはこのサービスを起動しておく必要があります。
しかし、ワークグループ環境のWindows Server 2008 R2 の既定の設定では、Windows Time サービスを自動的に停止させる設定が有効になっております。
このため、時刻同期の間隔を色々と調整しても、実際には一週間に一度しか時刻同期が行われず、ID 36 の警告が記録されてしまいます。
これに対処するためには、以下のコマンドを実行して Windows Time サービスのトリガー起動サービスを削除し、Windows Time サービスを自動起動に設定する方法があります。
c triggerinfo w32time delete
トリガー起動サービスについては以下の公開ドキュメントがございます。
あわせてご確認ください。
Windows 7 および Windows Server 2008 R2 のスタンドアロン環境で Windows Time サービスが自動的に起動しない
http://support.microsoft.com/kb/2385818/ja
-----------------------------------------
2. KB2493006 の問題
-----------------------------------------
Windows Time サービスが起動していて、時刻同期間隔は 24 時間以内であるにも関わらず、ID:36が記録される場合、Windows Time サービスが UDP123 番ポートを正しくバインドできていないという既知の不具合が発生している可能性が考えられます。
KB2493006 の問題の詳細については、以前の記事「Windows Time サービスを使用した時刻同期に必要なネットワーク通信について」をご確認いただければと存じます。
-----------------------------------------
3. NTP サーバーとして動作させる場合
-----------------------------------------
NTP サーバーとして動作しているマシンにおいて、ID:36 が記録される場合、上位のNTP サーバーからの時刻を正常に受信できていないと判断して、下位 NTP サーバーに正しい時刻同期情報が配信されない可能性があります。
また、NTP サーバーとして動作させるのであれば、既定の設定ではなく、もう少し短い間隔で上位のNTP サーバーと時刻同期を行うようにした方が、安定した時刻の配信を行う上では望ましいです。
今回は、以上です!!