イベントID2000のエラーが頻出する

対象プラットフォーム

質問

Windows NT サーバをファイルサーバとして運用を行っておりますが、突如図1のようなイベントID2000のエラーが発生するようになって困っております。 何が原因なのでしょうか。

回答

イベントID2000 のエラーは何らかの原因でファイルシステムに対して望ましくない方法でアクセスが行われたときに発生するエラーです。 しかし望ましくないアクセスといっても多岐にわたります。 一体どのようにして原因を突き止めればよいのでしょうか。

イベントログの詳細データに注目

原因を見付ける鍵は、イベントログの詳細データ中にあります。 詳細データは 図2 のように、バイナリデータが入っているだけですので、普通は無視している場合が多いと思いますが、今回はその中身に注目してみましょう。 二行目の一連のデータ(図3)が、原因を間接的に表すデータです。 マイクロソフトの技術情報 Qxxxxxxx: http://support.microsoft.com/support/kb/articles/ を参照してください。 このデータを元に原因を推察することが出来ます。

幾つかの原因が列挙されていますが、一般にありがちなのは、CD-ROM 等のリムーバブルメディアのドライブを共有しているのを忘れてメディアを抜いてしまった場合だと思います。 この場合は、共有設定をはずすか、接続しているクライアントを見付けて、接続を切断してもらいましょう。 接続しているクライアントは、リソースキットに付属の netwatch.exe や、図4のように [コントロールパネル] - [サーバ] の "xxxxxx" から見ることが出来ます。

ワクチンソフトが原因の場合も

しかし、原因はこれだけではありません。筆者の体験上、このエラーの原因として一番可能性が高いのは、ワクチンソフトです。 一部のワクチンソフトはウイルスをチェックする際に、ファイルに対して特殊なアクセスを行って調査しているようで、これを Windows NT がエラーとして検出してイベント ID 2000 がイベントログに書かれてしまうのです。

特にワクチンソフトの設定が、ファイルを開く時点でウイルスのチェックを行うようになっていていると、ネットワーク上のサーバにあるファイルを開く度に、サーバのイベントログにこのエラーが発生することもあります。 クライアント上のソフトウェアが定期的にサーバ上のファイルの内容をチェックしている場合は、あっという間にイベントログが ID2000 のエラーで埋め尽くされてしまいます。 マイクロソフトの技術情報を見ても該当する状況がない場合は、切り分けのためにワクチンソフトを動作停止させるか、スケジューリングのチェックだけにして、ファイルに読み書きする度にチェックを行うのを停止して、状況が改善されるかどうかを確かめてみることをお勧めします。

決定的な解決方法なし

ワクチンソフトを停止させるとイベントが発生しなくなるようであれば、やはりワクチンソフトの動作が原因だと考えざるを得ません。 この場合は、ワクチンソフトの仕様の問題であり、実害はないと考えられますので、運用対処でエラーを無視してもよいのですが、往々にしてイベントID2000 のエラーでイベントログが埋め尽くされてしまい、重要なログを見るのも困難な状況になっていることが多いと思います。 残念ながら、現状では有効な対策はありません。ワクチンソフトをバージョンアップしたり、他の製品に置き換える、もしくはワクチンソフトの効果は低くなりますが、リアルタイムにディスクへの読み書きをチェックする方式をやめる等で回避できるかどうかを試行錯誤するしかないようです。

図3b: スキーマにそういうプロパティがないことを確認するスクリプト

注記・補足

  1. EventID.Net
  2. 現状ではワクチンソフトウェアの仕様により、イベントID2000が記録される可能性はほぼなくなったと考えています。
  3. 本文書は、日経 Windows NT 1999 年 10 月号の「トラブル解決 Q&A コーナー」に掲載された「イベントID2000のエラーが頻出する」の草稿を筆者の方で HTML 化して掲載しているものです。

Copyright (C) 1998-2009 TAKAHASHI, Motonobu
Last update: 2002-11-18 01:21:44 JST
webmaster@monyo.com