- ベストアンサー
ファイルをオープンしているアプリケーションの特定方法
- Cryptainer PEを使用したファイルのマウント仕組みについて詳しく説明します。
- ドライブ内のファイルがオープン中であるため、アンロードできないエラーメッセージの原因と、開かれているファイルを特定する方法について解説します。
- また、ファイルをオープンしたままのアプリケーションが死んだ場合、ファイルの状態はどうなるのかも詳しく説明します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Sysinternalが公開している ProcessExplorer を使えば、あるプロセスが使っているDLL及びハンドルを調べる事が出来る。 fileタイプのハンドルで該当ドライブの中のファイルを捕まえているプロセスが無いか調べれば分かるかもしれない。 (そのツールは元々その様なことに使う為のツールではないので、時間は掛かると思うが) 【窓の杜:ProcessExplorer】 http://www.forest.impress.co.jp/lib/sys/wincust/taskservice/prcsxplorer.html ちなみにアプリケーションが異常終了した場合は、オープンしているハンドルがそのままになると思うので、その様な状況になることは十分有りうると思う。
その他の回答 (1)
- kusa_mochi
- ベストアンサー率76% (1597/2087)
異常終了したプロセスは、「終了」しているのでProcessExplorerからは当然の事ながら見えないと思う。
お礼
いろいろとご教授いただき、ありがとうございました。 その後、アプリケーションを終了したのにアンロードできない現象が発生しました。 開かれているファイルハンドルをProcess Explorerの検索機能で見つけることができたのですが、プロセスを見つけることができませんでした。 しかし、"Handle view"で、Handleを削除することができるみたいで、これを実行すると、暗号化ソフトでアンロードすることができました。 結局、犯人のプロセス・アプリケーションを見つけることはできなかったのですが、ファイルハンドルを削除することで対応できました。ファイルハンドルを削除することの害もないと思いますが、暗号化ソフトを強制終了させるよりかは安心な気もしています。 ありがとうございました。
お礼
回答ありがとうございます。 早速、ProcessExplorerを使ってみたところ、確かにプロセス毎にハンドル、DLLが見え、実際にオープン中のファイル名を確認することができました。 また、ハンドルの検索もできるため、暗号化ドライブがマウントされた状態のファイル名(パスまで)をSubstringとして探せるようなので、ハンドルを持ったプロセスが残っていれば探し出せそうです。 異常終了したアプリケーションのプロセスはこのツールでは表示されないですよね。 今のところ、現象が発生していないので確認できていませんが、試してみたいと思います。 ありがとうございました。