注意

本記事は特定環境(Windows 11 + PowerShell 7.6.1)での対応記録です。 Windowsのバージョンやサービスの初期状態により挙動が異なる場合があります。

はじめに

Windowsの時刻同期サーバーを既定のtime.windows.comから、日本国内のNTPサーバーへ変更し、複数サーバーで冗長化する作業を行いました。

この記事では、設定変更の手順と、その過程で発生した0x80070426エラーの解消方法を記録します。

原因

原因は「w32timeサービスが停止状態だったため、w32tm /config /updateの反映ができなかった」ことでした。

サービスを開始してから設定コマンドを再実行することで解消できます。

環境

項目内容
OSWindows 11
シェルPowerShell 7.6.1(管理者権限)
変更前NTPサーバーtime.windows.com(既定)
変更後NTPサーバーntp.nict.jp、ntp1.jst.mfeed.ad.jp、ntp2.jst.mfeed.ad.jp

背景

既定のtime.windows.comは海外サーバーであり、ネットワーク経路や精度の観点から、日本国内のNTPサーバーを参照したいケースがあります。

国内で利用できる代表的な公開NTPサーバーは次の2系統です。

  • NICT(情報通信研究機構): ntp.nict.jp
    • 日本標準時を管理する公的機関が運用しており、Stratum 1(電波時計直結)です。
  • MFEED(インターネットマルチフィード): ntp.jst.mfeed.ad.jp
    • IIJやNTTコミュニケーションズなどが出資する企業が運用しており、ntp1〜ntp3.jst.mfeed.ad.jpの3台構成です。

単一事業者への依存を避けて可用性を高めるため、両系統を組み合わせた3サーバー構成(NICT 1台 + MFEED 2台)を採用しました。

設定手順

想定していたコマンド

当初、管理者権限のPowerShellで次のコマンドを実行するだけで完了する想定でした。

w32tm /config /manualpeerlist:"ntp.nict.jp,0x9 ntp1.jst.mfeed.ad.jp,0x9 ntp2.jst.mfeed.ad.jp,0x9" /syncfromflags:manual /reliable:yes /update

末尾の,0x9は「Client(0x8)+ SpecialInterval(0x1)」の組み合わせを意味するフラグで、Windowsの推奨値です。

発生したエラー

しかし、実行すると次のエラーが返ってきました。

次のエラーが発生しました。 そのサービスを開始できませんでした。 (0x80070426)

エラーコード0x80070426ERROR_SERVICE_NOT_ACTIVEを示しており、対象サービスが開始されていない状態を意味します。

原因の特定

w32timeサービスの状態を確認しました。

Get-Service w32time | Select-Object Name, Status, StartType

結果は次のとおりでした。

Name     Status StartType
----     ------ ---------
w32time Stopped    Manual

Windows 11ではWindows Timeサービスが既定では「Manual(手動/トリガー開始)」になっており、必要時のみ起動する省リソース設定になっています。 停止状態のままだとw32tm /config /updateが反映できず、今回のエラーが返ります。

解消手順

サービスを自動起動に変更し、開始したうえで設定コマンドを再実行します。

自動起動に変更

Set-Service -Name w32time -StartupType Automatic

サービス開始

Start-Service w32time

NTPサーバー設定(再実行)

w32tm /config /manualpeerlist:"ntp.nict.jp,0x9 ntp1.jst.mfeed.ad.jp,0x9 ntp2.jst.mfeed.ad.jp,0x9" /syncfromflags:manual /reliable:yes /update

即時同期実行

w32tm /resync

コマンドは正しく完了しました。」と表示され、設定が反映されました。

確認

時刻同期の状態とピア構成を確認します。

w32tm /query /status
w32tm /query /peers

/query /statusの主な出力は次のとおりです。

階層: 2 (二次参照 - (S)NTP で同期)
最終正常同期時刻: 2026/05/17 13:32:46
ソース: ntp.nict.jp,0x9
ポーリング間隔: 10 (1024s)

ソースがntp.nict.jpになっており、直近の同期に成功したことが確認できます。

/query /peersでは3台すべてが「アクティブ」状態でした。

サーバー状態階層
ntp.nict.jpアクティブ1(主参照、電波時計直結)
ntp1.jst.mfeed.ad.jpアクティブ2(二次参照)
ntp2.jst.mfeed.ad.jpアクティブ2(二次参照)

NICTがStratum 1として認識されており、もっとも精度の高い時刻源を主に取得しつつ、 MFEEDの2台がバックアップとして待機する構成になりました。

補足

「ピアポーリング間隔: 17 (有効範囲外)」について

/query /peersの出力には次の行があります。

ピアポーリング間隔: 17 (有効範囲外)
ホストポーリング間隔: 10 (1024s)

これはエラーではなく、Windowsの表示上の仕様です。

17はサーバー側が広告したポーリング間隔(2^17秒、約36時間)ですが、 Windows側のホストポーリング間隔(10 = 1024秒、約17分)が優先されるため、実害はありません。

ルート分散の収束

設定直後はルート分散が大きく出ることがあります。

今回は7.83秒でしたが、運用を続けると数時間から1日程度で0.1秒未満へ収束する想定です。

気になる場合は、翌日に再度w32tm /query /statusを実行して値の推移を確認します。

大規模環境での注意

NICTの公開NTPサービスは、社内に多数のクライアントがある環境では「社内NTPサーバーを1台用意し、そこからNICTへ同期する」構成が推奨されています。

個人PCや小規模環境では直接参照で問題ありません。

自動起動への変更による影響

w32timeAutomaticへ変更すると、PC起動時に常時動作するため安定して時刻同期されます。

一方、Microsoftの既定は「Manual(トリガー開始)」で、必要時のみ起動する省リソース設定です。

リソースを抑えたい場合はManualのまま運用し、必要に応じてStart-Serviceで都度起動する選択肢もあります。

おわりに

Windowsの時刻同期サーバーを、日本国内の3サーバー構成(NICT + MFEED ×2)へ変更しました。

0x80070426エラーはWindows 11でw32timeサービスが停止していることが原因で、自動起動への変更と開始操作で解消できました。

Windowsの時刻同期に関するトラブルでは、まずGet-Service w32timeでサービス状態を確認することが切り分けの第一歩になります。

エラーメッセージのコード(0x80070426など)からWindowsの標準エラー定義(この場合はERROR_SERVICE_NOT_ACTIVE)に当てれば、原因の見当がつけやすくなります。

参考サイト