Handle v3.31

作者:Mark Russinovich

發佈日期: 2008 年 4 月 15 日


簡介

您曾經想過特定的檔案或目錄是由哪個程式開啟的嗎?現在您可以輕易取得這個資訊。Handle 是一個公用程式,其功能為顯示系統內任何處理程序的已開啟控制碼資訊。您可以使用它來查看開啟檔案的程式,或是查看程式中所有控制碼的物件類型和名稱。

您也可以在 Sysinternals 的這個位置取得此程式的 GUI 版本,Process Explorer

回到頁首

安裝

鍵入 "handle" 即可執行 Handle。您必須擁有系統管理權限才能執行 Handle。

Handle 適用於 Windows 9x/Me 和 Windows NT 以及更高版本,也可用於 x64 Windows XP 和 Windows Server 2003 64 位元版本。

回到頁首

使用方式

Handle 是用於搜尋開啟的檔案參考。因此,如果您未指定任何命令列參數,則會列出系統中可對應到開啟的檔案和檔案名稱的所有控制碼值。 您需要使用數個參數才能修改此行為。

用法:handle [[-a] [-u] | [-c <handle> [-y]] | [-s]] [-p <processname>|<pid>> [name]

-a
列出所有控制碼類型的資訊,而不只是對應到檔案的資訊。其他類型包括連接埠、登錄機碼、同步處理原始物件、執行緒和處理程序。

-c
關閉指定的控制碼 (解譯為十六進位數字)。您必須使用 PID 來指定處理程序。

警告:關閉控制碼會讓應用程式或系統變得不穩定。

-y
關閉控制碼時,不提示您進行確認。

-s
列印每個控制碼類型開啟的計數。

-u
搜尋控制碼時,顯示擁有的使用者名稱。

-p
這個參數不會檢查系統中的所有控制碼,而是會將 Handle 的掃描範圍縮小成以指定名稱處理程序開始的處理程序。所以:

handle -p exp

會列出所有以 "exp" 開頭的處理程序 (包括 Explorer) 所對應的已開啟檔案。

name
具有此參數,您才能指示 Handle 搜尋特殊名稱的物件參照。例如,如果您想要知道哪個處理程序 (如果有的話) 開啟了 "c:\windows\system32",則您可以鍵入:

handle windows\system

比對名稱時不區分大小寫,且指定的片段可以是感興趣之路徑中的任何位置。

Handle 輸出

不處於搜尋模式 (啟用方式是將名稱片段指定為參數) 時,Handle 會根據要列印控制碼資訊的每個處理程序,將輸出分成不同的區段。虛線是分隔字元,而您會在虛線下緊接著看到處理程序名稱和其處理程序識別碼 (PID)。在處理程序名稱下方會列出控制碼值 (十六進位)、與控制碼相關的物件類型,以及物件的名稱 (如果有的話)。

處於搜尋模式時,Handle 會在左邊列印處理程序名稱和其識別碼,而會在右邊列印對應的物件名稱。

回到頁首

詳細資訊

如需物件管理員的相關資訊,您可以查看《Windows Internals 第四版》或使用 WinObj 來瀏覽物件管理員名稱空間。

相關工具

這裡有一些在 Sysinternals 中其他的監控工具:

  • Process Explorer - 適用於 Win9x/Me 和 NT/Win2K 的 GUI DLL 與控制碼檢視器

  • ListDLLs - 適用於 Win9x/Me 和 NT/Win2K 的命令列 DLL 檢視器

回到頁首

Microsoft Handle 知識庫文章

下列是有關 Handle 的 Microsoft 知識庫文章或問題疑難排解:

下載 Handle (128 KB)

 

 

 

回到頁首