这个问题不时出现在工作中。我们的构建机器可以通过普通的Windows文件共享访问它的文件。如果有人在机器上远程浏览文件夹,并在一夜之间打开窗口,那么构建失败(就像现在一样)。资源管理器窗口在源树中的一个子文件夹上打开了点。构建删除源,并在构建之前执行干净的检出。删除失败。
现在,我想让构建工作。我是从家里登录的,我宁愿不重新启动构建机器。我无法抓住机器正在寻找的人和文件,我无法远程重启他们的机器。
当一个Windows共享有一个锁时,锁定进程就是系统,所以我认为我不能像正常锁一样杀死它。
有没有人知道如何在不重启机器的情况下释放共享文件夹上的锁?
答案 0 :(得分:24)
找到解决方案。
下载并安装解锁器(警告:删除链接,因为它包含恶意软件)
解锁目录
现在该目录应该被解锁,现在可以删除。
答案 1 :(得分:24)
如果您是通过网络共享文件的服务器上的管理员,则可以使用Windows内置功能:
希望这有帮助。
答案 2 :(得分:4)
尝试Process Hacker: https://wj32.org/processhacker/
进程黑客就像类固醇上的Process Explorer一样。
要查找违规进程,请按CTRL + F或单击“查找DLL句柄”按钮并搜索文件名。
在查找句柄对话框中找到该文件后,您只需右键单击该文件并选择“关闭”即可。 (至少对于v2.39.124)
旧版本在流程的上下文菜单中有一个“终止符”选项。
右键点击违规流程 - > Miscellaneous
- > Terminator
- > 选择终止技术。请注意,有些可能是危险的,可能会产生意想不到的后果。
答案 3 :(得分:1)
我遇到了类似的问题,我上面看到的这些建议都不适合自动夜间版本(正如原始海报所暗示的那样),因为它们都需要手动搜索并杀死锁。
我尝试过的唯一可靠的方法是删除共享本身,进行构建,然后再添加共享。以下是自动删除共享的一种方法:
D:\ Projects> net share Projects / DELETE / Y
用户在Projects上打开了文件。继续操作将强制关闭文件。
项目已成功删除。
(注意:如果您需要提供的权限组很乱,则自动再次创建共享可能会很麻烦。)
答案 4 :(得分:0)
另一种选择是,从Windows Vista开始,使用系统内置的Windows工具:
监控资源:perfmon.exe /res
摘自:Http://www.sysadmit.com/2017/06/windows-how-to-know-that-process-has-open-a-file.html
答案 5 :(得分:0)
我这样做的方法是同时使用OpenFiles.exe和Handle.exe 您可以按任何顺序运行它们,您将完全释放资源。
OpenFiles:断开文件共享会话
Handle.exe:释放所有打开的句柄(不要尝试关闭属于pid4的句柄,因为这是系统进程)
您可以使用Powershell,批处理或您选择的任何语言来自动执行此操作。