Handle

作成者: Mark Russinovich

 Handle のダウンロード
(196 KB)

概要

ある特定のファイルやディレクトリがどのプログラムによって開かれているのかを疑問に思ったことがあると思いますが、その疑問を解決できるようになりました。Handle は、システムのプロセスで開かれているハンドルに関する情報を表示するユーティリティです。このユーティリティを使用すると、ファイルを開いているプログラムを確認したり、オブジェクトの種類やプログラムのすべてのハンドルの名前を確認することができます。

また、このプログラムの GUI ベースのバージョン、Process Explorer も、Sysinternals のサイトで取得できます。

インストール

「handle」と入力して、Handle を実行します。Handle を実行するには、管理者特権が必要です。

使用法

Handle は、開いているファイルの情報を検索するユーティリティです。実行時にコマンド ライン パラメーターを指定しなくても、開いているファイルとファイルの名前を示す、システム内のすべてのハンドルの値が一覧表示されます。また、この動作を変更するいくつかのパラメーターがあります。

使用法: handle [[-a] [-u] | [-c <ハンドル> [-l] [-y]] | [-s]] [-p <プロセス名>|<PID>> [<名前>]

-a ファイルを参照しているハンドルだけでなく、すべての種類のハンドルに関する情報をダンプします。他にも、ポート、レジストリ キー、同期プリミティブ、スレッド、およびプロセスに関するハンドルがあります。
-c 指定のハンドルを閉じます (16 進数値で解釈されます)。プロセスは PID で指定する必要があります。
警告: ハンドルを閉じると、アプリケーションやシステムが不安定になることがあります。
-l ページ ファイルを使用するセクションのサイズをダンプします。
-y ハンドルを閉じることについて確認のメッセージを表示しません。
-s 開いている各種類のハンドルの数を出力します。
-u ハンドルの検索時に、そのハンドルを所有しているユーザー名を表示します。
-p このパラメーターを使用すると、システム内のすべてのハンドルを確認するのではなく、名前が指定した文字列で始まるプロセスに限定して、ハンドルをスキャンできます。たとえば、次のようになります。

handle -p exp

このコードでは、exp という文字列で始まるすべてのプロセスで開かれているファイルをダンプします。このようなプロセスには、Explorer などがあります。
<名前>

このパラメーターを使用すると、オブジェクトに関する情報を検索する際に、特定の名前を指定して直接検索できます。
たとえば、c:\windows\system32 を開いているプロセス (または c:\windows\system32 が開かれているかどうか) を確認する場合、次のコードを入力します。

handle windows\system

名前の一致を確認する際、大文字と小文字は区別されません。また、指定した名前は任意の検索パスに対して照合されます。

Handle の出力

検索モードでない場合 (名前の一部をパラメーターで指定すると有効になります)、ハンドルの情報を出力する各プロセスごとにセクションを分けて出力します。破線が区切り記号として使用され、その直下にプロセス名とプロセス ID (PID) が表示されます。プロセス名の下にはハンドルの値 (16 進数)、ハンドルに関連するオブジェクトの種類、オブジェクトがある場合はオブジェクトの名前が一覧表示されます。

検索モードの場合、プロセス名とプロセス ID は左側に、対応するオブジェクトの名前は右側に一覧表示されます。

詳細情報

オブジェクト マネージャーの詳細については、『インサイド Microsoft Windows 第4版』(上下) を参照してください。または、WinObj (英語) を使用して、オブジェクト マネージャーの名前空間を参照してください。

Handle に関連するマイクロソフト サポート技術情報の記事

以下のマイクロソフト サポート技術情報の記事では、さまざまな問題を診断したりトラブルシューティングを行う際、参考ツールとして Handle について言及しています。

 

ダウンロード

Handle のダウンロード
(196 KB)

 

 ページのトップへ

ダウンロード

ダウンロード

Handle のダウンロード
(196 KB)

 

動作環境

  • クライアント: Windows XP 以降
  • サーバー: Windows Server 2003 以降

関連ツール

以下に、Sysinternals で入手できる、Handle 以外の監視ツールを示します。

  • Process Explorer: GUI ベースで DLL とハンドルを表示します (Windows 9x、Windows Me、Windows NT、Windows 2000 にも対応しています)
  • ListDLLs (英語): DLL を表示するコマンド ライン ユーティリティ (Windows 9x、Windows Me、Windows NT、Windows 2000 にも対応しています)