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