前回記事「Windows で時刻あわせ (6) w32tm (スタンドアロン時刻サーバー)」はこちら。
時刻同期関連の Powershell Script を置いておきます。
- nict.jp が提供する http による時刻配信を利用して時刻を同期する。
https://gist.github.com/ooltcloud/20e7d7551007370b4b8e345499d79cb3windows time サービス (w32time/w32tm) で同期したほうがよいのは確かですが、windows time サービスによる時刻同期の設定自体が難しくてどうしても時刻同期させられない場合とか、ntp のポート (port 123) が閉じられていて同期できない場合などで、ともかく精度は問わないし時刻も戻ってもいいから(急変していいから)手早く時刻を合わせたい、という場合を想定しています。要管理者権限です。また Invoke-WebRequest が必要なので Powershell 3.0 以上の環境が必要です。(つまり Windows 7 / 2008R2 では動かない場合があります。Powershell の Version は $PSVersionTable で知ることができます。)
とはいえ先般、当該サービスは停止の方向というアナウンスがされたので、これに頼らないほうが良いですね・・・(汗
https://jjy.nict.go.jp/httphttps-index.htmlネットワークを利用した時刻配信におけるNTPへの一元化
~ http/httpsを利用した時刻配信の停止に向けた取組み~
NICTでは、日本標準時を生成すると共に、標準電波、光テレホンJJY、NTP等様々な方法で正確な時刻を配信しています。このうちインターネット上での配信については、NTPに加えてhttp/httpsによる時刻配信を試験的に実施してきましたが、今後別記の理由により「NTPを利用した時刻配信」に一元化する方向とし、「http/httpsを利用した時刻配信」については、停止に向けた取組みを開始させていただきます。
- NTP (UDP) を利用して時刻を同期する。(step 調整, Leap Indecator 等無視)
https://gist.github.com/ooltcloud/620831658a0cd9055f53ae3ba3543ee1上記で「いやそうじゃない、http じゃなくて ntp のままサクッと時刻合わせがしたいんである」という人向け。
そういうひとは桜時計( https://www.vector.co.jp/soft/win95/personal/se050672.html ) を使えって話なんだけども、実行または常駐しているのが見えるのは嫌だとか Windows 標準機能でなんとかならないか(フリーソフトは持ち込めない)という人向け。
そんなニーズがあるのかどうかは知らないが(汗
Powershel version 3 以上が必要です。(-shl などを使っているため。ここを書き換えると version 2 でも動くかも?) - 時刻サーバーの情報を確認する。
https://gist.github.com/ooltcloud/1ed59c8ff72a24b273269aa403f6b01f同期先 NTP サーバーの stratum や ルート分散 (Dispersion) を確認する用途で使用します。
使用方法、表示例は以下のような感じ。PS >QueryNTPStatus "ntp.nict.jp" ntp.nict.jp 閏インジケーター : 0 (警告なし) 階層 : 1 (1次参照。原子時計等を参照) モード : 4 (Server) 精度 : -20 ルート遅延 : 0 ルート分散(拡散) : 0 参照 ID : 0x5443494E (NICT) 時刻源参照時刻 (JST) : 2020/07/24 20:52:32.000 (3804580352) 要求送信時刻 (JST) : 2020/07/24 20:52:31.455 (3804580351.45544) 要求受信時刻 (JST) : 2020/07/24 20:52:32.237 (3804580352.23683) 応答送信時刻 (JST) : 2020/07/24 20:52:32.237 (3804580352.23683)