3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

(サーバ)非ドメイン環境でWindows XP,2003をNTPサーバにしたい。

ドメイン環境だと勝手にドメインコントローラがNTPサーバになりますが、非ドメイン環境の場合にXP or 2003でNTPにサーバに格上げする方法です。

おもに「@IT:ネットワーク内に基準となるNTPサーバを導入する」からの抜粋です。

まずWindows Timeサービスが稼働しているかどうかを確認します。

そしてレジストリで下記の設定を行います。

---------------------------------------------

Windows Timeサービスを権威あるNTPサーバにするための設定

キー :HKEY_LOCAL_MACHINEのSYSTEM\CurrentControlSet\Services\W32Time\Config

値の名前 :AnnounceFlags

型 :DWORD

値の内容 :0x5 (初期値は0xa)

---------------------------------------------

---------------------------------------------

■ほかのNTPサーバとの同期をしないようにするための設定

キー :HKEY_LOCAL_MACHINEのSYSTEM\CurrentControlSet\Services\W32Time\Parameters

値の名前 :NTPServer

型 :REG_SZ

値の内容 :(空欄)

---------------------------------------------

このあたりはWindows XP で権限のあるタイム サーバーを構成する方法(マイクロソフトサポート技術情報)にも載っています。

ちなみに、AnnounceFlagsレジストリ値の意味は下記のようだそうです。

---------------------------------------------

値 意味

0(全bitが0) : 自身を時刻サーバとして公開しない

1(1bit目が1):明示的に、自身を時刻サーバとして公開する

2(2bit目が1):(Windows Timeサービスの設定に応じて)自動的に、自身を時刻サーバとして公開するかどうか決定する

4(3bit目が1):明示的に、自身の時刻サーバに権威があると公開する

8(4bit目が1):(Windows Timeサービスの設定に応じて)自動的に、自身の時刻サーバに権威があると公開するかどうか決定する

---------------------------------------------

これで、Windows Timeサービスを再起動させれば設定が反映するようです。

ただし、再起動直後にほかのコンピュータから時刻同期を行うと同期できないことがあるが、これはNTPプロトコルの実装上、ローカル・クロックを権威ある時刻と認めるまでに若干時間を要するためなので、特に心配する必要はない だそうです。

ちなみに、Windows2003Serverドメイン環境でのNTPサーバ構築はWindows Server 2003 で権限のあるタイム サーバーを構成する方法マイクロソフトサポート技術情報)に書いてます。

具体的には「内部のハードウェア クロックを使用するように Windows タイム サービスを構成する」方法にあるように下記の手順でできるようです。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\

AnnounceFlagsキーの値を A に変更。

タイムサービス再起動: net stop w32time && net start w32time