はじめに
今回は同一ネットワーク内にいるWindows ServerとWindowsタブレットに関して時刻のズレが酷かったので、NTPサーバーとクライアントの設定をコマンドラインから行いましたので、その内容を書き記します。
時刻の基準となる端末をNTPサーバー、その他のサーバーと時刻を合わせたい端末をクライアントと表現しています。
NTPサーバーの設定手順
設定の確認は下記の手順で行います。
- W32TimeのTypeがNTPになっているか
- NTPサーバーが有効になっているか
- 権威あるNTPサーバーになっているか
- W32Timeのサービス再起動
上記の1~3はレジストリに設定されているので reg コマンドを使用して確認していきます。
※ 今回紹介するコマンドを使用してレジストリの変更を行う際は、データが存在する場合上書きしないようにオプションは外してありますので確認しつつ、慎重に行いましょう。
W32TimeのTypeのパラメータ確認
確認するレジストリのキーは HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters で、値は Type です。
ここのデータが NTP になっていれば設定変更は必要なく、他の値であればNTPにします。
REM 設定確認
reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\ /v T
ype
REM HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
REM Type REG_SZ NTP <- ここを確認
上記のコマンドは /v オプションで値を指定していますが、キーの値とデータをすべて確認したい場合は /v 以降を消して実行してください。
値の追加・変更については以下のコマンドで行います。
REM 上記のキーに値がType、型がREG_SZ、データがNTPとなるようにデータの追加(変更)を行う
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\ /v Type /t REG_SZ /d NTP
NTPサーバーが有効になっているかの確認
- キー:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer - 値:
Enabled - データ:
0x1
REM 設定確認
reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer /v Enabled
REM HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer
REM Enabled REG_DWORD 0x1 <- ここを確認
REM 変更
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer /v Enabled /t REG_DWORD /d 0x1
権威サーバーになっているかの確認
- キー:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config - 値:
AnnounceFlags - データ:
0x5
REM 設定確認
reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config /v AnnounceFlags
REM HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
REM AnnounceFlags REG_DWORD 0x5 <- ここを確認
REM 変更
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config /v AnnounceFlags /t REG_DWORD /d 0x5
W32Timeサービスの再起動
net stop w32time
net start w32time
以上の手順でサーバー側の設定は完了です。
クライアント側で発生したのですが、サービスを開始できませんでした、というエラーが出る場合はW32Timeのサービスが無効になっているかもしれませんので以下のコマンドで開始方法を自動(遅延)にしたあとで、もう一度サービスの再起動を試してみてください。
sc config w32time start= delayed-auto
クライアント側の設定手順
クライアントの設定は、先程NTPサーバーを指定するだけで良いです。
ここでは先程設定したサーバーのIPアドレスを 192.168.100.100 としてコマンドを記述します。
一応クライアントの設定前に現在のNTPのソースを設定を確認します。
w32tm /query /source
REM Local CMOS Clock
REM (コマンドが動かない場合はサービスが起動していない/ 無効になっているかもなので起動しましょう)
sc config w32time start= delayed-auto
net start w32time
NTPサーバーの設定と反映をするために下記のコマンドを実行します。IPアドレスは適宜変更してください。
w32tm /config /update /manualpeerlist:192.168.100.100 /syncfromflags:manual
net stop w32time
net start w32time
NTPのソースを改めて確認すると192.168.100.100になっていると思います。
なっていない場合は w32tm /resyncとかで再同期を実行してみたあとで確認すると変わってるかもです。