Directory環境では、各クライアントおよびドメイン・コントローラは時刻同期のためのプロトコルとしてNTPを利用している。Modeにて行われる)。Directoryでは、その頂点をFSMOの役割の1つであるPDCエミュレータが受け持ち、それ以外のドメイン・コントローラはPDCエミュレータあるいはほかのドメイン・コントローラから、時刻同期を行う。各クライアントは直近のドメイン・コントローラ(つまり自身がログオンするドメイン・コントローラ)から、時刻同期を行うようになっている。Directory環境では、基本的には各サイト内の「信頼に足る時刻」を持つドメイン・コントローラから時刻同期を行うが、該当するドメイン・コントローラが存在しない場合、別のサイトにあるドメイン・コントローラあるいはPDCエミュレータから時刻同期を行う。マイクロソフトの資料によると、フォレスト・ルート・ドメインのPDCエミュレータ以外のドメイン・コントローラが時刻同期を行う場合、以下の優先順序で時刻同期を行おうとする。筆者の検証でも、資料どおりの挙動がある程度は確認できた。サイト内の親ドメイン・コントローラサイト内のローカル・ドメイン・コントローラサイト内のローカルPDCエミュレータサイト外の親ドメイン・コントローラサイト外のローカル・ドメイン・コントローラサイト外のローカルPDCエミュレータ細かい話となるが、実際の挙動は資料と異なっている場合がある(特定の状況下で同期を行わない)ので、非常に詳細な制御が必要な場合は注意を要する。Synchronization”の項目を参照いただきたい。Works[英語](マイクロソフト)なおNTPプロトコルの実装では、NTPサーバが自分自身を時刻同期の参照先とすることを認めていないため、例えばPDCエミュレータが時刻を同期する場合、3や6の手順は実行されない。「NTPサーバが自分自身を時刻同期の参照先とすることを認めない」は、ワークグループ環境などでも当てはまるため、覚えておくといいだろう(*)。XP以降ではこのような設定を行うことはできない。別の設定を行うことで、自身を標準時刻とすることができる(詳細については第3回参照)。フォレスト・ルート・ドメインのPDCエミュレータは、ドメイン環境での時刻同期ツリーの頂点であり、外部NTPサーバと時刻を同期させる必要があるので、ほかのドメイン・コントローラと挙動が異なる。Directory環境で、Windowsのみでマシンが構成されている場合、フォレスト・ルート・ドメインのPDCエミュレータ以外のすべてのマシンは、上記の構成に基づいて自動的に最適な形で時刻同期のためのネットワークが設定されるため、特に管理者が注意することはない。フォレスト・ルート・ドメインのPDCエミュレータの時刻同期は自動設定されないため、これに対してのみ、外部のNTPサーバから時刻同期するよう設定すればよいだろう。ドメイン・コントローラ上では、時刻同期のための[インターネット時刻]タブ(詳細は前ページ参照)は存在しない。よって、コマンドで時刻同期のための設定を行う必要がある。コマンドを利用してPDCエミュレータが時刻同期を行う方法は、ワークグループ環境で時刻同期するためのコマンド設定と要領は同じである。以下の設定では[インターネット時刻]タブでの設定と内容的には同じになる。/resync」コマンドを実行すればよい。Modeに設定する方法と比べると、パラメータの一部が「0x8」が「0x1」となっているところだけが異なっている。このパラメータ値には以下の意味がある。Modeによる同期方法(詳細は前ページ参照)/manualpeerlistの第2パラメータこのパラメータ値を変更することで、同期の仕方や同期間隔に影響を与えることができる。上位となる外部NTPサーバの実装に応じて使い分けるとよいだろう。ちなみに上記の値は以下のレジストリ値に記録される。Timeサービスでの時刻同期間隔は基本的にはNTPプロトコルの時刻同期間隔に準拠している。標準的なNTPの時刻同期間隔は可変的なものであり、通常は最小同期間隔から同期の状態を確認しながら徐々に間隔が空く形で最終的には最大同期間隔で同期される。この同期間隔は以下のレジストリ値で設定されているため、値を変更することで間隔を変更することが可能だ。内容キーHKEY_LOCAL_MACHINEの\SYSTEM\CurrentControlSet\Services\W32Time\Config値の名前MinPollInterval型REG_DWORD値の内容0xa(ワークグループ環境での初期値。2の10乗=1,024秒)0x6(ドメイン環境での初期値。内容キーHKEY_LOCAL_MACHINEの\SYSTEM\CurrentControlSet\Services\W32Time\Config値の名前MaxPollInterval型REG_DWORD値の内容0xf(初期値。上記の0xaや0x6、0xfという数値は、NTPプロトコルの実装に基づき、2のべき乗を表すことに注意してほしい。上記MinPollInterval値(ドメイン)は、2の6乗=64なので、64秒ごとの同期間隔となる。Directory環境でもワークグループ環境でも変わることはなく、同じように動作する。NTPServerレジストリ値のパラメータが「0x1」となっている場合は、例外的に定間隔な同期間隔で同期が行われる。[インターネット時刻]タブから設定したときには無条件で有効となる。この状態では、(一度も時刻同期したことがない場合)最初に時刻同期した後に、以下のレジストリ値で定められた間隔で時刻同期が実施される。必要に応じて設定の変更が可能だ。上記の値は単に秒数で設定されるため、例えばワークグループ環境であれば10進数換算で604,800秒(=7日)ごとに時刻が同期される。ドメイン環境では3,600秒、つまり1時間間隔となる。Timeサービスの起動時ごとに同期されるわけではなく、前回同期時からカウントされる。SpecialPollInterval値による同期記録は同じキーにあるSpecialPollTimeRemaining値に記録されるため、この内容を空にしておけば記録情報を初期化できる。SpecialPollInterval値は通常フォレスト・ルート・ドメイン内における、PDCエミュレータでないドメイン・コントローラや、ドメインに参加しているクライアントでは利用されないため、初期値にあるように(10進数換算で)3,600秒(=1時間)ごとに時刻を更新することはない。SpecialPollInterval値を使った一定時間間隔での同期設定はNTPプロトコルに基づく実装ではない。2000でのWindows時刻同期の実装に慣れ親しんだ管理者には理解しやすいだろう。2005/08/12】「■方法1:w32tmコマンドで設定する」において、w32コマンドのオプション・パラメータを「/syncformflags:manual」としておりましたが、正しくは「/syncfromflags:manual」でした。お詫びして訂正させていただきます。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。