インターネットに繋がっていればMicrosoftのNTPサーバを見に行くようになっている。
ふとここで疑問が。
Linuxやネットワーク機器はNTP同期確認コマンドがあるが、
Windowsにも用意されているのだろうか?
今までGUI上で「有効になっているなー」程度にしか確認していなかったが、
コマンドでも見れるのであれば覚えておきたい。
そんなこんなで調べてみた。
日頃からWindowsサーバを触っている人であれば常識的なことだと思うが・・・。
NTPの同期確認
Windowsのコマンドで"w32tm"というのがある。
これがNTP関連のコマンドのようで、基本オプションを付けて実行する形になる。
確認コマンドとしては下記になる。
オプションを色々付けなきゃいけないのがちと面倒くさいが・・・。
w32tm /query /status
実行結果は下記のような感じ。
おや?謎なエラーが・・・。
権限の問題でもなさそうだし、これはなんぞ?
調べてみるとこのエラーはサービスが起動していない時に発生するようだ。
と、いうことでサービスを確認することに。
対象のサービスはその名の通り"Windows Time"である。
"状態"の列を見てみると空白になっており、隣に"手動(トリガー開始)"となっている。
トリガー?なんなんだこれは??
またまた調査してみると、どうやらこれはタスクスケジューラなどで
定期的に動かしているものらしい。
なので通常はトリガーが発動されるまでは停止した状態になっているっぽい。
とりあえず今回はNTPコマンドを確認したいだけなので、サービスを手動で起動させてみた。
まずは"Windows Time"をダブルクリックして開く。
すると、サービスの状態は"停止"となっているので、
"開始"ボタンをクリックして、サービスを起動させる。
サービスの開始が確認できたら"OK"ボタンを押してWindowを閉じる。
下記のサービスの一覧でも実行中になったことが確認できた。
これで改めてコマンドを叩いてみる。
エラーはなかったが、同期時刻が"未指定"となっている。
ソースも"Local CMOS Clock"となっておりNTP同期はされていないようだ。
おそらくサービス起動したばかりなのが原因と思われるが、
とりあえずはコマンドが実行できたので良しとしよう。
ちなみに下記コマンドで接続先のサーバを確認できる。
w32tm /query /peers
実行結果を確認するとこんな感じ。
"time.windows.com"というデフォルトのサーバが確認できる。
こちらも状態が"保留中"となっているのが気になるが・・・。
ちなみに勝手にサービス起動して問題ないのかという点も気になったが、
再起動後に確認してみたらちゃんと初期の状態に戻っていた。
どうやらWindows10ではそういうものらしい。
NTPサーバに手動で同期させる
やはり同期していないのが気になるので、手動で同期させてみた。
自動同期までどのくらい待たされるかもわからないしね。
同期コマンドは下記になる。
w32tm /resync
Windowsも色々とコマンド用意されているね。
とりあえず実行結果。
アクセス拒否とな・・・。
こちらは管理者権限でないとダメみたいだ。
管理者権限で実行した結果が下記になる。
このように"コマンドは正しく完了しました。"と表示されればOK。
再度確認コマンドを叩いてみる。
こんどはちゃんと最終同期が確認できるようになっていた。
ソースも"time.windows.com"になっているのがわかる。
今回は自分のWindows10のPCで確認してみたが、
他のWindows OSでもやり方は一緒だと思われる。
サーバOSであればWindows Timeはずっと稼働しているのかな?
手元にサーバが無いので確認はできないのだが・・・。
とりあえずクライアントOSではこんな感じだったよということで。
以上。

Internet接続 NTP対応時計 P18-NTP