bP012
どのプロセスがファイルを開いているか知りたい。
openfiles コマンドやツールで確認する。
 
ファイルを削除したり、移動、更新しようとしたときに、エラーメッセージか表示されて削除できないことがある。 原因のほとんどは、そのファイルが開かれていたり、ロックされているためである。 エラーメッセージにプログラム名が表示されれば簡単に分かるが、メッセージによってはプログラム名が分からないこともある。 再起動後に実行しても同様のエラーが表示されるようなときには、どのプロセスがファイルをオープンしているのか確認すればよい。 WindowsXP Professional なら、どのプロセスがどのファイルをオープンしているかは、openfiles コマンドで調べることができる。 まずは、コマンドプロンプトで次のように入力する。
   openfiles /local on  
システムを再起動したあと、コマンドプロンプトで「openfiles」と入力すれば、 入力した時点で開いているファイル名の一覧とプロセス名か表示されるので、この中からファイル名を頼りに調べることができる。 ただし、「openfi1es /local on」を実行したあとは、常にプロセスが開いたファイルを記録しているためパフォーマンスか若干低下してしまう。 そのため、調べ終わったら、次のコマンドを入力して設定を元に戻しておこう。
   openfiles /local off  
WindowsXP Professional 以外のOSを使っている場合でも、「filemon for Windows(フリーソフトウェア)」などを使用すれば、情報が得られる。 「filemon for Windows」の起動直後は、連続キャプチャした情報を自動スクロールしながら表示するため、必要な情報がどこにあるか見づらいが、 フィルター設定で絞り込めば容易に探し出せるはずだ。 また、表示文字が小さくて見にくい場合は、フォントも変更できる。
 
[注]1. 「openfiles /local off」コマンドを実行した途端に「openfiles.exe - コンポーネントが見つかりません」との メッセージが表示されるケースがある。
メッセージの詳細を見ると、「framedyn.dll が見つからないため、このアプリケーションを開始できませんでした。 アプリケーションをインストールし直すとこの問題は解決される場合があります。」 と表示されている。
 
 
参考:PC Japan 2003/09 Page49
△ Return