Q

社内のWindows NTドメインに参加しているWindows 2000/XPコンピュータで,図1のようなイベントID:64というエラーがイベント・ログに頻繁に発生しています。このエラーはなぜ発生するのでしょう。また,どのように対処すればよいのでしょうか。

図1●NTドメインに参加しているWindows 2000/XPのイベント・ログを見ると[イベントID:64]のエラーが頻繁に発生していることがある

A

Windows 2000のActive Directoryでは,W32Time(Windows Time Service)と呼ばれる時刻同期サービスを使って,クライアントのWindows 2000/XPマシンと日付および時刻を同期しています。しかし,Windows NTにはW32Timeと同様の時刻同期機能が標準ではありません。今回のエラーは,このことが原因で発生しています。

 Windows NTドメインに時刻同期の機能を追加してあげれば,この問題は解決します。

 Windows NTドメインでWindows 2000/XPマシンと日付や時刻を同期させるには,ローカルNTP(Network Time Protocol)サーバーとなる機能をドメイン・コントローラに追加する必要があります。ただし,Windows NT Serverのリソース・キットが提供している時刻同期ユーティリティのTimeservには,このNTP機能は含まれていません。

MSサイトから入手したソフトを導入
 このため,マイクロソフトのFTPサイトから別途ダウンロードしたものをインストールする必要があります(該当サイト)。通常のインテルCPUを搭載したサーバー機ならば,x86フォルダの下にあるW32Timeフォルダをダウンロードしましょう。

 次に,ダウンロードしたフォルダの中にある2つのファイルを,ドメイン・コントローラにコピーします。具体的には,W32Time.exeを%SystemRoot%\System32に,W32time.iniを%SystemRoot%にコピーします。

図2●W32time.iniファイルを編集し,ローカルNTPサーバーを有効にする「LocalNTP=yes」という記述にする

 続いて,コピーしたW32time.iniファイルを編集して図2のように設定を変更します。このうち「LocalNTP=yes」というものがローカルNTPサーバーを有効にする設定です。これ以外に関する設定内容の詳細は同時にダウンロードしたW32TIME.docを参照してください。

 それから,コマンド・プロンプトで「W32TIME -AUTOMATIC」というコマンドを実行し,Windows NTのドメイン・コントローラにW32Timeサービスをインストールします。これにより次回の起動からサービスが自動的に開始するように設定されます。最後に,コントロール・パネルから「Windows Time Service」を手動で開始すれば,サービスが実行されます。

 これら一連の設定によりWindows NTのドメイン・コントローラでローカルNTPサーバーを有効にした時刻同期サーバーを構築可能です。

 なお,サービスのインストール後に%SystemRoot%\W32time.iniファイルを再編集した場合は,以下のコマンドを実行することで,システムを再起動しなくても即座にその設定が反映されます。

net stop w32time
w32time -update
net start w32time

 サーバーの設定後,時刻を同期したい各クライアントのコマンド・プロンプトから「net time /setsntp:DC名」というコマンドを実行します。このコマンドを実行することでWindows NTドメインにおいてWindows 2000/XPクライアントが正常に時刻を同期することが可能となります。

 ただし,このコマンドを実行すると,レジストリが変更されます。そのため,この設定をしたクライアントをActive Directory環境に新たに参加させる場合は,値をデフォルトに戻す必要がある点に注意してください。具体的な手順としては,
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
\W32Time\Parametersというエントリにあるntpserver値(REG_SZ)を削除し,typeというREG_SZ値をntpからnt5DSに変更する必要があります。

 詳細はマイクロソフト社のサポート技術情報を参照ください(314345)。

瀧澤 俊臣