PCやサーバの時刻がずれてくることがありませんか?
この記事では、PCやサーバの時刻がずれてきたときにコマンドを使って対応する方法について説明します。
w32tmコマンドを使えば簡単に問題解決できますよ
時刻取得の概要
まずは時刻取得の仕組みについては、以下の図を頭の中でイメージしましょう。
AcitiveDirectoryサーバ(ドメインコントローラ)は外部のNTPサーバから時刻情報を定期的に取得します。
ドメインに参加しているPCは ActiveDirectoryサーバ(ドメインコントローラ)から時刻情報を定期的に取得します。
このようにして組織内の全てのサーバ・PCは正確な時刻を保持しているのが一般的です。
ですので、PCやサーバの時刻がずれてきたらこの図を頭に思い浮かべながら、次に紹介するコマンド群をつかっていくと調査しやすいです。
w32tmコマンドで時刻ずれの問題解決
状態確認
まずはActiveDirectoryサーバがどこから時刻をもらっているかを確認しましょう。
状態を確認するためには以下のコマンドを打ちます。どこから時刻をもらっているかの参照先がわかります。
w32tm /query /status
実行結果
実行結果をみると、「ソース」のところが「Free-running System Clock」となっていますね。
これは自身の内臓時計と同期しているということを意味します。
このようになっている場合、NICTが公開しているNTPサーバを参照するように設定を変更するなど対応をしましょう。
ちなみに上記のように /status でもいいのですが、時刻同期の参照先のみを知れればよいという場合はコマンドは下記です。
w32tm /query /source
実行結果
上記 /status のときに得た結果の「ソース」の内容だけが得られることがわかります。
設定変更
ではNICTが公開しているNTPサーバを参照するように設定します。
NTPサーバを指定する
w32tm /update /manualpeerlist:XXX.XXX.XXX.XXX /syncfromflags:manual
再起動
設定変更した後はサービス再起動が必要となります。
w32timeサービスを再起動する
net stop w32time
net start w32time
手動同期
設定変更・再起動後には手動同期を実行して正常に動作する事を確認します。
手動で同期(即座に実行されるわけではない)
w32tm /resync
うまくいかない場合は /rediscover オプションをつけてやりなおしてみましょう。
w32tm /resync /rediscover
resyncだけで即座に同期が実行されるわけではありません。即座に実行したい場合は /nowait オプションをつけます。
w32tm /resync /nowait
実際に現場で問題解決するのに最低限必要になりそうなもののみ列挙しました。参考にしてみてください。