如何确定Windows中是否打开了特定文件?
时间:2020-03-05 18:40:37 来源:igfitidea点击:
我最喜欢的Linux工具之一是lsof真正的瑞士军刀!
今天,我发现自己想知道WinXP系统上的哪些程序打开了特定文件。有与lsof等效的工具吗?此外,有问题的文件是通过网络共享进行的,因此我不确定是否会使问题复杂化。
解决方案
回答
如果右键单击"计算机"(或者"我的电脑")图标,然后从弹出菜单中选择"管理",则将带我们到计算机管理控制台。
在其中的"系统工具\共享文件夹"下,我们将找到"打开文件"。这可能与我们想要的接近,但是如果文件位于网络共享上,则需要在文件所在的服务器上执行相同的操作。
回答
尝试处理。 Filemon&Regmon也非常适合尝试找出duce程序foo对系统的作用。
回答
使用Sysinternals Suite中的Process Explorer,Find Handle或者DLL函数将让我们搜索打开该文件的过程。
回答
尝试解锁。
Unlocker站点上有一个漂亮的图表(在单击链接后向下滚动),该图表显示了与其他工具的比较。显然,这样的比较通常是有偏见的,因为它们通常是由工具作者编写的,但是图表至少列出了备选方案,以便我们可以自己尝试。
回答
等效于lsof -p pid是sysinternals handle和listdlls的组合输出,即
handle -p pid listdlls -p pid
我们可以使用sysinternalspslist
找出pid。
回答
如果文件是.dll,则可以使用TaskList命令行应用查看打开该文件的人:
TaskList /M nameof.dll
回答
使用进程资源管理器查找进程ID。然后使用Handle找出打开了哪些文件。
例如句柄-p
我喜欢这种方法,因为我们正在使用Microsoft本身的实用程序。