Windows 11 の時刻がずれる(遅れる)場合の対処法

Windows 11 PC の右下タスクトレイ(通知領域)に表示される時刻が、いつの間にか数分ずれていて困っていませんか?

「設定」から「時刻を自動的に設定する」をオンオフしたり、「今すぐ同期」をクリックしたりすれば、その場では正しい時刻(例:20:00)に戻ります。しかし、数日経つとまた遅れてしまい(例:19:57)、オンライン会議や重要な作業に影響が出てしまう…。

この「頻繁に再発する時刻ずれ」は、Windows が標準で時刻を同期する間隔が、デフォルトでは非常に長く設定されていることが原因で発生します。

この記事では、その時刻同期の間隔をコマンドで強制的に変更するなど、Windows 11 の時刻ずれ問題を根本から解決するための具体的な対処法を分かりやすく解説します。

目次

Windows 11 の「時刻がずれる(遅れる)」原因と解決するコマンド

原因

Windows 11 の「時刻がずれる(遅れる)」原因は、Windows Time サービスがスパイク状態になっているためです。

わかりやすく言うと、通常よりも大きな時間差を検出した場合に、Windows Time サービスは、それを「スパイク」と判断します。 スパイク状態になると、Windows Time サービスは誤った時刻情報による急激な時刻のずれを防ぐため、自動的な時刻修正を一時的に抑制します。

つまり、この状態が続いているため、時刻の同期が行われないということです。

この問題の根本的な原因は、Windows の時刻同期の間隔が長すぎることにあります。

Windows はデフォルトで、NtpServerフラグに0x9を使用し、SpecialPollIntervalというレジストリ値に設定された固定間隔で同期を行います。

筆者の調査では、このSpecialPollIntervalの値は、古い OS では「7日間」、その後のバージョンで「約 9時間」でしたが、最新の Windows 11 バージョンでは 16384(秒)、つまり「約4.55時間」にまで短縮されていることを確認しています。

Microsoft も問題改善に取り組んでいるようですが、たとえ 4.55時間という「固定間隔」であっても、PC がスリープ状態などで同期のタイミングを逃せば、時計がズレて「スパイク」と判断されるリスクは依然として残っています。

解決するコマンドと仕組み

仕組み

この記事で紹介しているコマンドは、設定を 0x9 から 0x8 に変更します。これは、0x1 (SpecialPollInterval) フラグを無効にすることを意味します。

0x1フラグが無効になると、Windows Time サービスは「SpecialPollInterval(固定間隔)」の使用をやめ、代わりにMinPollInterval(最小約17分)からMaxPollInterval(最大約9時間)の間で、OS が自動調整する、より頻繁で柔軟なポーリング間隔を使用するようになります。

これにより、PC 起動中(オンライン中)に、より短い間隔で同期タイミングを見つけられるため、「スパイク」状態を根本的に防ぐことができます。

コマンド

1.まず初めに Windows Time サービスを開始します。コマンドプロンプトを管理者として開き、次のコマンドを入力して Enter を押します。

コマンドプロンプトの開き方を見る

1.Windowsキー + R を押して「ファイル名を指定して実行」を開きます。

2.「cmd」と入力します。

ファイル名を指定して実行
ファイル名を指定して実行

3.Shiftキー + Ctrlキーを押しながら Enter を押してください。

キーボード
キーボード

管理者権限が不要な場合は Enter のみで構いません。

4.「ユーザーアカウント制御」が表示されたら「はい」をクリックします。

ユーザーアカウント制御
ユーザーアカウント制御
net start w32time
コマンドプロンプト
コマンドプロンプト

2.「Windows Time サービスを開始します. Windows Time サービスは正常に開始されました。」と表示されたら、次のコマンドを入力して Enter を押します。

w32tm /config /update /manualpeerlist:time.windows.com,0x8
コマンドプロンプト
コマンドプロンプト

このコマンドを実行すると、時刻同期は 1024秒(約17分)から 32768秒(約9時間)までの間で自動的に調整されるようになります。

元に戻したい場合は、次のコマンドを入力して Enter を押してください。

w32tm /config /update /manualpeerlist:time.windows.com,0x9

3.続いて次のコマンドを入力して Enter を押します。

w32tm /resync
コマンドプロンプト
コマンドプロンプト

このコマンドを実行すると、すぐに時刻同期を行います。「コマンドは正しく完了しました。」と表示されない場合は、何度か実行するか、パソコンを再起動してみてください。

これで設定は完了です。

他に問題がなければ、以降は自動的に正しい時刻が表示されるようになります。

この設定は、Windows Update により 変更される場合があります。しばらくして時刻のずれや遅れが出た場合は、もう一度コマンドを実行してみてください。

コマンドで設定が反映されたか確認する方法

この記事で紹介したコマンド (...time.windows.com,0x8) が正しく適用されているか、そして現在どのくらいの頻度で同期が行われているかを確認する方法を紹介します。

管理者としてコマンドプロンプトを開き、以下のコマンドをそれぞれ実行してみてください。

1. 現在の「同期状態」と「ポーリング間隔」の確認

以下のコマンドを実行すると、現在の同期状態(最後にいつ同期したか)や、現在 PC が設定している同期の間隔を確認できます。

w32tm /query /status | findstr /C:"閏インジケーター" /C:"ソース" /C:"ポーリング間隔"

▼ 実行結果の例

閏インジケーター: 0 (警告なし)
参照 ID: 0x2851BC55 (ソース IP: 40.81.188.85)
ソース: time.windows.com,0x8
ポーリング間隔: 10 (1024s)

▼ 結果の見方

  • 閏インジケーター: これは「うるう秒」の調整に関する情報です。うるう秒(1秒追加または削除されること)が近い将来に予定されている場合、ここに警告が表示されます。0 (警告なし)と表示されていれば、正常な状態です。
  • 参照 ID: NTPサーバー(時刻サーバー)が提供する識別ID です。ソース IPとして表示されているのは、接続先の Microsoft サーバーの IPアドレスです。
  • ソース: time.windows.com,0x8 と表示されていれば、設定が反映されています。
  • ポーリング間隔: ここが非常に重要です。10 (1024s) のように表示されている場合、以下を意味します。

10 (1024s) の意味と計算方法

これは、Windows Time サービスがポーリング間隔(同期間隔)を「2 のべき乗 ($2^n$)」の値として管理しているために表示される専門的な表記です。

  • 10 の部分: 「$2^{10}$(2 の 10乗)」という設定値を意味します。
  • (1024s) の部分: $2^{10}$ を秒単位に計算した結果です。($2 \times 2 \times 2 \times 2 \times 2 \times 2 \times 2 \times 2 \times 2 \times 2 = 1024$秒)

$1024$秒を分に換算すると、

$1024 \div 60 = $ 約17.06分

となり、これが MinPollInterval(最小ポーリング間隔)のデフォルト値です。

この記事のコマンド(自動調整モード)を適用すると、PC はまずこの短い間隔(約17分)で同期を開始します。その後、PC の時計が安定していると判断すると、ネットワーク負荷を減らすために間隔を徐々に伸ばしていき、最大で MaxPollInterval($2^{15}$ = 32768秒 = 約9時間)まで長くなります。

ただし、PC を再起動したり、スリープから復帰したりすると、この間隔はリセットされ、再びこの短い間隔(1024s)から同期が開始されるため、時計が大きくズレることを防げるのです。

2. 設定(ルール)そのものの確認

以下のコマンドは、「現在の状態」ではなく、Windows に保存されている「設定(ルール)そのもの」を確認します。

w32tm /query /configuration | findstr /C:"NtpServer" /C:"SpecialPollInterval"

▼ 実行結果の例

SpecialPollInterval: 16384 (ローカル)
NtpServer: time.windows.com,0x8 (ローカル)
NtpServer (ローカル)

▼ 結果の見方

  • NtpServer:末尾のフラグが ,0x8 になっていれば、この記事のコマンド(自動調整モード)が正しく適用されている決定的な証拠です。(もし ,0x9 や ,0x1 などの奇数になっていたら、古い固定間隔モードのままです)
  • SpecialPollInterval:これは ,0x9(固定間隔)の時に使われる秒数(例:16384秒 = 約 4.55時間)です。設定が ,0x8 に変更された現在、この値は無視されていますので気にする必要はありません。
  • NtpServer (ローカル):単なる「見出し」です。

NtpServer のフラグが ,0x8 になっており、ポーリング間隔10 (1024s) のような短い秒数から始まっていれば、設定は完璧に成功しています。

この記事が「役立った!」と思ったら、ぜひSNSでシェアをお願いします。
  • URLをコピーしました!

この記事を書いた人

日々の PC 操作から生まれた疑問や、「もっとこうしたい」という想いを原動力に、2008年頃から現在に至るまで Windows の知識を独学で追求してきました。試行錯誤を重ねて見つけた「なるほど!」な技や、困った時の解決策を、皆さんの PC ライフに役立ててほしい一心で発信しています。

プロフィールを見る

コメント

コメントする

【投稿について】
記事の内容に関するご質問や情報提供は大歓迎です。
ただし、記事の趣旨と無関係な内容、特定の人物・団体への批判、攻撃的な表現、不適切な語句を含むコメントは、管理人の判断で予告なく削除・非公開とさせていただく場合があります。
また、スパム対策機能により自動的に削除される場合もありますのでご了承ください。

CAPTCHA


目次