連載
» 2012年05月17日 05時00分 公開

Windowsネットワーク時刻同期の基礎とノウハウ(改訂版):第2回 Active Directoryおよびワークグループ環境での時刻同期 (4/5)

[小鮒通成,マイクロソフトMVP]

Windows Server 2008 R2を使ったワークグループ環境での時刻同期

 ワークグループ環境での時刻同期については、時刻同期についてドメイン階層を構成することはない、といった点を除けば、その基本動作はActive Directory環境と変わることはない。ただし次のような動作の違いがある。

●デフォルトでは「時刻同期」を行わない

 インストール直後のWindows Server 2008 R2では、「Windows Time」サービスは、スタートアップの種類が「手動」で停止した状態となっており、時刻同期は行わない。Windows Server 2003 R2までのServer OSでは、基本的には「Windows Time」サービスはスタートアップの種類が「自動」になっていて、起動時から時刻同期を行っていた。このようにデフォルト状態が大きく変わったことに注意していただきたい。起動時から時刻同期させたい場合、管理ツールの[サービス]画面で、スタートアップの種類を「自動」に変更する。

Windows Timeサービスの設定 Windows Timeサービスの設定
Windows Server 2008 R2の初期状態では、Windows Timeサービスは起動していない。
  (1)Windows Timeサービスの設定を確認する。
  (2)デフォルトではスタートアップの状態が「手動」になっていて、サービスは起動していない。この行をダブルクリックして、設定を変更する。
Windows Timeサービスを起動する Windows Timeサービスを起動する
デフォルトではWindows Timeサービスが起動していないので、スタートアップの設定を変更する。
  (1)スタートアップの種類を「自動」に変更する。その後、[開始]をクリックしてサービスを起動させるか、システムを再起動させる。

●GUIで時刻同期サーバを指定する

 ワークグループ環境の場合、コントロール・パネルの[日付と時刻の設定]リンクをクリックして[日付と時刻]画面を表示させ、[インターネット時刻]タブを選択して設定できる。[インターネット時刻サーバーと同期する]のチェック・ボックスをオンにし、[サーバー]リスト・ボックスからNTPサーバを選択するだけである(ここに異なるNTPサーバを記入することもできる)。[今すぐ更新]ボタンをクリックすると即座に同期が行われ、結果が画面に表示される。

NTPサーバの設定 NTPサーバの設定
ワークグループ環境の場合、コントロール・パネルの[日付と時刻]画面からNTPサーバを設定できる。
  (1)これをオンにするとNTPサーバと同期する。
  (2)NTPサーバ名を入力するかリストから選択する。
  (3)これをクリックすると、指定されたNTPサーバとすぐに同期が行われる。
[今すぐ更新]ボタンをクリックした結果画面 [今すぐ更新]ボタンをクリックした結果画面
この画面には、前回同期した時刻と、次の同期予定時刻が表示されている。
  (1)次回の同期予定時刻。
  (2)前回の同期時刻。

●デフォルトではNTPクライアントとして構成される

 ワークグループ環境のWindows Server 2008 R2を「NTPサーバとして利用する」といったケースは、ドメイン・コントローラをNTPサーバとして利用するのに比べると、相当に少ないと考えられる。そのためか、上の[インターネット時刻 ]画面から構成した場合も、「NTPクライアント」として構成され、NTPサーバとしては機能しない。NTPサーバとして利用するには、次の方法でNTPサーバとして構成する必要がある。

ワークグループ環境でNTPサーバを構成する

 最初に、以下の2つの作業を行っておく。

  1. コントロール・パネルの[日付と時刻の設定]リンクをクリックして[日付と時刻]画面を表示させ、[インターネット時刻]タブを選択する。そして [設定を変更する]ボタンから[インターネット時刻サーバーと同期する]のチェック・ボックスをオンにし、同期するNTPサーバを指定しておく。
  2. [サービス]管理ツールで「Windows Time」サービスの「スタートアップの種類」を「自動」に変更しておく。

 次に、NTP関連のレジストリ設定を変更する。以下に挙げる各レジストリ・キーの詳細な意味については、前述の「2.Active Directory環境で、PDCエミュレータを権威ある時刻サーバに設定する」を参照していただきたい。NTPサーバ機能を有効にするため、次のレジストリ・キーのEnabled値を1に設定する。

項目 内容
キー HKEY_LOCAL_MACHINEの
SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpServer
値の名前 Enabled
REG_DWORD
0x1(有効)
NTPサーバ機能を有効にするためのレジストリ設定

 さらに、「明示的に権限のある時刻サーバとして公開」するため、次のAnnounceFlags値を5に設定する。

項目 内容
キー HKEY_LOCAL_MACHINEの
SYSTEM\CurrentControlSet\services\W32Time\Config
値の名前 AnnounceFlags
REG_DWORD
0x5
時刻サーバとしてアドバタイズするかどうかなどの設定
値の内容については、前出の表「AnnounceFlagsレジストリ値の意味」を参照のこと。

 最後に、時刻同期の間隔を明示的に指定するため、次のレジストリ・キーのSpecialPollInterval値を86400秒(=1日)以内の値に設定する。

項目 内容
キー HKEY_LOCAL_MACHINEの
SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpClient
値の名前 SpecialPollInterval
REG_DWORD
<86400秒以内の秒数>
内部クロックに同期させるためのレジストリ設定

 なぜこの設定が必要かというと、RFC1305では有効な時刻情報について「86400秒以内に同期」されたものと定められており、これより同期間隔が空いてしまうと、有効な時刻として扱われなくなるためだ。SpecialPollIntervalレジストリ値のデフォルトは604800秒(=1週間)となっており、この要件を満たさない。

 上記の設定が完了したら、[サービス]管理ツールで「Windows Time」サービスを再起動する。同期状況は[日付と時刻]画面の[インターネット時刻]タブ上で確認できるし、w32tm /query /statusコマンドでも確認できる。ただしw32tm /query /statusコマンドで表示される「同期間隔」については、SpecialPollIntervalレジストリ値の内容は反映されないので、この点は注意が必要だ。

ワークグループ環境で構築されたNTPサーバ ワークグループ環境で構築されたNTPサーバ

NTPサーバの動作状況 NTPサーバの動作状況

 なお、Windows Server 2008 R2ドメイン・コントローラと同様に「RFC1305に準拠した間隔での同期」(64秒→128秒→256秒→512秒→……、というふうに、徐々に同期間隔が延びていく)を利用したい場合、[インターネット時刻]画面では設定できない。Windows Timeサービスが動作していることを確認したうえ、PDCエミュレータの設定と同じ方法でw32tm /config /updateコマンドを使う必要がある。その方法の詳細は、前述のActive Directory環境編の「●外部NTPサーバから時刻を同期する方法」や「●内部クロックに同期させる方法」を参考にしていただきたい。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。