如何确定 Windows 中特定文件是否打开?[关闭]

2024-10-14 08:40:00
admin
原创
176
摘要:问题描述:我最喜欢的 Linux 工具之一是lsof - 一把真正的瑞士军刀!今天,我发现自己想知道 WinXP 系统上的哪些程序打开了特定文件。有没有与 lsof 等效的实用程序?此外,有问题的文件是通过网络共享的,所以我不确定这是否会使事情变得复杂。解决方案 1:使用Sysinternals Suite ...

问题描述:

我最喜欢的 Linux 工具之一是lsof - 一把真正的瑞士军刀!

今天,我发现自己想知道 WinXP 系统上的哪些程序打开了特定文件。有没有与 lsof 等效的实用程序?此外,有问题的文件是通过网络共享的,所以我不确定这是否会使事情变得复杂。


解决方案 1:

使用Sysinternals Suite 中的Process Explorer,“查找句柄或 DLL”功能将允许您搜索打开该文件的进程。

解决方案 2:

相当于lsof -p pidsysinternals handle 和 listdlls 的组合输出,即

handle -p pid
listdlls -p pid

您可以使用 sysinternals 找出 pid pslist

解决方案 3:

尝试Handle。Filemon 和Regmon也非常适合尝试找出 duce 程序 foo 对您的系统做了什么。

解决方案 4:

lsof的一个等效项可以是 Sysinternals 的handlelistdlls的组合输出,即:

c:SysInternals>handle
[...]
------------------------------------------------------------------------------
gvim.exe pid: 5380 FOOalois.mahdal
   10: File  (RW-)   C:Windows
   1C: File  (RW-)   D:somelockedpathOpenFile.txt
[...]

c:SysInternals>listdlls
[...]
------------------------------------------------------------------------------
Listdlls.exe pid: 6840
Command line: listdlls

  Base        Size      Version         Path
  0x00400000  0x29000   2.25.0000.0000  D:optSysinternalsSuiteListdlls.exe
  0x76ed0000  0x180000  6.01.7601.17725  C:WindowsSysWOW64
tdll.dll
[...]

c:SysInternals>listdlls

不幸的是,您必须“以管理员身份运行”才能使用它们。

此外,listdllshandle不会生成连续的表格形式,因此过滤文件名会隐藏 PID。findstr /c:pid: /c:<filename>不过,这两个实用程序应该会让你非常接近

c:SysinternalsSuite>handle | findstr /c:pid: /c:Driver.pm
System pid: 4 <unable to open process>
smss.exe pid: 308 NT AUTHORITYSYSTEM
avgrsa.exe pid: 384 NT AUTHORITYSYSTEM
[...]
cmd.exe pid: 7140 FOOalois.mahdal
conhost.exe pid: 1212 FOOalois.mahdal
gvim.exe pid: 3408 FOOalois.mahdal
  188: File  (RW-)   D:somelockedpathOpenFile.txt
taskmgr.exe pid: 6016 FOOalois.mahdal
[...]

这里我们可以看到 gvim.exe 打开了这个文件。

解决方案 5:

尝试解锁。

Unlocker 网站有一个漂亮的图表(点击链接后向下滚动),显示了与其他工具的比较。显然,这种比较通常有偏见,因为它们通常由工具作者编写,但图表至少列出了替代方案,以便您可以亲自尝试。

解决方案 6:

如果文件是 .dll,那么您可以使用TaskList命令行应用程序查看谁打开了它:

TaskList /M nameof.dll

解决方案 7:

有一个程序“OpenFiles”,似乎是 Windows 7 的一部分。它似乎可以做你想做的事。它可以列出远程用户打开的文件(通过文件共享),并且在调用“openfiles /Local on”并重新启动系统后,它应该能够显示本地打开的文件。据说后者有性能损失。

解决方案 8:

使用 Process Explorer 查找进程 ID。然后使用Handle找出打开了哪些文件。

例如句柄-p

我喜欢这种方法,因为您使用的是 Microsoft 本身的实用程序。

解决方案 9:

在OpenedFilesView的选项菜单下,有一个名为“显示网络文件”的菜单项。启用该选项后,上述实用程序可能会派上用场。

解决方案 10:

如果右键单击“计算机”(或“我的电脑”)图标并从弹出菜单中选择“管理”,则会将您带到计算机管理控制台。

在其中,在系统工具\共享文件夹下,您将找到“打开文件”。这可能接近您想要的,但如果文件位于网络共享上,那么您需要在文件所在的服务器上执行相同的操作。

相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1120  
  IPD(Integrated Product Development,集成产品开发)流程是一种广泛应用于高科技和制造业的产品开发方法论。它通过跨职能团队的紧密协作,将产品开发周期缩短,同时提高产品质量和市场成功率。在IPD流程中,CDCP(Concept Decision Checkpoint,概念决策检查点)是一个关...
IPD培训课程   75  
  研发IPD(集成产品开发)流程作为一种系统化的产品开发方法,已经在许多行业中得到广泛应用。它不仅能够提升产品开发的效率和质量,还能够通过优化流程和资源分配,显著提高客户满意度。客户满意度是企业长期成功的关键因素之一,而IPD流程通过其独特的结构和机制,能够确保产品从概念到市场交付的每个环节都围绕客户需求展开。本文将深入...
IPD流程   66  
  IPD(Integrated Product Development,集成产品开发)流程是一种以跨职能团队协作为核心的产品开发方法,旨在通过优化资源分配、提高沟通效率以及减少返工,从而缩短项目周期并提升产品质量。随着企业对产品上市速度的要求越来越高,IPD流程的应用价值愈发凸显。通过整合产品开发过程中的各个环节,IPD...
IPD项目管理咨询   76  
  跨部门沟通是企业运营中不可或缺的一环,尤其在复杂的产品开发过程中,不同部门之间的协作效率直接影响项目的成败。集成产品开发(IPD)作为一种系统化的项目管理方法,旨在通过优化流程和增强团队协作来提升产品开发的效率和质量。然而,跨部门沟通的复杂性往往成为IPD实施中的一大挑战。部门之间的目标差异、信息不对称以及沟通渠道不畅...
IPD是什么意思   70  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用