量産メモ帳

忘れっぽいのでメモを残しています。浅く適当に書きます。

Windowsでファイルを開いているプロセスを特定する。

スポンサーリンク

ファイルを開いているプロセスを特定する場合、Linux だと lsof というコマンドで解決できるんですが、Windows の場合、SysInternals を使えば解決できます。

SysInternals というのは、元々 Microsoft とは別の会社の名前だったんですが、Microsoft によって買収されたことにより、SysInternals 社が開発したツール群が会社名のまま呼ばれるようになった、と記憶しています。
日経コンピュータの ITpro にもその様に書かれていますね。



で、自分が知っている方法としては2つありまして、1つは GUI の Process Explorer を使う方法、もう1つは CUI の Handle を使う方法です。
Process Explorer も Handle も単体でインストーラー(zipファイル)をダウンロードできますが、、、

これらを一纏めにした SysInternals Suite というものもあるので、個別にダウンロードするのが面倒ならば、こちらでも良いかと思います。



インストーラーをダウンロードしたら、適当なフォルダで解凍します。
解凍されたフォルダの中にある procexp.exe と handle.exe が、それぞれ Process Explorer と Handle の実行ファイルです。


Process Explorer でファイルを開いているプロセスを特定する場合、以下の方法で確認できます。

  1. procexp.exe を実行する。⇒ Process Explorer が表示されます。
  2. 【Process Explorer】メインメニューから「View」→「Lower Pane View」→「Handles」を選択する。または [Ctrl]+[H] キーを押す。⇒ 画面の下にファイルのハンドル一覧が表示されます。
  3. 【Process Explorer】メインメニューから「Find」→「Find Handle or DLL...」を選択する。または [Ctrl]+[F] キーを押す。⇒ Process Explorer Search ダイアログが表示されます。
  4. 【Process Explorer Search】ファイル名を入力して「Search」ボタンを押す。⇒ その下にファイルを開いているハンドルの一覧が表示されます。




一方、Handle でファイルを開いているプロセスを特定する場合、以下の方法で確認できます。

  1. handle.exe のフォルダにパスを通す。
  2. コマンドプロンプトを開き、以下の様なコマンドを実行する。⇒ファイルを開いているプロセスやそのPIDが表示されます。

handle (ファイル名)




参考記事:



関連記事:
rms-099.hatenablog.jp