通常,在Windows计算机上,当我删除或移动目录或文件时,会出现错误消息,说明该操作无法完成,因为一个文件正在被另一个程序使用。

是否有一个程序可以让我针对给定的文件找出正在使用的程序并结束该程序?

评论

当我使用MS-Windows时,我发现大多数时候都是Windows资源管理器锁定了文件。我发现Windows资源管理器将自己描述为另一个进程很奇怪。

有人应该为资源监视器添加一个答案,可以通过任务监视器的“性能”选项卡轻松提出该答案(即无需安装任何额外的功能)。它允许您搜索文件名并查找具有锁定名的进程。我现在正在工作,没有时间给它应有的答案。

为什么三个答案指向Russinovich SysInternals工具,而第四个指向广告软件?

嗨,吉比(Gibby),如果您发现这些答案中的任何一个有用,请选中它们旁边的对勾符号,将其标记为已接受。谢谢!

#1 楼

LockHunter是另一个很棒的免费工具。



下载链接

评论


+1你击败了我。它不仅可以完成此处要求的功能,而且还比其他“文件解锁器”更好地工作。强烈推荐。我已经尝试过,每隔几个月重试一次,这仍然是多年来最好的

–莫格说要恢复莫妮卡
2014年6月3日,6:36

@ laggingreflex,Unlocker与LockHunter的比较(12点对6点)是否公平?

–起搏器
2015年4月1日,0:53

@Pacerier有趣的比较。在那些我认为我只关心“卸载DLL”检查的对象中,其余的对我来说似乎微不足道。我也认为该表可能也已过时,因为应该检查“ With reboot”,因为LockHunter确实具有“下次启动时删除”选项。无论如何,我选择LockHunter而不是Unlocker的主要原因是Unlocker在Windows 8上不起作用。我不知道现在是否可以使用,但是在下载部分,它仍然没有特别提到Windows 8。

–滞后反射
2015年4月1日在6:59

@laggingreflex,“卸载DLL”实际上是什么意思?

–起搏器
2015年4月6日在2:29



DLL是通过rundll.exe之类的程序加载的,我认为这意味着将其卸载。

–滞后反射
2015年4月6日在9:46

#2 楼

我经常使用Process Explorer(Microsoft免费提供)来完全按照您的要求进行操作,您可以搜索使用给定文件或目录的程序/任务,然后终止程序或程序树。您甚至可以找到已锁定给定文件的DLL,然后查找并杀死正在使用该DLL的程序。



它还为您提供了许多其他功能有用的信息。


评论


非常感谢,最后杀死了持久性ehmsas.txt文件。效果很棒,我只需要找到搜索按钮(它是工具栏中的双筒望远镜图标)

–大卫
2014年4月26日14:47

@David-很高兴为您提供帮助,这是我在新Windows机器上安装的第一批程序之一。

–史蒂夫·巴恩斯(Steve Barnes)
14年4月26日在18:27

@ SteveBarnes,Unlocker与ProcessExplorer的比较(12点对5点)是否公平?

–起搏器
2015年4月1日,0:52

@Pacerier-虽然它确实提到其他程序(例如Process Explorer)会做很多其他事情,但它并没有实现a)您可以通过杀死正在使用该DLL的所有进程来强制DLL卸载,b)您可以将每个程序,在杀死文件之前将其文件打开到最前面,以确保可以安全地将其杀死-没有丢失的保存位置c)我从不考虑推荐/发布任何已知包含恶意软件/广告软件的东西

–史蒂夫·巴恩斯(Steve Barnes)
2015年4月1日下午5:55

@SteveBarnes,关于点A,“ Dill unload”是否与“ Force kill”相同?另外,您必须详细说明C点。解锁程序是否是恶意软件?

–起搏器
2015年4月6日在2:29

#3 楼

试试Unlocker。

它在文件的右键菜单中创建一个条目,该条目将向您显示正在访问文件的进程的列表,然后您可以通过该列表分离该进程(或在需要时取消该进程

我经常使用Unlocker来帮助我安全地弹出USB驱动器,该驱动器希望将手柄保持打开状态,并且经常会有所帮助。我发现的唯一缺点(这可能与Unlocker本身无关,但是对于保持句柄打开的程序而言)是,大多数情况下,简单地分离进程是行不通的,我必须彻底杀死它。 br />
虽然有许多功能更强大的程序可以执行与Unlocker相同的功能,但出于释放文件句柄的目的,这是我发现可以更快,更一致地工作的程序。

注意:请注意,Unlocker在安装过程中包含潜在的恶意广告软件,并在其安装程序中使用了OpenCandy广告模块。如果您在安装过程中保持谨慎,请阅读显示给您的每个对话框,然后取消选择听起来似乎不是Unlocker一部分的任何内容,那么您可以轻松避免在系统上安装任何恶意软件。

下图显示了由于OpenCandy模块而收到的对话框,在该对话框中,我已经选择了“高级”,并且未选中“安装Delta工具栏”复选框:

评论


@DanteTheEgregore我认为只是显示广告软件的安装程序,而不是Unlocker程序本身。如果在安装过程中单击右按钮,是否还会获得广告软件?

–吉尔斯'所以-不再是邪恶的'
2014年2月7日17:56

@DanteTheEgregore感谢您的警告。老实说,直到今天我才知道安装程序中潜在的恶意软件。我从未使用过安装程序,但始终从可执行文件中手动提取必要的文件,以将它们放置在可移植的软件包中。我已经编辑了答案,以显示如何避免安装程序中潜在的恶意软件。

–肯·赫伯特
2014年2月8日下午0:04

解锁程序适用于Windows 8吗?即使我打开文件,它也会一直告诉我“未找到锁定句柄”。

–接近黑暗鱼
2014年2月8日在21:40

@ValekHalfHeart我不确定是否抱歉,并且没有Windows 8 PC可以对其进行检查。官方站点和CNET都将操作系统列为Windows 7以下版本,但其他下载站点(包括windows8downloads.com)也将其列为Windows 8兼容版本。

–肯·赫伯特
2014年2月9日在1:25



#4 楼

进行一些细化之后,sysinternals进行的进程监视器将做到这一点。唯一真正的问题是信息量太多–您应该使用过滤器,但最后我仅将显示的信息限制为文件系统活动,并通过搜索确切的文件名来查看正在使用什么程序(在本文件中案例,test.text)。

与任何sysinternals软件一样,它的小巧,可移植的功能完全符合其在网上所说的内容-实际上,它除了监视文件系统的进程外,没有其他功能,注册表,网络和流程活动。考虑到它需要的访问级别,它需要以admin / undergo UAC升级的方式运行。您可以正确杀死父进程以撤消锁定。



评论


您能否添加一些有关此工具其他功能的详细信息?为什么您觉得它有用,可能会有什么缺点等?

–安吉洛·福克斯(Angelo Fuchs)
2014年2月9日在18:51

当我因找不到文件而死于进程时,此工具很棒。如果没有此操作,我将无法确定要查找的文件(例如,进程资源管理器或资源监视器向您显示进程已锁定的文件,而不是进程无法找到的文件)。这样就很容易解决,因为它记录了实际查找文件的尝试。一旦知道了找不到的文件,便可以解决问题。

–约翰·罗伯逊
2014年2月26日在19:07

#5 楼

handle是由Microsoft托管的命令行工具,用于执行此操作。它是由Sysinternals(现在由Microsoft拥有)编写的。您可以为其指定文件或目录名称(或任何“句柄”),并显示程序的exe和进程ID(PID)。您可以给它部分文件名,即。

基本用法:

handle c:\movie.mp4


将打印其标题,然后显示类似

vlc.exe       pid: 1256   type: File           1EC: c:\movie.mp4


用法打印在handle -h

一种方便的使用方式是列出笔式驱动器中打开的文件。如果您的笔是D:,则可以运行handle D:,它会打印出哪些程序正在使用您的驱动器和哪个文件。 EULA。曾经有一个-accepteula参数似乎不适用于所有最新版本。该值存储在dword HKEY_CURRENT_USER\Software\Sysinternals\Handle\EulaAccepted中。通过添加

REG ADD "HKCU\Software\Sysinternals\Handle" /v EulaAccepted /t REG_DWORD /d 1 /f


,您可以具有与接受相同的作用。Microsoft网站上还托管着许多其他有趣的sysinternals实用程序。

评论


我得到386点的那一天。 80386再见!

–n611x007
2015年4月1日在7:23

#6 楼

Process Hacker做到了:


功能
-突出显示系统活动的详细概述。
-图形和统计信息使您可以快速跟踪资源消耗和失控进程。
-无法编辑或删除文件?查找正在使用该文件的进程。
-查看哪些程序具有活动的网络连接,并在必要时关闭它们。
-获取有关磁盘访问的实时信息。
-查看详细的堆栈跟踪具有内核模式,WOW64和.NET支持。
-超越services.msc:创建,编辑和控制服务。
-小型,便携式且无需安装。
-100%免费软件(GPL v3)


https://github.com/processhacker/processhacker