WindowsマシンをNTPサーバーにする方法

WindowsマシンをNTPサーバーにする方法

ワークグループ環境のWindowsマシンは、デフォルトでMicrosoftがインターネット上に公開しているNTPサーバー「time.windows.com」に接続して時刻を同期するよう設定されていますが、インターネットに接続できない環境で時刻を同期させたい場合は、NTPサーバーの役割を担うマシンを用意する必要があります。

NTPサーバーの役割は、通常はネットワーク機器に担わせることが多いですが、実はWindowsマシンも設定を変更することで、NTPサーバーとして動作させることができます。

そこでここではWindows 10を例に、WindowsマシンをNTPサーバーにする方法を紹介します。

この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェアバージョン
Windows 10 Pro 64bit22H2

Step1:レジストリ設定

WindowsマシンをNTPサーバーにするには、レジストリ設定とファイアウォール設定、サービス設定が必要となります。

まず、管理者としてPowerShellを起動して、以下の2つのコマンドを実行してNTPサーバーとしての機能を有効化します。

PS> reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer" /v Enabled /t REG_DWORD /d 1 /f
PS> reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config"  /v AnnounceFlags /t REG_DWORD /d 5 /f

それぞれのコマンドを実行後「この操作を正常に完了しました。」と表示されていれば設定完了です。

WindowsマシンをNTPサーバーにする方法

Step2:ファイアウォール設定

次に、他のコンピュータからNTPで使用するポート(UDP123番ポート)へのアクセスを許可します。

Windowsに標準搭載のファイアウォール機能「Windows Defenderファイアウォール」に設定する場合は、管理者としてPowerShellを起動して、以下のコマンドを実行します。

PS> New-NetFirewallRule -DisplayName "NTP Server" -Direction Inbound -Protocol UDP -LocalPort 123 -Action Allow

WindowsマシンをNTPサーバーにする方法

Step3:サービスの開始と自動起動設定

次に、時刻同期サービス「Windows Time」をシステム起動時に自動起動するよう設定します。

サービス設定は、管理者としてPowerShellを起動して、以下のコマンドを順に実行します。

PS> Start-Service -Name W32Time
PS> Set-Service -Name W32Time -StartupType Automatic

WindowsマシンをNTPサーバーにする方法

以上で、WindowsをNTPサーバーとして動作させることができます。

Step4:動作確認

動作確認するときは、他のマシン上で参照するNTPサーバーのアドレスを上で設定したマシンのIPアドレスに変更して正常に時刻同期できるか確認するとよいでしょう。

Windowsで参照するNTPサーバーを変更する方法については、以下の記事をご覧ください。

Windowsで参照するNTPサーバー(タイムサーバー)を変更する方法
ここでは、Windowsで参照するNTPサーバーの設定を変更する方法として、コントロールパネルから変更する方法とコマンド操作で変更する方法を紹介します。