我最喜欢的linux工具之一就是lsof - 真正的瑞士军刀!
今天我发现自己想知道WinXP系统上哪些程序打开了特定的文件.是否有与lsof等效的实用程序?此外,有问题的文件是通过网络共享,所以我不确定这是否复杂.
使用Sysinternals Suite中的Process Explorer,Find Handle或DLL函数将允许您搜索打开该文件的进程.
相当于lsof -p pid
sysinternals句柄和listdlls的组合输出,即
handle -p pid listdlls -p pid
你可以找到sysinternals的pid pslist
.
尝试处理. Filemon和Regmon也非常适合尝试弄清楚duo程序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:
但是,应该让你与两个实用程序非常接近
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是打开此文件的那个.
尝试解锁.
Unlocker站点有一个漂亮的图表(按照链接后向下滚动),显示与其他工具的比较.显然,这种比较通常是有偏见的,因为它们通常由工具作者编写,但图表至少列出了替代方案,以便您可以自己尝试.
如果文件是.dll,那么您可以使用TaskList命令行应用程序查看谁打开它:
TaskList /M nameof.dll