Windows-NTPコマンド設定

Windows NTPクライアント設定(w32tmコマンド)

w32tmコマンドとは

w32tmコマンドは、Windows Timeサービスの設定や時刻同期の状態確認、設定変更、手動同期を行うことができるコマンドです。

w32tmコマンドは、NTP(SNTP)プロトコルによって同期を行います。


現在のNTP設定を確認する

Windowsにおいて、現在どのNTPサーバーを参照しているのか確認するには、以下のコマンドを実行します。


> w32tm /query /source
> w32tm /query /peers

NTPクライアントに構成されたNTPサーバーを表示させるには、以下のコマンドを実行します。


> w32tm /query /configuration

通信先のNTPサーバを設定する

w32timeサービスを有効化(ここでは遅延起動に設定)し、起動します。

サービスが無効となっている場合には、w32tmコマンドが実行できません。


> sc config w32time start= delayed-auto
> net start w32time

w32tmコマンドでNTPサーバを指定します。


> w32tm /update /manualpeerlist:192.168.24.33 /syncfromflags:manual

複数NTPサーバ(IPアドレス)を設定する場合には、ダブルクォートでくくる必要があります。


w32tm /config /update /manualpeerlist:"192.168.24.1 192.168.24.2 192.168.24.3" /syncfromflags:manual

w32timeサービスを再起動して、設定を反映させます。


> net stop w32time
> net start w32time

NTPサーバに同期させる

ローカルマシンとNTPサーバで時刻同期を行うために、再同期(resync)を実行します。

同期処理を試みるため、若干の待ち合わせが発生します。


> w32tm /resync

再同期(resync)を待ち合わせることなく即時に(nowait)実行する場合には、

下記オプションを指定します。


>w32tm /resync /nowait

NTP設定を確認する

Windowsにおいて、現在どのNTPサーバーを参照しているのか確認するには、以下のコマンドを実行します。


> w32tm /query /source
> w32tm /query /peers

NTPクライアントに構成されたNTPサーバーを表示させるには、以下のコマンドを実行します。


> w32tm /query /configuration

レジストリ情報を確認する場合、「regedit.exe」から以下のレジストリを確認します。


HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters

Windows NTPクライアント設定(net timeコマンド)

WindowsにおけるNTPクライアントの設定には、「net time」コマンドを利用することも可能です。

net timeコマンドは、Windows OSネットワーク独自の同期用プロトコルを利用しているため、参照するタイム・サーバがWindows OSで運用されている必要があります。(または、Sambaサービスを実行しているUNIX系OSでも同期は可能です。)


net timeコマンドは将来的に廃止される可能性があります。

例えば、Windows Server 2008 R2では「net time /query」コマンドオプションが機能として削除されています。


NTPサーバを設定する

「Y/N」の確認メッセージが不要であれば、以下のように「/yes」を付けて実行すると、すぐに同期させることができます。


> net time ¥¥サーバ名 /set /yes

WindowsServer2008をNTPサーバとして立てる

WindowsでNTPサーバを構築する場合にはレジストリを設定します。


レジストリ設定

「regedit.exe」コマンドを実行して、2カ所のレジストリを設定します。


(1)Enabledを「1」に設定します。


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpServer\Enabled

(2)AnnounceFlagsを「5」にします。(デフォルトは16進数でa)


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Config\AnnounceFlags

UNIX系サーバとの同期する場合にはLocalClockDispersionを「0」に設定する必要があります。


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Config\LocalClockDispersion

サービスを再起動する。

w32timeサービスを再起動します。


> net stop w32time
> net start w32time

以上でNTPサーバーとして稼働しました。

NTPクライアントから時刻を取得して確認します。


NTP設定に関するレジストリをクリアする

サービスを停止してから、「unregister」オプションを指定してw32tmコマンドを実行します。


> net stop w32time
> W32tm /unregister

その後、下記コマンドを実行することで設定が初期化されます。


> W32tm /register

関連ページ