Windows の時刻同期は、Windows Time サービスにより行われています。
Windows Time サービスは、ネットワーク タイム プロトコル (NTP) を使用して、ローカル コンピュータの時刻をネットワーク上のほかのコンピュータと自動的に同期するシステムを提供します。
NTP は、時計を同期させるインターネット時刻プロトコルです。
Windows Time サービスの設定等で利用するコマンドが「w32tm」コマンドです。
w32tmコマンドとは?
w32tm コマンドは、Windows Time サービスで利用できる便利なコマンドで以下の操作が可能です。
- 設定の確認をする
- 時刻同期の状態を確認する
- 設定変更する
- 手動同期を行う
Windowsの時刻同期の基本
Windows には「ハードウェアクロック」と「システムクロック」があります。
●ハードウェアクロック(RTC)
マザーボード上のチップに存在し、RTC(リアルタイムクロック, Real Time Clock)や CMOS クロックなどとも呼ばれます。
コンピュータの電源が落ちてもマザーボード上にあるバッテリーで時刻を進めます。
●システムクロック
システムクロックは OS が管理・使用する時刻です。
OS が起動する時にハードウェアクロック(RTC)から時刻を取得し、それ以後は OS 側でクロックの時刻を進めます。
OS をシャットダウンすると OS が保持している時刻は消滅します。
NTP の階層構造
NTP は下図のように階層構造になっています。
一番トップは「Stratum 0」で原子時計が正確な時刻を提供しています。
今回試した環境
環境:Windows 2008 R2 Standard Edition
Windows 2016 Datacenter Edition
Windowsで時刻同期が正常に出来てるか確認
Windowsで時刻同期が正常に出来てるか確認するコマンドです。
w32tm /query /status コマンド
C:\Users\test>w32tm /query /status |
以下の状態を確認することができます。
- 最終正常同期時刻
- ソース (NTP Server)
w32tm コマンドの内容によっては権限が足りなくてエラーが出力されることもあります。
C:\Users\test>w32tm /query /configuration
C:\Users\test> |
その場合はコマンドプロンプトを起動する際に「管理者として実行」を選択してコマンドを試してみます。
「スタートボタン」-「すべてのプログラム」-「アクセサリ」-「コマンドプロンプト」を選択して右クリックし「管理者として実行」を選択します。
時刻同期の設定内容を確認する
現在の Windows Time サービスの設定内容を確認するコマンドです。
C:\Windows\system32>w32tm /query /configuration
[構成] EventLogFlags: 2 (ローカル) FrequencyCorrectRate: 4 (ローカル)
[タイム プロバイダー] NtpClient (ローカル) VMICTimeProvider (ローカル)
C:\Windows\system32> |
手動で同期するコマンド(今すぐ時刻同期をしたい)
Windows Time サービスで時刻修正されるのを待つのではなく、今すぐ手動で NTP サーバーにアクセスをして時刻同期をしたい場合があります。
その場合は「w32tm /resync」コマンドを使用します。
C:\Windows\system32>w32tm /resync
C:\Windows\system32> |
管理者権限がないとエラーになります。
C:\Windows\system32>w32tm /resync
C:\Windows\system32> |
先ほどと同じように
その場合はコマンドプロンプトを起動する際に「管理者として実行」を選択してコマンドを試してみます。
「スタートボタン」-「すべてのプログラム」-「アクセサリ」-「コマンドプロンプト」を選択して右クリックし「管理者として実行」を選択します。
NTPサーバーと通信ができているか手動で確認する
権限があってもエラーになる場合があります。
C:\Windows\system32>w32tm /resync
C:\Windows\system32> |
その場合は、NTPサーバーと通信が出来ているかコマンドで確認することができます。
以下は例として NICT(国立研究開発法人情報通信研究機構、英語: National Institute of Information and Communications Technology) の NTP サーバーと通信ができているのか確認しています。
C:\Windows\system32>w32tm /monitor /computers:ntp.nict.jp 警告:
C:\Windows\system32> |
※警告が出ていますが、特に問題なく通信はできてます。
NTPサーバー側の状態を確認する
「peers」オプションを付けることで どの NTP サーバーと同期をとっているのか、NTP サーバー側の状態はどうなっているのかを確認することができます。
C:\Users\test>w32tm /query /peers ピア: 169.254.169.123,0×9
C:\Users\test> |
NTPサーバーとの時刻同期の状態を確認したい
現在 NTP サーバーとの時刻同期の状態を確認したい場合は「status」オプションを付けます。
C:\Windows\system32>w32tm /query /status
C:\Windows\system32> |
「verbose」オプションを付けると更に詳細な情報を取得することができます。
C:\Windows\system32>w32tm /query /status /verbose フェーズ オフセット: -0.0721413s
C:\Windows\system32> |
トラブルシューティング
以下、各トラブルシューティング方法です。
うまく時刻を取得できていない場合
エラーが表示され、うまく時刻を取得できていない場合です。
w32tm /query /status コマンドを実行して現在の状態を確認します。
C:\Users\test>w32tm /query /status /verbose フェーズ オフセット: -2.6193657s
C:\Users\test> |
現在どの NTP サーバーを参照しているのか確認します。
C:\Windows\system32>w32tm /query /source
C:\Windows\system32> |
必要なら現在時刻を確認します。
C:\Users\test>echo %date% %time%
C:\Users\test>echo %date% %time%
C:\Users\test>echo %date% %time%
C:\Users\test> |
コメント