我最喜欢的Linux工具是lsof的 -一个真正的瑞士军刀!
今天,我发现自己想知道其中的WinXP系统上的程序有一个特殊的文件打开。 是否有任何等效实用程序LSOF? 此外,有问题的文件是在网络共享上,所以我不知道这事情复杂化。
我最喜欢的Linux工具是lsof的 -一个真正的瑞士军刀!
今天,我发现自己想知道其中的WinXP系统上的程序有一个特殊的文件打开。 是否有任何等效实用程序LSOF? 此外,有问题的文件是在网络共享上,所以我不知道这事情复杂化。
使用进程资源管理器从Sysinternals套件,查找处理或DLL功能可以让你搜索与该文件打开的进程。
相当于lsof -p pid
从Sysinternals的组合输出的处理和listdlls的,即
handle -p pid
listdlls -p pid
你可以找到与Sysinternals的PID pslist
。
尝试处理 。 的Filemon和Regmon的也是伟大试图找出领袖程序foo的是做给你的系统。
一个当量的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:<filename>
应该让你非常接近与这两个实用程序,虽然
c:\SysinternalsSuite>handle | findstr /c:pid: /c:Driver.pm
System pid: 4 \<unable to open process>
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是具有打开此文件的人。
尝试解锁 。
该解锁网站有一个漂亮的图表(以下链接后向下滚动),显示了相较于其他工具。 显然,这样的比较通常偏向,因为它们通常是由工具创作者写的,但图表至少列出了备选方案,让您可以尝试一下自己。
如果该文件是一个.dll那么你可以使用tasklist命令行应用程序,看看谁得到它打开:
TaskList /M nameof.dll
如果你的“电脑”(或“我的电脑”)的图标上单击鼠标右键,然后从弹出菜单中选择“管理”,即会带你到计算机管理控制台。
在那里,系统工具\共享文件夹,你会发现“打开文件”。 这可能是接近你想要什么,但如果该文件是在网络共享上,那么你就需要做哪些文件所居住的服务器上的同样的事情。
有一个节目“openFiles散”,似乎是Windows的一部分7.看来,它可以做你想做的。 它可以调用“openFiles散/本地的”后列出了远程用户(通过文件共享),以及打开的文件,并重新启动系统,它应该是能够证明文件的本地打开。 后者是说,有性能损失。
使用Process Explorer来查找进程的ID。 然后使用手柄来找出哪些文件是开放的。
例如手柄-p
我喜欢这种方法,因为你正在使用的实用程序从微软自身。
在OpenedFilesView ,在选项菜单下,有一个名为“显示网络文件”菜单项。 也许与启用,上述的效用是有些用处。