Windows Time サービスによる時刻同期の基本と w32tm.exe コマンドについて

Published Date: feedback 共有

本記事はマイクロソフト社員によって公開されております。
こんにちは。Windows Commercial Support Directory Services チームです。
今回は、Windows Time サービス (W32Time) の基本的な役割と、Active Directory 環境における時刻同期の仕組みについて、基礎的な内容を中心にご紹介いたします。
また、後半では Windows Time サービスの動作確認やトラブルシューティングに利用する w32tm.exe の代表的なコマンドについてもご案内いたします。
時刻同期は普段あまり意識されることの少ない機能ではありますが、Active Directory 環境においては認証やセキュリティの前提条件となる非常に重要な要素となります。
本記事が皆様の時刻同期に関する理解の一助になれば幸いでございます。


Windows Time サービスとは

Windows Time サービス (W32Time) は、Windows OS に標準で搭載されている時刻同期を行うためのサービスです。
本サービスは NTP (Network Time Protocol) に従い、UDP ポート 123 を使用して、信頼できる時刻ソースから定期的に時刻を取得し、システム時刻を補正する役割を担っています。


なぜ時刻同期が重要なのか

ドメイン環境では、認証の既定プロトコルとして Kerberos が使用されます。
Kerberos は「チケット」と呼ばれる認証情報を用いますが、このチケットには有効期間が含まれています。
そのため、クライアント・ドメイン コントローラー・サービス間で時刻が大きくずれていると、チケットが有効期間外となり認証が失敗するシナリオが存在します。
そのためドメイン環境では、Windows Time サービスが NTP (Network Time Protocol) を用いて階層的な時刻同期を行います。
既定ではフォレスト ルート ドメインの PDC のドメイン コントローラーがドメイン内の最上位のタイム サーバーとなり、他のドメイン コントローラー、ドメイン メンバー コンピューターは自動的に同期先を選択します。
この構造により、ドメイン全体で一貫した時刻が保たれます。


Active Directory 環境における時刻同期

Active Directory 環境では、Windows Time サービスはドメイン階層に従った時刻同期を行います。
フォレスト ルート ドメインの PDC エミュレーターを外部 NTP サーバーと同期させ、その他のドメイン コントローラーやドメイン メンバー コンピューターを既定の動作 (NT5DS) とする場合、以下のような時刻同期構成となります。
このような構成により、ドメイン全体で一貫した時刻が維持される仕組みとなっています。

フォレスト ルート ドメインの PDC エミュレーター (PDCe)

フォレスト内の最上位の時刻ソースとして動作します。
外部 NTP サーバーなどの信頼できるタイム ソースと同期する構成とすることが一般的です。

その他のドメイン コントローラー

最大 6 個のクエリを活用し、同期する先のドメイン コントローラーを探索します。各クエリでは、信頼できる時刻ソースであるかや、同じサイトに所属しているかなどが考慮されています。
同期先に選定されるドメイン コントローラーは構成によって変化しますが PDCe が選択される場合が多いです。

ドメイン メンバー コンピューター

通常は、認証先のドメイン コントローラーと同期します。同期先は PDC エミュレーターに限らず、他のドメイン コントローラーが選択されることもあります。

補足:
Active Directory 環境における時刻同期の階層について、詳細は以下の弊社公開情報をご参照ください。
Windows タイム サービスのしくみ


w32tm.exe について

Windows Time サービス (W32time) の設定確認やトラブルシューティングを行う際には、w32tm.exe を利用します。
w32tm.exeでは、現在の時刻同期の状態や設定内容を確認することができます。
以下に、w32tm.exe の代表的なコマンドについてご紹介いたします。

注意:
WORKGROUP 環境や Microsoft Entra Join のみの環境では、Windows Time サービスのスタートアップの種類が [手動] であり、サービスが起動していない場合があります。その場合、w32tm.exe コマンドを実行してもサービスに接続できずエラーとなりますので、サービスを起動した上でコマンドを実行してください。


現在の時刻同期状態を確認するコマンド

現在の時刻同期状態を確認するには、以下のコマンドを実行します。

1
w32tm /query /status

本コマンドでは、以下のような情報が表示されます。
この結果に含まれる ソース: の情報から、時刻同期先の NTP サーバーを確認することができます。
なお、 ソース: の情報が “Local CMOS Clock” や “Free-runnning System Clock” である場合には時刻同期ができていないと判断できます。

1
2
3
4
5
6
7
8
9
10
C:\>w32tm /query /status
閏インジケーター: 0 (警告なし)
階層: 4 (二次参照 - (S)NTP で同期)
精度: -23 (ティックごとに 119.209ns)
ルート遅延: 0.0064089s
ルート分散: 7.7905363s
参照 ID: 0x142B5EC7 (ソース IP: x.x.x.x)
最終正常同期時刻: 2026/03/19 13:30:00
ソース: DC01.contoso.local
ポーリング間隔: 10 (1024s)

Windows Time サービスの構成を確認するコマンド

Windows Time サービスの構成内容を確認するには、以下のコマンドを実行します。

1
w32tm /query /configuration

本コマンドでは、以下のような情報が表示されます。
グループ ポリシーやレジストリによる設定がどのように反映されているかを確認する際に有効です。

  • 同期タイプ(NTP / NT5DS / AllSync など)
  • NtpServer の設定内容
  • ポーリング間隔に関する設定
  • AnnounceFlags の値

時刻同期を手動で実行するコマンド

Windows Time サービスによる時刻同期を手動で実行するには、以下のコマンドを使用します。
本コマンドでは、同期先の再探索を行ったうえで時刻同期を実行します。

1
w32tm /resync /rediscover

特定の NTP サーバーとの通信を確認する

特定の NTP サーバーとの時刻差を簡易的に確認する場合には、以下のコマンドを使用します。
本コマンドでは、指定した NTP サーバーとの時刻差がリアルタイムで表示されます。
ネットワーク疎通や応答遅延の確認を目的とした簡易的なテストとして利用されることがあります。

1
w32tm /stripchart /computer:<NTPサーバー名> /dataonly

参考情報

本記事でご紹介した内容の詳細については、以下の弊社公開情報をご参照ください。

更新履歴

2026/6/24 : 本ブログの公開