第2回 w32timeデバッグ・ログとw32tmコマンドWindowsネットワーク時刻同期の基礎とノウハウ(3/3 ページ)

» 2005年11月10日 00時00分 公開
[小鮒通成マイクロソフトMVP]
前のページへ 1|2|3       

 Windows Timeサービスは、各種レジストリ値を変更することで動作をコントロールできる。以下、事例別にざっと挙げてみよう。

複数の外部NTPサーバから時刻同期を行いたい

 以下のレジストリ値に、時刻同期を行いたいサーバのFQDN(完全修飾ドメイン名)などを、半角スペースを区切り文字として続けて入力すればよい。なお、この設定ではドメインに属しているコンピュータが任意のNTPサーバからも同時に時刻同期を行うといったことはできないので注意してほしい。

項目 内容
キー HKEY_LOCAL_MACHINEのSYSTEM\CurrentControlSet\Services\W32Time\Parameters
値の名前 NTPServer
REG_SZ
値の内容 ntp1.jst.mfeed.ad.jp,0x1 ntp2.jst.mfeed.ad.jp,0x1
複数の外部NTPサーバから時刻同期を行うためのレジストリ設定例

 ちなみに、同期モードを設定する第2パラメータ値(詳細は第1回を参照)は、できれば同じように設定した方がよいだろう。筆者が試した限り、異なるパラメータ値で設定すると、それぞれの参照先サーバにパラメータ値固有の動作で同期を行おうとするようだが、実際は同期間隔などが想定された動作とは異なっているようにも見受けられた。

Windows Timeサービスの同期のタイプを確認したい

 Windows Timeサービスは同期の有無や環境によって4つのタイプを設定できるが、通常は[インターネット時刻]タブやドメインへの参加時、あるいはw32tm /config /syncfromflagsコマンドなどで設定される。

項目 内容
キー HKEY_LOCAL_MACHINEのSYSTEM\CurrentControlSet\Services\W32Time\Parameters
値の名前 Type
REG_SZ
値の内容 NoSync   (同期を行わない場合:[インターネット時刻]タブの“自動的にインターネット時刻サーバと同期する”をオフにすると設定される)
NT5DS    (ドメイン環境内の NTP サーバのみ同期する。ドメイン・コンピュータの標準)
NTP       (外部NTPサーバと同期する。ワークグループ・コンピュータの標準)
AllSync   (ドメイン環境と外部の両方のNTPサーバを同期する)
Windows Timeサービスの同期のタイプ設定

slewモードの有効範囲を変更したい

 時刻が進みすぎている場合に時刻同期を行うと、急に時刻が後戻りすると問題が発生することがあるので、Windows Timeサービスでも後戻りをしないように徐々に時刻を同期するslewモードという機能があり(詳細は前回参照)、何秒間時刻が進んでいる状態まで適用するかを変更することができる。この時間以内のずれならばslewモードによって徐々に時間が変更されるが、この時間以上ずれていると、slewモードではなく、直ちに時刻が変更される。

項目 内容
キー HKEY_LOCAL_MACHINEのSYSTEM\CurrentControlSet\Services\W32Time\Config
値の名前 MaxAllowedPhaseOffset
DWORD
値の内容 0x1     (単位は秒。ワークグループ環境のデフォルト値)
slewモードの有効範囲を変更するためのレジストリ設定

自コンピュータの時刻がどれだけずれていても、無条件に時刻同期を成功させたい

 ワークグループ環境のデフォルト設定では、15時間以上参照先NTPサーバと時刻がずれていると時刻が同期されない。これも以下2つのレジストリ値で制限値を変更したり、無効とすることができる。ただしマイクロソフトの資料では、フォレスト・ルート・ドメインのPDCエミュレータでは900秒(15分)、ワークグループ環境では3600秒(1時間)以内を推奨している。

項目 内容
キー HKEY_LOCAL_MACHINEのSYSTEM\CurrentControlSet\Services\W32Time\Config
値の名前 MaxNegPhaseCorrection (時刻を後戻りさせることが可能な範囲)
DWORD
値の内容 0xffffffff (単位は秒。機能を無効にする場合は0xffffffffとする)
値の名前 MaxPosPhaseCorrection (時刻を進ませることが可能な範囲)
DWORD
値の内容 0xffffffff (単位は秒。機能を無効にする場合は0xffffffffとする)
ずれ時間の許容範囲を設定するためのレジストリ・エントリ

NTPサーバ機能の有効/無効を設定したい

 Windows TimeサービスのNTPサーバ機能(Windows Time Server プロバイダ)は以下のレジストリ値で有効にしたり、無効にしたりできる。

項目 内容
キー HKEY_LOCAL_MACHINEのCurrentControlSet\Services\W32Time\TimeProviders\NtpServer
値の名前 Enabled
DWORD
値の内容 0x1 (無効にしたい場合は0x0と設定する)
NTPサーバ機能の有効/無効を設定するレジストリ設定

 なおこのレジストリ値が0x0の場合、時刻同期時の同期モードは無条件でClient/Serverモード(NTPServerレジストリ値の0x8モード相当)となる。

イベント・ログ(システム・ログ)への出力内容を変更したい

 Windows Timeサービス起動後に、参照先NTPサーバから時刻同期を行ったり、同期された時刻がシステムに反映された場合にはシステム・ログにて記録されるが(詳細は第1回参照)、この内容についてはレジストリ値で設定が可能だ。

 以下のレジストリ値を変更すると参照先NTPサーバとの時刻差や転送の遅れた時間(これらは時刻の正確性や参照のしやすさに影響を与える)について記録するw32timeイベントID 51イベントログを出力させることができる。ただしこの設定はWindows Server 2003のみで有効となるようだ。

項目 内容
キー HKEY_LOCAL_MACHINEのSYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient
値の名前 EventLogFlags
DWORD
値の内容 0x2 (デフォルト値は0x1)
イベントID 51をログに出力するためのレジストリ設定

出力されたイベントID 51のログの例
イベントID 51のログには、参照先NTPサーバとの時刻差や転送の遅れ時間などの情報が記録されている。
 (1)ID番号51。
 (2)システム時間との差などの情報。

 以下のレジストリ値を変更すると、同期された時刻をシステム時刻に反映する際、通常モードでダイレクトに時刻を反映した際の挙動(何秒間システム時刻がジャンプしたか)を記録するw32timeイベントID 33イベント・ログを出力させることができる。なおslewモードで同期されている場合には、時刻が反映されていても記録はされない。

項目 内容
キー HKEY_LOCAL_MACHINEのSYSTEM\CurrentControlSet\Services\W32Time\Config
値の名前 EventLogFlags
DWORD
値の内容 0x1 (デフォルト値は0x2)
イベントID 33をログに出力するためのレジストリ設定

出力されたイベントID 33のログの例
イベントID 33はシステム時間が変更された際の挙動を表すイベント。
 (1)ID番号33。
 (2)システム時間の変更の状況。

 これら以外にも、いくつかのNTPに関するパラメータの値を変更することで、時刻同期のうえでの設定を変更することも可能となっている。詳細については、以下のマイクロソフトの資料にあるので参考にしてほしい。

【更新履歴】

【2005/11/10】当初公開した記事中では、表「NTPサーバ機能の有効/無効を設定するレジストリ設定」の「値の名前」を「Enable」としておりましたが、正しくは「Enabled」でした。お詫びして訂正いたします。



「運用」のインデックス

運用

前のページへ 1|2|3       

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

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

メールマガジン登録

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