如何确定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本身的实用程序。