日程Fit|「いつ空いてますか?」の往復はもう不要。候補日を選んでURLを送るだけ|登録不要|今すぐ無料で使う →

Windows Serverの時刻が同期されない原因と対処法|PDCエミュレーターのNTP設定(W32Time/w32tm)

Windows Server の時刻が 2025年1月以降まったく同期されない状態を放置すると、Kerberos 認証エラー、ログの時刻ズレ、証明書や署名の検証失敗など、ドメイン全体に波及するトラブルへ発展しがちです。この記事では、対象サーバーが Active Directory ドメイン コントローラーで PDC エミュレーター役割を持つ前提で、W32Time(Windows Time サービス)の設定・復旧手順と、失敗しやすいポイントの切り分けまでをまとめます。

日程Fit。無料・登録不要。「いつ空いてる?」を、ひとつのリンクで。リンクを送って、○△×でかんたん日程調整。無料で日程を作る。
目次

時刻同期が止まると何が困るのか(症状の具体例)

「時刻の同期ができていない」問題は、単に時計がズレるだけではありません。特に Active Directory ドメインでは、時刻の整合性がセキュリティ機構の前提になっています。代表的な影響は次のとおりです。

  • Kerberos 認証が失敗する(既定の許容差は数分程度。ズレが大きいとログオンや共有アクセスが不安定になる)
  • ドメイン参加・GPO 適用・レプリケーションなどで断続的なエラーが出る
  • イベントログのタイムスタンプが信用できず、障害調査が難航する
  • 証明書の有効期間(NotBefore/NotAfter)に引っかかり、TLS 通信や署名検証が失敗する
  • バックアップ・監視・ジョブスケジューラの実行時刻が狂い、二次障害に繋がる

「2025年1月以降ずっと同期されていない」という状況は、ズレが蓄積している可能性が高いので、まずはドメイン内の“時刻の親”を正し、その後に末端へ波及させるのが最短ルートです。

Active Directory の時刻同期の仕組み(PDC エミュレーターが基準)

ドメイン環境では、時刻同期は階層構造になっています。重要なのは、PDC エミュレーター(PDC)役割を持つドメイン コントローラーが、事実上の「時刻の基準」になる点です。

基本方針は次のとおりです。

  • フォレスト ルート ドメインの PDC:外部(信頼できる NTP サーバー)と同期する
  • 同一ドメイン内の他の DC:ドメイン階層(通常は PDC)から同期する
  • メンバーサーバー/クライアント:ドメイン階層から同期する
役割推奨する同期元よく使う設定(概要)やりがちなミス
フォレスト ルートの PDC エミュレーター外部 NTP(社内標準/ISP推奨/公的)W32Time を NTP モード、信頼できる時刻ソースとして告知外部 NTP に出られない(FW/ルーティング/DNS)まま放置
同一ドメイン内の他 DCドメイン階層(通常は PDC)NT5DS(ドメイン階層)各 DC をバラバラの外部 NTP に同期させてズレが拡散
メンバーサーバー/クライアントドメイン階層自動(通常は触らない)ローカルで NTP を固定してドメインとズレる

今回の状況(対象が PDC の可能性が高い)では、まず PDC が外部 NTP と正しく同期できる状態を作ることが最優先です。PDC が正しくなれば、ドメイン内の他の端末は通常の階層同期で自然に揃っていきます。

作業前のチェックリスト(原因の当たりを付ける)

いきなりレジストリを触る前に、最低限ここだけは確認しておくと、復旧が速くなります。特に「実は PDC じゃなかった」「外部 NTP に通信できていなかった」の見落としが多いです。

確認項目コマンド/場所正常の目安異常の例
PDC エミュレーターかnetdom query fsmoPDC がこのサーバー名になっている別サーバーが PDC(役割移動済み)
現在の同期元(時刻ソース)w32tm /query /source外部 NTP 名が出る(PDCの場合)Local CMOS Clock / VM IC Time Synchronization Provider 等
W32Time サービスの状態sc query w32timeRUNNING(動作中)STOPPED、または無効化
タイムゾーン設定設定画面/tzutil /g運用の想定どおり(例:Tokyo Standard Time)タイムゾーンが別地域になっている
NTP 宛の通信可否w32tm /stripchart /computer:time.windows.com /samples:5 /dataonly遅延(ms)が表示されるタイムアウトや名前解決失敗
FW / NW機器で UDP 123 が通るかWindows Firewall / 社内FWUDP 123 が許可2025年1月頃に FW 変更、以後ブロック
仮想環境の「時刻同期」機能Hyper-V / VMware の設定PDC ではホスト同期が干渉しないホスト時刻に引っ張られて NTP と競合

ここで「PDC ではない」ことが判明した場合、この記事の“PDC向け設定”を入れると、ドメインの時刻階層を壊すことがあります。PDC 以外の DC/メンバーサーバーは、基本的にドメイン階層(NT5DS)に戻すのが先です(後半で戻し方を解説します)。

PDC エミュレーターで外部 NTP と同期させる復旧手順(レジストリ編)

ここからは「対象が PDC エミュレーターである」前提で、W32Time を外部 NTP 同期へ戻す手順です。レジストリ変更を伴うため、事前にバックアップ(システム状態/レジストリのエクスポート等)を取ってから進めてください。

設定全体のゴール

  • PDC が外部 NTP を参照して自分の時刻を正す
  • PDC がドメイン内へ「自分が信頼できる時刻ソースである」ことを告知する
  • ドメイン内の他の DC/クライアントは、通常の階層同期で PDC に追従する

レジストリで変更する主要項目一覧

どこを何にするのかが見えると安心して作業できます。以下は今回触ることが多い値の一覧です。

キー値名設定例意味/狙い
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\ParametersTypeNTPPDC が外部 NTP と同期するモードにする
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\ConfigAnnounceFlags0xAこのサーバーを信頼できる時刻ソースとして告知しやすくする
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServerEnabled1NTP サーバー機能(配布側)を有効にする
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClientEnabled1NTP クライアント機能(取得側)を有効にする
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\ParametersNtpServertime.windows.com,0x1 time.nist.gov,0x1 0.pool.ntp.org,0x1参照する外部 NTP を指定する
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\ConfigMaxPosPhaseCorrection3600(例)進む方向の補正許容値(秒)
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\ConfigMaxNegPhaseCorrection3600(例)遅れる方向の補正許容値(秒)

補足として、NtpServer 値に付ける 0x1 は「SpecialPoll(一定間隔でのポーリング)」として扱う構成でよく使われます。環境によっては 0x9(0x1 と 0x8 を併用)などが使われることもありますが、まずは社内標準の指定があるかを優先してください。

手順:Type を NTP に変更する(PDC を外部同期モードへ)

  1. レジストリエディター(regedit)を管理者権限で起動します。
  2. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters を開きます。
  3. Type をダブルクリックし、値のデータを NTP に変更します。

この設定が「PDC はドメイン階層(NT5DS)ではなく、外部 NTP を見に行く」という意味合いの核になります。

手順:このサーバーを権威あるタイムサーバーとして扱わせる

  1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config を開きます。
  2. AnnounceFlags0xA に設定します。

AnnounceFlags は「このサーバーが時刻ソースとしてどう振る舞うか」に影響します。PDC がドメイン内の基準になる以上、ここが曖昧だとクライアント側が別のソースを参照したり、階層が不安定になったりします。

手順:NTP サーバー機能(配布側)を有効にする

  1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer を開きます。
  2. Enabled1 に設定します。

PDC は「自分が外部同期する」だけでなく、「ドメイン内へ時刻を配る」側でもあります。ここが無効化されていると、PDC は同期していてもドメイン全体に広がりにくくなります。

手順:NTP クライアント機能(取得側)も有効にする

  1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient を開きます。
  2. Enabled1 に設定します。

稀に、ハードニングや誤設定で NtpClient 自体が無効になっているケースがあります。この場合、NtpServer を有効にしても「外部へ取りに行けない」ので復旧しません。

手順:外部 NTP サーバーを指定する

  1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters に戻ります。
  2. NtpServer を編集し、参照したい NTP を設定します。

設定例:

time.windows.com,0x1 time.nist.gov,0x1 0.pool.ntp.org,0x1

運用上のポイント:

  • 複数指定しておくと、片方が落ちても同期が継続しやすい
  • 社内に NTP サーバー(GPS 受信機や NTP アプライアンス)があるなら、まずそれを優先する
  • 名前解決が不安定な環境では、暫定的に IP アドレス指定で切り分けするのも有効
  • pool.ntp.org を使うなら、地域に合わせた pool(例:jp.pool.ntp.org 系)を検討するとレイテンシが安定しやすい

手順:時刻補正の許容範囲を見直す(大きくズレている環境向け)

「2025年1月以降ずっと同期されていない」なら、数分どころか数時間単位でズレている可能性があります。W32Time は設定によっては“大きなズレを補正しない”動作になるため、復旧時はここがボトルネックになりがちです。

  1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config を開きます。
  2. MaxPosPhaseCorrection(進む方向)と MaxNegPhaseCorrection(遅れる方向)を適切に設定します。
目的設定例(秒)考え方注意点
復旧を最優先(ズレが大きい可能性)86400(24時間)〜 172800(48時間)まずは同期させて正しい時刻へ戻す復旧後に、運用ポリシーに沿って見直す
通常運用(大きな跳ねを避けたい)3600(1時間)など急激な時刻ジャンプを抑制するズレが大きい状態だと同期が成立しないことがある

復旧段階では大きめに許容し、同期が安定してから必要なら絞る、という二段階にすると失敗しにくいです。

サービス再起動と同期の強制(必ず実施)

レジストリを変更しただけでは、W32Time が古い設定のまま動いていることがあります。サービスの再起動と明示的な再同期までセットで実行してください。

Windows Time サービスの再起動

net stop w32time
net start w32time

時刻同期の手動実行

w32tm /resync /nowait

同期状態の確認(最低限ここまで)

w32tm /query /status
w32tm /query /source
w32tm /query /peers

確認時に見るべきポイントは次のとおりです。

  • /query /source が外部 NTP(指定した名前)になっているか
  • /query /status の「Last Successful Sync Time(最終成功時刻)」が更新されるか
  • Stratum が極端におかしくないか(常に 16 のまま等は未同期のサイン)

「同期できているか」をもう一段確実にする検証方法

見た目上は同期しているようでも、実際は参照先が変わっていない/一定時間後に落ちる、というケースがあります。次の確認で「通信できているか」「ズレが収束しているか」を確認します。

NTP へ到達できているか(stripchart)

w32tm /stripchart /computer:time.windows.com /samples:10 /dataonly

タイムアウトせず、差分が数十ms〜数百ms程度で揺れるのは一般的です(回線品質や距離で変動します)。ここがまったく返らない場合、DNS/FW/ルーティングの問題を疑います。

ドメイン内の複数機でズレを俯瞰する(monitor)

w32tm /monitor

ドメイン内の DC 間で大きなオフセットが出ている場合、PDC 以外の DC が別ソースに引っ張られている、仮想基盤の時刻同期が干渉している、などが典型です。

イベントログ(W32Time)の確認

コマンドで状況が掴めないときは、イベントログが一番確実です。

  • イベント ビューアー → Windows ログ → システム
  • ソース(例):Time-Service / W32Time などでフィルター

「NTP サーバーに到達できない」「同期できない理由」が文章で出るため、切り分けが一気に進みます。

よくある失敗パターンと切り分け(2025年1月以降止まったケースで多い順)

症状原因の候補確認方法対処
/query /source が Local CMOS Clock のままType が NTP になっていない/設定反映前w32tm /query /configurationType を NTP、サービス再起動、/resync
/resync しても「同期できない」系のメッセージUDP 123 がブロック/NTP へ出られないw32tm /stripchart ...FW/NW機器で UDP 123 を許可、DNS 解決確認
一瞬同期するが、しばらくするとズレる仮想基盤の時刻同期が干渉(ホスト時刻に上書き)/source が VM IC Provider などになるPDC では仮想基盤の時刻同期機能を見直す
ズレが大きすぎて同期しない補正許容範囲が小さい/ポリシーで制限MaxPos/MaxNeg を確認復旧時は許容値を大きく、必要なら手動で概ね合わせてから再同期
2025年1月頃から急に止まったネットワーク変更、FW更新、DNS変更、GPO変更変更履歴/イベントログまず通信経路と名前解決を復旧し、次に W32Time 設定を整える
対象が PDC ではなかったFSMO 役割が別 DC に移っているnetdom query fsmo本当の PDC に外部 NTP を設定し、対象は NT5DS へ戻す

PDC 以外だった場合:ドメイン階層(NT5DS)へ戻す手順

「このサーバーが PDC だと思っていたが違った」場合は、まず正しい PDC を特定し、そちらに外部 NTP を設定してください。対象サーバー(PDC ではない DC/メンバーサーバー)は、基本的にドメイン階層から時刻を取る設定(NT5DS)に戻します。

コマンドでドメイン階層同期に戻す(推奨)

w32tm /config /syncfromflags:domhier /update
net stop w32time
net start w32time
w32tm /resync /nowait

戻ったか確認

w32tm /query /source
w32tm /query /status

PDC 以外では、/source がドメイン内の上位(多くは PDC)を指す形になれば概ね OK です。

外部 NTP がどうしても使えないときの現実的な落としどころ

セキュリティ要件やネットワーク設計で「サーバーからインターネットへ UDP 123 を出せない」環境は珍しくありません。その場合は、次のいずれかを検討します。

  • 社内ネットワーク上に NTP 中継(内部 NTP サーバー) を立て、PDC はそこへ同期する
  • 境界で NTP を許可するのが難しいなら、監視・運用チームと合意できる“時刻の出どころ”(閉域内の基準)を設ける
  • どうしても外部と切り離すなら、少なくともドメイン内だけは PDC を基準に揃えて、Kerberos の安定性を優先する

この場合でも、PDC が「信頼できる時刻ソースとして告知する」設定(AnnounceFlags 等)は意味があります。

復旧後にやっておくと強い:再発防止の運用ポイント

NTP サーバーは複数指定し、優先順位と冗長性を持たせる

単一の NTP に依存すると、相手が落ちた瞬間に同期が止まります。社内標準がない場合でも、最低 2〜3 個は指定しておくと安定します。

監視に組み込む(「ズレの検知」と「同期できていない検知」を分ける)

監視は「時刻がズレている」と「同期が成立していない」を分けると、誤検知が減ります。たとえば次の観点です。

  • w32tm /query /status の最終同期時刻が一定時間更新されない
  • イベントログに W32Time のエラーが継続して出ている
  • ドメイン内の代表サーバー同士で時刻差が閾値を超えた

PDC が仮想環境の場合は「ホスト同期」との競合に注意

Hyper-V や VMware などの仮想化基盤には「ホストとゲストの時刻を合わせる」機能があります。一般的なゲストでは便利ですが、PDC はドメインの基準になるため、外部 NTP と競合して時刻が不安定になることがあります。PDC が仮想で運用されている場合は、仮想基盤側の時刻同期ポリシーを一度見直してください(ただし、基盤や運用ルールによって最適解は変わるため、むやみに一律オフにせず“競合しているか”を事実ベースで確認するのが安全です)。

最終チェック:復旧できたと言い切れる状態

最後に、次の条件を満たしていれば「同期が復活した」と判断しやすいです。

  • PDC の w32tm /query /source が外部 NTP を指している
  • PDC の w32tm /query /status の最終同期時刻が更新される
  • ドメイン内の他 DC/メンバーが ドメイン階層(PDC 方向) を時刻ソースとしている
  • ドメイン内の主要サーバー間の時刻差が、運用上許容できる範囲に収束している
  • W32Time のイベントログに継続的なエラーが出ていない

もし PDC 側を直してもドメイン内のズレが残る場合は、「他の DC やサーバーが独自 NTP に固定されている」「仮想基盤の時刻同期が残っている」「GPO で W32Time を上書きしている」など、末端側の要因が残っていることが多いです。まずは PDC の基準を固め、次に“例外設定になっている端末”を潰していく順序が最も安全です。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次