最直接有效的方法是使用需管理员权限的openfiles /query命令,它能列出各进程打开的文件及关联信息;powershell仅可查最近使用的.lnk快捷方式,非实时句柄。
在 windows 命令行中查看所有被进程打开的文件,最直接有效的方法是使用 openfiles 命令。它专为监控文件句柄设计,能列出当前系统中由各进程打开的文件及其关联信息。
使用 openfiles 查看打开的文件
该命令需以管理员权限运行,否则会提示“拒绝访问”或返回空结果。
- 打开命令提示符(右键“命令提示符” → “以管理员身份运行”)
- 输入:openfiles /query,回车执行
- 输出包含:主机名、ID、访问者、类型、打开模式、打开文件名等列
- 若只想看本地计算机的结果,可加参数 /local:openfiles /query /local
补充:用 PowerShell 获取更灵活的信息
虽然 openfiles 是原生首选,但 PowerShell 可配合系统 API 提供额外视角(如结合进程名过滤):
通过 SSH 隧道从 Android 设备在互联网上对 Windows PC 实现完整远程控制的设置与使用指南,适用于远程桌面访问、安全 RDP 等。
- 先启用活动历史记录支持(仅首次需要):Add-AppxPackage -Register "$env:windir\SystemApps\Microsoft.Windows.ShellExperienceHost\AppxManifest.xml" -DisableDevelopmentMode
- 查询最近打开的文件快捷方式位置:Get-ChildItem "$env:APPDATA\Microsoft\Windows\Recent"
- 注意:此路径下是 .lnk 快捷方式,反映的是用户级“最近使用”,不是实时内核级文件句柄
区分“打开的文件”和“最近使用的文件”
容易混淆的两类场景:
- 实时占用型:文件正被记事本、Excel 或服务进程锁住,无法删除——openfiles 是唯一可靠命令
- 历史记录型:你昨天双击过某个 PDF,现在它只是出现在快速访问或 shell:Recent 中——这不属于“打开”,而是系统日志行为
- dir、tree、find 等命令只查磁盘内容,不涉及进程状态,不能用于此目的
常见问题处理建议
如果 openfiles 返回为空或报错:
- 确认已用管理员身份运行命令提示符
- 检查系统是否禁用了“维护任务”中的“共享文件夹”功能(openfiles 依赖 Server 服务)
- 在 Windows 10/11 家庭版中,Server 服务默认关闭,此时可改用第三方工具如 Process Explorer(微软官方出品,免费)










