---
title: "Windows TimeのNTPサーバーをNICT・MFEEDの国内3サーバー構成へ冗長化する | C#もぐもぐ"
description: "Windowsの時刻同期サーバーをNICTとMFEEDの国内3サーバー構成へ変更した手順の記録です。途中で発生したw32timeサービス停止に起因する0x80070426エラーの解消方法も含めて整理します。"
url: "https://blog.223n.tech/posts/240/"
---

# Windows TimeのNTPサーバーをNICT・MFEEDの国内3サーバー構成へ冗長化する

2026年5月17日

[Windows](https://blog.223n.tech/tags/Windows/) [PowerShell](https://blog.223n.tech/tags/PowerShell/) [NTP](https://blog.223n.tech/tags/NTP/) [Troubleshooting](https://blog.223n.tech/tags/Troubleshooting/)

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

## はじめに

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

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

## 原因

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

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

## 環境

| 項目 | 内容 |
| - | - |
| OS | Windows 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で次のコマンドを実行するだけで完了する想定でした。

```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)
```

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

### 原因の特定

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

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

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

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

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

### 解消手順

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

#### 自動起動に変更

```powershell
Set-Service -Name w32time -StartupType Automatic
```

#### サービス開始

```powershell
Start-Service w32time
```

#### NTPサーバー設定（再実行）

```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
```

#### 即時同期実行

```powershell
w32tm /resync
```

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

## 確認

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

```powershell
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や小規模環境では直接参照で問題ありません。

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

`w32time`を`Automatic`へ変更すると、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`）に当てれば、原因の見当がつけやすくなります。

## 参考サイト

- [日本標準時グループ（NICT）](https://jjy.nict.go.jp/)
- [NICT公開NTPサービス](https://jjy.nict.go.jp/tsp/PubNtp/index.html)
- [インターネットマルチフィード時刻情報サービス for Public](https://www.jst.mfeed.ad.jp/)
- [Windows Time Service Tools and Settings（Microsoft Learn）](https://learn.microsoft.com/windows-server/networking/windows-time-service/windows-time-service-tools-and-settings)
- [Windows Time Service technical reference](https://learn.microsoft.com/windows-server/networking/windows-time-service/windows-time-service-tech-ref)
- [Get-Service（PowerShell）](https://learn.microsoft.com/powershell/module/microsoft.powershell.management/get-service)
- [Set-Service（PowerShell）](https://learn.microsoft.com/powershell/module/microsoft.powershell.management/set-service)
- [Start-Service（PowerShell）](https://learn.microsoft.com/powershell/module/microsoft.powershell.management/start-service)

[記事一覧に戻る](https://blog.223n.tech/posts/)
