Windows XP Professional を利用しています。当初ワークグループ構成で利用していた時には、「日付と時刻のプロパティ」の「インターネット時刻」タブで、図1のようにNTPサーバと時刻を同期させる設定を行なっていましたが、社内のActive Directoryドメインに参加を行なったところ、図2のようにこのタブがなくなってしまい、時刻の同期ができなくなってしまいました。
これはどうしてでしょうか?またどのようにすれば、時刻の同期ができるのでしょうか?
図1: ワークグループ構成時に表示される「インターネット時刻」タブ
図2: ドメインに参加すると、「インターネット時刻」タブが表示されなくなる
まず、Active Directoryドメインに参加すると「インターネット時刻」タブがなくなってしまうのは、Windows XP Professionalの仕様になっています。Active Directoryで利用されるKerberos認証を機能させる上では、クライアントとドメインコントーラと時刻が同期していることが必須条件になっているため、ドメインに参加した時点で、自動的にドメインコントローラ上のSNTPサーバと時刻の同期を行なうように設定が変更されてしまうためです。
しかし、Active Directoryを構成していてもどうしても外部の時刻サーバと時刻の同期を行ないたいという場合もあると思います。この場合は、w32tmコマンドを利用してレジストリの修正を行なってください。外部のntpサーバと時刻を同期させるためには、以下のようにしてコマンドを実行する必要があります。
C:\> w32tm /config /syncfromflags:MANUAL /manualpeerlist:<ntpサーバのホスト名やIPアドレス>
ただし、筆者が確認した限り、上記のように設定を行なうと時刻同期の間隔が1024秒毎に行なわれるよう、自動的に調整されてしまいます。
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\NtpClient 以下の SpecialPollInterval レジストリによる時刻同期間隔の設定を有効にしたい場合は、/manualpeerlist オプションの引数として、
C:\> w32tm (その他のオプション) /manualpeerlist:<ntpサーバのホスト名>,0x1
のように記述を行なって下さい。これでワークグループ構成の時と同様、上記レジストリによる秒単位での時刻同期間隔の調整が有効になります。
また、ドメインコントローラと同期させる設定に戻すには、以下のようにします。
C:\> w32tm /config /syncfromflags:DOMHIER
これらのコマンドにより、HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters 以下にある各種レジストリが修正されます。その他関連する情報として「JP307897: [HOW TO] Windows タイム サービスによる時刻の同期」を参照して下さい。
ここで紹介した以外にもw32tmコマンドにはさまざまな機能があります。オプションなしでコマンドを実行することで、ヘルプが表示されるので、興味がある方は一度機能を確認してみてください。
なお、筆者が確認した限り、
C:\> w32tm /config /syncfromflags:DOMHIER,MANUAL
のように、両方のオプションを指定することで、外部のNTPサーバとドメインコントローラの両方と時刻同期を行なうことも可能なことを確認しましたが、両方のタイムソースの値が大きく異なっていた場合などの動作が不明なため、安易に利用しないことを強く推奨します。
5. SNTP Client Operations ... A unicast client initializes the SNTP message header, sends the message to the server and strips the time of day from the reply. For this purpose all of the message-header fields shown above are set to 0, except the first octet. In this octet the LI field is set to 0 (no warning) and the Mode field is set to 3 (client). The VN field must agree with the software version of the NTP or SNTP server; however, NTP Version 3 (RFC-1305) servers will also accept Version 2 (RFC- 1119) and Version 1 (RFC-1059) messages, while NTP Version 2 servers will also accept NTP Version 1 messages. Version 0 (RFC-959) messages are no longer supported. Since there are NTP servers of all three versions interoperating in the Internet of today, it is recommended ~~~~~~~~~~~~~~~~~ that the VN field be set to 1. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~という記載にのっとったものだと考えられるが、これのため、NTPクライアントによっては、うまく時刻の同期ができないという事象が発生するようである。