是否想过要了解某个程序打开了哪个特定文件或目录?现在您可以找到答案了。Handle 是一个实用程序,用来显示有关在系统中为任何进程打开的句柄的信息。您可以使用它来查看打开某个文件的程序,或查看程序的所有句柄的对象类型和名称。
在 Sysinternals,您还可以获得此程序的基于 GUI 的版本 Process Explorer。
安装
键入“handle”即可运行 Handle。必须有管理员权限才能运行 Handle。
Handle 可在 Windows 9x/Me、Windows NT 和更高版本以及 Windows XP x64 和 Windows Server 2003 64 位版本中运行。
用法
Handle 的主要目的是搜索打开的文件引用,因此,如果没有指定任何命令行参数,它将会列出系统中引用打开文件和这些文件的文件名的所有句柄的值。它也可以使用几个参数来修改此行为。
用法:handle [[-a] [-u] | [-c <句柄> [-y]] | [-s]] [-p <进程名>|> [名称]
-a
转储有关所有类型的句柄(而不仅仅是引用文件的那些句柄)的信息。其他类型包括端口、注册表项、同步基元、线程和进程。
-c
关闭指定的句柄(解释为十六进制数字)。必须按 PID 指定进程。
警告:关闭句柄会导致应用程序或系统不稳定。
-y
不提示关闭句柄确认。
-s
打印每种已打开句柄类型的计数。
-u
搜索句柄时显示拥有这些句柄的用户名。
-p
此参数可以缩小 Handle 的扫描范围,只扫描以此名称开头的进程,而不对系统中的所有句柄进行检查。这样:
handle -p exp
会转储以“exp”开头的所有进程的已打开文件,其中包括 Explorer。
name
使用此参数的目的是指示 Handle 搜索对带有特定名称的对象的引用。例如,如果要知道哪个进程(如果有)已打开“c:\windows\system32”,可以键入:
handle windows\system
此名称匹配不区分大小写,指定的片段可以是所需的路径中的任何位置。
Handle 输出
不在搜索模式(通过将名称片段指定为参数的方式启用)下时,对于每个 Handle 正为其打印有关句柄信息的进程,Handle 可将其输出分成若干部分。虚线可用作分隔符,在每个虚线后面,都将看到进程名及其进程 ID (PID)。进程名下面列出了句柄值(十六进制)、关联的对象类型和对象名称(如果有)。
在搜索模式下,Handle 打印进程名,其 ID 列在左侧,具有匹配的对象名称列在右侧。