Windowsタイム サービスは、Active Directoryで重要です。既定では、Kerberos 認証では、ドメイン内のすべてのマシンのクロックが、タイム ゾーンの違いと夏時間に合わせて修正されたときに、相互に 5 分以内に同期する必要があります。クロックがこの範囲外のマシンは認証できず、ドメイン リソースにアクセスできません。
ADドメイン内では、PDCエミュレーターのFSMOの役割を持つドメイン コントローラー(DC)は、ドメイン全体のプライマリー タイム サーバーです。ただし、ドメイン内のすべてのマシンがその時計をPDCエミュレーターと直接同期するわけではありません。他のDCはPDCエミュレーターと同期し、メンバー サーバーとクライアントはどのDCとも同期できます。この階層では、PDCエミュレーターは、パブリックNTPサーバーなどの外部のタイム ソースと同期するように構成された唯一のマシンである必要があります。ドメイン内のその他すべてのマシンは、ADと同期するように構成する必要があります。それ以外の設定を行うと、時計の同期が失われる可能性があります。
Windows タイム サービスのしくみの詳細については、 この TechNet サイト を参照してください。
問題の程度を判断する
Windowsタイム サービスに関する問題のトラブルシューティングの最初のステップでは、影響を受けるマシンの数を確認する必要があります。1台のマシンのみの時刻が正しくない場合、問題を解決するために必要な手順は、ドメイン全体の時刻の問題を修正するために必要な手順とは異なります。
2、3台のマシンのみが影響を受ける場合
- 影響を受けたマシンがWindows Vista以降を実行している場合は、コマンド プロンプトでw32tm /query /sourceを実行し、影響を受けるマシンのタイム ソースを判断します。このコマンドがPDCエミュレーターで実行された場合にのみ、外部タイム ソースが出力されます。それ以外の場合は、このコマンドによりドメイン内のDC名が出力されます。
- また、w32tm /query /statusコマンドは、マシンのタイム ソースやその他の役立つ可能性のある情報も表示します。/verboseスイッチでは、さらに詳細な情報を提供します。最初のコマンドと同様に、これらのスイッチはWindows Vista以降を実行しているマシンでのみ使用できます。
- 正しいタイム ソースが表示されている場合は、w32tm /resyncを使用して、マシンの時刻をタイム ソースと再同期することができます。このコマンドに/rediscoverスイッチを追加すると、マシンは最初にネットワークのタイム ソースを検出してから再同期を試行します。
- マシンのタイム ソースを変更するには、次の2つのコマンドのいずれかを使用できます。
w32tm /config /syncfromflags:DOMHIER /updateは、タイム ソースとしてドメイン階層(AD)を使用するようにマシンを構成します。
w32tm /config /syncfromflags:MANUAL /manualpeerlist:<list> /update は、リスト>内の<タイム サーバーをタイム ソースとして使用するようにマシンを構成します。
メモ: list> に<複数のタイム サーバーを指定する場合は、スペースで区切り、リスト全体を引用符で囲む必要があります。
ドメイン全体が影響を受ける場合
- ドメイン内のすべてのマシンの時刻が正しくない場合は、PDCエミュレーターが問題の原因となっている可能性が高くなります。DC上でnetdom query fsmoコマンドを実行して、どのDCがPDCエミュレーターの役割を保持しているかを確認します。
- PDCエミュレーターで、コマンド プロンプトからw32tm /query /sourceを実行して、外部のタイム ソースと同期するように構成されていることを確認します。PDCエミュレーターはドメインのプライマリー タイム ソースであるため、PDCエミュレーターをドメインと同期するように構成しないでください。
- PDCエミュレーターが仮想マシン(VM)である場合は、ゲスト-ホスト間の時刻同期を無効にします。これを行う手順は、仮想化ホストで実行されているオペレーティング システムによって異なります。
- 1つ以上の外部タイム サーバーと同期するようにPDCエミュレーターを構成するには、次のコマンドを使用します。
w32tm /config /syncfromflags:MANUAL /manualpeerlist:<list> /update
メモ: list> に<複数のタイム サーバーを指定する場合は、スペースで区切り、リスト全体を引用符で囲む必要があります。
Windowsタイム サービスのレジストリー設定
上記の手順で説明したw32tmコマンドは、Windowsタイム サービスのレジストリー値に変更を加えます。これは、次のレジストリー キーの下にあります。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time
これらの値は、w32tmコマンドを使用するのではなく、手動で設定することができます。手動で設定する場合は、次のサイトが役に立ちます。
グループポリシー
W32tmコマンドまたはレジストリーを使用してWindowsタイム サービスに変更を加えても、それらの変更がまったく適用されない場合や、変更が短時間適用されたあと元の値に戻る場合は、行った変更がグループ ポリシー オブジェクト(GPO)で上書きされている可能性があります。Windowsタイム サービスのグループ ポリシー設定には、レジストリーまたはw32tmコマンドを使用して設定可能な同一項目が多く含まれています。これらの設定は、次の場所にあります。
Computer Configuration\Policies\Administrative Templates\System\Windows Time Service
Windowsタイム サービスのレジストリー値をデフォルト設定にリセットする
それ以外に方法がない場合は、次の手順を実行して、Windowsタイム サービスをデフォルト設定にリセットします。
- サービス コンソールを開いて、実行されている場合はWindowsタイム サービスを停止します(または、コマンド プロンプトからnet stop w32timeを実行します)。
- 管理者特権でコマンド プロンプトを開き、w32tm /unregisterを実行して、レジストリーからWindowsタイム サービスを削除します。サービスがサービスコンソールに表示されなくなります。
- W32tm /registerを実行して、このサービスをデフォルトのレジストリー設定で再作成します。
- 必要なレジストリーの変更を行い、サービス コンソールで、またはnet start w32timeコマンドを使用して、Windowsタイム サービスを開始します。