0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windowsでコマンドラインを使ったNTPサーバー & クライアントの設定

0
Posted at

はじめに

今回は同一ネットワーク内にいるWindows ServerとWindowsタブレットに関して時刻のズレが酷かったので、NTPサーバーとクライアントの設定をコマンドラインから行いましたので、その内容を書き記します。
時刻の基準となる端末をNTPサーバー、その他のサーバーと時刻を合わせたい端末をクライアントと表現しています。

NTPサーバーの設定手順

設定の確認は下記の手順で行います。

  1. W32TimeのTypeがNTPになっているか
  2. NTPサーバーが有効になっているか
  3. 権威あるNTPサーバーになっているか
  4. W32Timeのサービス再起動

上記の1~3はレジストリに設定されているので reg コマンドを使用して確認していきます。
※ 今回紹介するコマンドを使用してレジストリの変更を行う際は、データが存在する場合上書きしないようにオプションは外してありますので確認しつつ、慎重に行いましょう。

W32TimeのTypeのパラメータ確認

確認するレジストリのキーは HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters で、値は Type です。
ここのデータが NTP になっていれば設定変更は必要なく、他の値であればNTPにします。

.cmd
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 以降を消して実行してください。

値の追加・変更については以下のコマンドで行います。

.cmd
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
.cmd
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
.cmd
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サービスの再起動

.cmd
net stop w32time
net start w32time

以上の手順でサーバー側の設定は完了です。

クライアント側で発生したのですが、サービスを開始できませんでした、というエラーが出る場合はW32Timeのサービスが無効になっているかもしれませんので以下のコマンドで開始方法を自動(遅延)にしたあとで、もう一度サービスの再起動を試してみてください。

.cmd
sc config w32time start= delayed-auto

クライアント側の設定手順

クライアントの設定は、先程NTPサーバーを指定するだけで良いです。
ここでは先程設定したサーバーのIPアドレスを 192.168.100.100 としてコマンドを記述します。

一応クライアントの設定前に現在のNTPのソースを設定を確認します。

.cmd
w32tm /query /source
REM Local CMOS Clock

REM (コマンドが動かない場合はサービスが起動していない/ 無効になっているかもなので起動しましょう)
sc config w32time start= delayed-auto
net start w32time

NTPサーバーの設定と反映をするために下記のコマンドを実行します。IPアドレスは適宜変更してください。

.cmd
w32tm /config /update /manualpeerlist:192.168.100.100 /syncfromflags:manual

net stop w32time
net start w32time

NTPのソースを改めて確認すると192.168.100.100になっていると思います。
なっていない場合は w32tm /resyncとかで再同期を実行してみたあとで確認すると変わってるかもです。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?