前回記事「Windows で時刻あわせ (1) 桜時計」はこちら。
【注意と免責】
以下の内容は個人的な見解であり正しさを保証しません。正しさを必要とする場合は他のサイトの記事を参照してください。
桜時計ではダメなんだ・・・という場合。windows time サービス、または w32time サービス、あるいは w32tm という windows 標準の仕組み(以下「w32tm」という呼び方で統一)があるんだからそれでやりたい、と思うこともあるでしょう。
やめたほうがいいです(何
必要とする機能が桜時計の機能で十分なら、桜時計の使用が一番楽ができるし確実で直感的です。もし桜時計を使いたくない理由が「Windows 標準でないから」「フリーウェアを使うのはちょっと」といった機能以外の理由なら、その理由を退けて桜時計を使う選択をしたほうがおそらく幸せになれます(汗
それでも w32tm を使用するんだという場合、設定方法はグループポリシーを使用する方法と w32tm コマンドを使用する方法の2つがあります。
内容的には変わりませんが、両方設定された場合、グループポリシーの設定のほうが優先されます。
以下それぞれの手順を手短に紹介します。
- グループポリシーを使用する方法
-
グループポリシーエディタを起動します。(例えば 'Win' キー + 'R' キー で「ファイル名を指定して実行」を表示し、そこへ 'gpedit.msc' を入力)
-
「ローカル コンピューター ポリシー」→「コンピューターの構成」→「管理テンプレート」→「システム」→「Windows タイム サービス」→「タイム プロバイダー」とたどります。
-
「Windows NTP クライアントを構成する」を選択し、以下を設定します。
- 「有効」を選択します。
- 「NtpServer」に「<NTP サーバー名>,0x9」を設定します。たとえば ntp.nict.jp の場合は「ntp.nict.jp,0x9」です。0x9 が何かは他のページで調べてください。おまじないです。(0x9 = 0x8 + 0x1 で、0x8 は client mode、0x1 は同期間隔(0x0 は自動調整, 0x1 は固定、です。)
- 「Type」は「NTP」を選択します。
-
「Windows NTP クライアントを有効にする」を選択し、以下を設定します。
- 「有効」を選択します。
- w32tm コマンドを使用する方法
-
管理者権限でコマンドプロンプトを起動します。
-
以下のコマンドを入力します。
w32tm /config /update /manualPeerList:<NTP サーバー名>,0x9 /syncFromFlags:manual
例えば ntp サーバーが ntp.nict.jp の場合は以下のようになります。
w32tm /config /update /manualPeerList:ntp.nict.jp,0x9 /syncFromFlags:manual
-
- 確認方法
-
設定した ntp サーバー(ピア)の確認
コマンドプロンプトで「w32tm /query /peers」を実行します。(Windows Vista 以降。XP ではできません)
実行すると以下のように表示されます。「ピア」のところに設定した ntp サーバー名が表示されていれば成功です。設定と違うものが表示されている場合、より優先される設定が行われている場合があります。その場合はローカルグループポリシーやドメインのポリシーなどに設定がないかを確認します。
C>w32tm /query /peers ピア数: 1 ピア: ntp.nict.jp,0x9 状態: 保留中 残り時間: 776.3186433s モード: 0 (予約) 階層: 0 (未指定) ピアポーリング間隔: 0 (未指定) ホストポーリング間隔: 0 (未指定)
Windows XP など w32tm /query コマンドがない OS で設定した内容を確認したい場合、レジストリエディタを使用すると設定内容を確認できます。場所は \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters の NtpServer などに記録されています。
また、グループポリシーで設定した値はここには記録されません。ここに記録されるのは w32tm コマンドで設定した内容だけです。
-
時刻同期の確認
管理者権限のコマンドプロンプトで「w32tm /resync」を実行します。
「コマンドは正しく完了しました。」と表示がでればとりあえず OK です。それ以外の場合は対策が必要です。(が、必ずしも問題は Client 側の設定ではないかもしれません。)
C>w32tm /resync 再同期コマンドをローカル コンピューターに送信しています。 コマンドは正しく完了しました。
「コマンドは正しく完了しました。」と表示された場合、w32tm /query /status を実行してみて、閏インジケーターが警告なし、階層が 0 以外、ソースが意図した ntp サーバー名になっていれば OK です。
C> w32tm /query /status 閏インジケーター: 0 (警告なし) 階層: 2 (二次参照 - (S)NTP で同期) 精度: -6 (ティックごとに 15.625ms) ルート遅延: 0.0312500s ルート分散: 7.7757688s 参照 ID: 0x0A545792 (IPv6 アドレスの MD5 ハッシュ値の部分: ) 最終正常同期時刻: 20xx/xx/xx xx:xx:xx ソース: ntp.nict.jp,0x9 ポーリング間隔: 6 (64s)
-
- その他
Windows 7 以降の場合、Windows Time サービスが「自動(トリガー開始)」になっている場合があります。
この状態だと Windows Time サービスを起動してもすぐ停止してしまうので、管理者権限のコマンドプロンプトを起動して、以下のコマンドを実行し、トリガーを削除します。
sc triggerinfo w32time delete
実行後、サービス一覧をみて windows time サービスの「トリガー開始」の表示が消えていれば OK です。
-
ooltcloud
次の記事> Windows で時刻あわせ (3) w32tm (Server 側)
http://ooltcloud.sakura.ne.jp/blog/202007/article_25104416.html
Link | 2020年7月25日 11:45