当前位置:  开发笔记 > 运维 > 正文

如何确定特定文件是否在Windows中打开?

如何解决《如何确定特定文件是否在Windows中打开?》经验,为你挑选了6个好方法。

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

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



1> Jay Hofacker..:

使用Sysinternals Suite中的Process Explorer,Find Handle或DLL函数将允许您搜索打开该文件的进程.


@MatthewMcCullough有没有参考?您不正确,[Process Explorer](http://technet.microsoft.com/en-us/sysinternals/bb896653)和[Process Monitor](http://technet.microsoft.com/en-us/sysinternals/bb896645 )是两个不同的工具.
是的,它确实.单击Find Handle或Dll(或按Ctrl-F),键入要搜索的文件的名称,最后打开一个打开该文件的进程列表.
Process Explorer是否有命令行界面?

2> 小智..:

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

handle -p pid
listdlls -p pid

你可以找到sysinternals的pid pslist.



3> slipsec..:

尝试处理. Filemon和Regmon也非常适合尝试弄清楚duo程序foo对你的系统做了什么.



4> Alois Mahdal..:

一个等价的lsof可以是来自Sysinternals的句柄listdlls的组合输出,即:

c:\SysInternals>handle
[...]
------------------------------------------------------------------------------
gvim.exe pid: 5380 FOO\alois.mahdal
   10: File  (RW-)   C:\Windows
   1C: File  (RW-)   D:\some\locked\path\OpenFile.txt
[...]

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

  Base        Size      Version         Path
  0x00400000  0x29000   2.25.0000.0000  D:\opt\SysinternalsSuite\Listdlls.exe
  0x76ed0000  0x180000  6.01.7601.17725  C:\Windows\SysWOW64\ntdll.dll
[...]

c:\SysInternals>listdlls

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

listdlls的处理不产生连续的台状形式,以便过滤的文件名会隐藏PID.findstr /c:pid: /c:但是,应该让你与两个实用程序非常接近

c:\SysinternalsSuite>handle | findstr /c:pid: /c:Driver.pm
System pid: 4 \
smss.exe pid: 308 NT AUTHORITY\SYSTEM
avgrsa.exe pid: 384 NT AUTHORITY\SYSTEM
[...]
cmd.exe pid: 7140 FOO\alois.mahdal
conhost.exe pid: 1212 FOO\alois.mahdal
gvim.exe pid: 3408 FOO\alois.mahdal
  188: File  (RW-)   D:\some\locked\path\OpenFile.txt
taskmgr.exe pid: 6016 FOO\alois.mahdal
[...]

在这里我们可以看到gvim.exe是打开此文件的那个.



5> Greg Mattes..:

尝试解锁.

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


Unlocker仅列出锁定的文件,而不是打开的文件.大多数Windows软件锁定它使用的DLL而不是您的文档.

6> Sean..:

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

TaskList /M nameof.dll

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有