第2回 w32timeデバッグ・ログとw32tmコマンド:Windowsネットワーク時刻同期の基礎とノウハウ(3/3 ページ)
今回はw32timeサービスのログとw32tmコマンドの使用法について解説する。
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をログに出力するためのレジストリ設定 |
これら以外にも、いくつかのNTPに関するパラメータの値を変更することで、時刻同期のうえでの設定を変更することも可能となっている。詳細については、以下のマイクロソフトの資料にあるので参考にしてほしい。
【更新履歴】
【2005/11/10】当初公開した記事中では、表「NTPサーバ機能の有効/無効を設定するレジストリ設定」の「値の名前」を「Enable」としておりましたが、正しくは「Enabled」でした。お詫びして訂正いたします。
「運用」
Copyright© Digital Advantage Corp. All Rights Reserved.