読者です 読者をやめる 読者になる 読者になる

TechNote

とあるエンジニアのただのメモ

システム管理者でなくても知っとくべき! Windowsサーバ/クライアントの時刻同期設定まとめ

コンピュータの内臓時計はズレやすいため、「時刻同期」について検討することはとても重要なことと思われますが、その重要性はあまり認識されていない気がします。

私も先日、社内サーバ群の時刻を調査する機会があったのですが、各サーバが連携を取り合っている大規模システムであるにも関わらず、同期がとられていないものが散見され、時刻同期が重要視されていないことを痛感させられたということがありました。

そこで、あらためてググったりしてみると、Windowsの時刻同期に関する「まとめ記事」と呼べるようなものを見つけることができなかったので、忘備録を兼ねてまとめておきます。

f:id:kojikoji75:20150801221723j:plain

以下に紹介している各要素はさまざまな組み合わせて使用できると思いますが、ここでは大きく「ドメインに参加している/していない」の括りに分けて紹介していきます。

サマリー

1.ドメインに参加していない場合

(1)GUI的に設定する方法
(2)コマンドプロンプトで設定する方法
(3)バッチをスケジュールに組み込み、定期的に時刻同期する方法
(4)フリーソフトを使って外部ntpサーバから時刻を取得する方法

2.ドメインに参加している場合

(1)ドメインコントローラの確認方法
(2)時刻同期成功の確認方法



 

1.ドメインに参加していない場合

(1)GUI的に設定する方法

手動操作での単発的なやり方となりますが、「インターネット時刻」タブで時刻同期が可能です。
時刻同期がきちんと行われたかどうかの確認も同画面からできます。

f:id:kojikoji75:20131003111950g:plain

ちなみにドメインに参加した状態ではこの「インターネット時刻」タブは表示されません。



(2)コマンドプロンプトで設定する方法

こちらも単発的なやり方となりますが、下記のコマンドをたたけばタイムサーバとの時刻同期が実行されます。

net time \\[サーバのipアドレス | サーバname] /set /yes

管理者権限の問題で、そのままやると下図のようなエラーが出るはずです。

f:id:kojikoji75:20131003112203j:plain


管理者権限でコマンドプロンプトを起動するには、「cmd」と入力した状態で、Shift+Enterで起動します。

f:id:kojikoji75:20131003112223j:plain

管理者としてコマンドプロンプトを起動した状態で、あたらめて上記コマンドを打ってみると成功します。

f:id:kojikoji75:20131003112238j:plain


(3)バッチをスケジュールに組み込み、定期的に時刻同期する方法

上記コマンドを記述したテキストファイルを「nettime.bat」などで保存し、タスクスケジューラへ登録することで、人手いらずで定期的に時刻同期が実行されます。

ただし、そのままだと(2)と同様に管理者権限の問題でエラーとなります。

このため、作成した「nettime.bat」のショートカットを作成し、そのショートカットのプロパティにて「管理者として実行」にチェックを入れ、タスクスケジューラにこのショートカットの方を登録するという手法をとります。

f:id:kojikoji75:20131003112340j:plain


(4)フリーソフトを使って外部ntpサーバから時刻を取得する方法


nictの時刻サーバにアクセスして時刻を補正します。インストール不要タイプのため、ダウンロード&解答後、exeファイルをダブルクリックするだけで実行されます。

下記からダウンロード可能です。
vector


実行すると以下のようにログが表示されますが、LogHideバージョンを使用するとこのような実行ログが出ないので、バックグラウンドで処理を実行したいだけならLogHideバージョンを使用すべきでしょう。

f:id:kojikoji75:20131003112606j:plain

2で紹介するようなドメインコントローラなどでは、このようなソフトをタスクスケジューラに組み込んで、定期的に実行し、時刻の正確性を保つ必要があるでしょう。






2.ドメインに参加している場合


通常、ドメイン環境ではクライアントの時刻はサーバ(ドメインコントローラ)に同期します。(その代わりドメインに参加すると「インターネット時刻」タブが表示されなくなります。)

このため、特に時刻同期を行うための設定というのは必要ありませんが、注意点などを残しておきます。

(1)ドメインコントローラの確認方法

ドメインコントローラというのは、Windowsネットワークで、コンピュータやユーザのログオン認証を行うためのアカウント情報(ドメイン情報)を一括管理するサーバのことです。ドメインコントローラを置くことでネットワーク内のユーザ情報を一元的に管理できます。

ドメインコントローラはクライアントの時刻の取得元となるので、上記1-(4)で紹介したようなソフトを使用するなどして、正確なシステム時刻を保持しておく必要があるでしょう。


ドメインコントローラを確認するコマンドは下記です。

echo %logonserver%


また、下記のように打つとドメイン内の全ドメインコントローラについて、上位ntpサーバ名や上位ntpサーバとの時刻差を表示できます。

w32tm /monitor /domain:

(2)時刻同期成功の確認方法


システムログで、以下のイベントIDを確認します。

35:時刻の同期
37:参照先NTPサーバからの時刻データ受信

f:id:kojikoji75:20131003112820j:plain

正確に言うと、37は参照先ntpサーバから時刻情報を受け取ったことを示し、35は受け取った時刻情報でシステム時刻を更新したことを示します。このため、37のみ実行されて35が実行されてなかった場合は同期に失敗したと考えられるので注意が必要です。


あわせて読みたい

一度は観ておきたい!エンジニアが主役の映画5選 (とそこで使われている技術を少々) - TechNote一度は観ておきたい!エンジニアが主役の映画5選 (とそこで使われている技術を少々) - TechNote

以前から一度まとめてみたかったタイトルの件、今更ながらまとめておきます。観たい映画がなくなった方や、エンジニアとして働いてるけど目標を見失ったという方のご参考に...

「組織内で輝く個になる」ということ - TechNote「組織内で輝く個になる」ということ - TechNote

引き続き「ウェブ時代をゆく- いかに働き、いかに学ぶか」をゆっくりと読んでいる。少し先の自分に必要になりそうな言葉なのでメモ大組織の中で生きている人間で、勤めて...

JavaScriptでWindow.closeする時のブラウザ別対応まとめ - TechNoteJavaScriptでWindow.closeする時のブラウザ別対応まとめ - TechNote

社内用のWebシステムにこれまで設置してなかった「閉じる」ボタンを設置することになった際、少々ブラウザ問題でつまずいた点があった。ググっても最近のwindow....



[24時間365日] サーバ/インフラを支える技術 ?スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)

[24時間365日] サーバ/インフラを支える技術 ?スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)

ひと目 ACTIVE DIRECTORY WINDOWS SERVER 2008 R2版 (ひと目でわかるシリーズ)

ひと目 ACTIVE DIRECTORY WINDOWS SERVER 2008 R2版 (ひと目でわかるシリーズ)

サーバ・インフラ構築・運用完全ガイド ~Linux/FreeBSD/Solaris/HP-UX/AIX/WindowsServerマルチ対応

サーバ・インフラ構築・運用完全ガイド ~Linux/FreeBSD/Solaris/HP-UX/AIX/WindowsServerマルチ対応