Windows 2008 R2 - 内核(系统进程PID=4)正在锁定文件和文件夹。

26

Windows 2008 R2 - 内核 (系统进程 PID=4) 长时间锁定文件和文件夹。 例如,在删除文件时,该文件可能会保持锁定状态 1 分钟或更长时间,只有在此之后才能被删除。 还有一些情况下,我遇到了无法删除的文件或文件夹。ProcMon 显示系统进程会持有这些资源的句柄几分钟,然后释放它们。 我提到的所有资源都不是系统资源,仅是由我安装和处理的应用程序中的文件和文件夹。

8个回答

37

6
+1 对于这个答案来说还不够 - 这已经困扰了我几年,表现为 Visual Studio 2010 由于文件被锁定而无法构建。现在问题已经解决了。 翻译:这个回答的赞数还不够——这个问题困扰了我几年,并且导致了 Visual Studio 2010 由于文件锁定而无法构建。现在问题已经得到解决。 - Eight-Bit Guru
在Windows 10中,可以按照以下说明找到应用程序体验:http://answers.microsoft.com/en-us/windows/forum/windows_10-other_settings/where-can-i-find-application-experience-service-in/a499361b-b7c5-46d1-81c3-15a098860446?auth=1 - Makis
1
@Makis 如果你在Windows 10上禁用它,会发生同样的事情吗? - Maiku Mori

21

通过共享访问的文件将被系统进程(PID 4)锁定。

尝试打开 compmgmt.msc -> 系统工具 -> 共享文件夹 -> 打开的文件,查看锁定的文件是否在其中列出。

请参见 Sysinternals论坛了解复制此问题的方法。
并非所有应用程序在打开时都会锁定文件,但Excel会......


谢谢!尝试了相当长的时间才找到哪个Excel进程打开了文件,结果发现是共享用户 :-) - littlegreen
感谢您的回复@janv8000。我尝试了来自SysInternals的Process Explorer(无法关闭句柄,文件正在被系统进程使用),在Windows Server 2008上使用Process Monitor(没有用),以及其他一些工具来查找是什么导致了文件锁定。我不知道“共享文件夹”下有一个“打开文件”列表。它甚至显示了谁在远程访问,所以我可以检查并验证是否已完成。谢谢! - Torrents
这非常有趣,我已经花了三个星期尝试多种方法来解决这个问题(而不必重新启动服务器),你有没有找到自动化此过程的方法?通过cmd提示符/PowerShell运行它,非常感谢,你的答案已经足够了。 - dim_user
有没有办法防止这种行为? - crush
太棒了!仍适用于Windows 2016服务器。实际上,进程监视器也无法为我完成此操作。如果Google索引这些评论,那么这对修复Sage / PeachTree会计2021升级过程出现的问题至关重要,使我能够释放SUA00021.LCKPT.LCK以进行删除,并且Sage可以启动。 - BaseZen

8

在我的情况下,通过命令行中的简单命令来修复了它:

net session /delete

我希望这可以帮到您。

2
希望这能帮到其他人。
打开Windows运行窗口并启动mmc.exe。
文件->添加或删除Snap-ins ->共享文件夹->本地计算机。
选择“打开的文件”,滚动到目录或文件,右键单击以关闭。
您还可以获取锁定文件的用户名并转到会话,右键单击->关闭会话。
在我的情况下,是MacOS 10.13仍在保持文件锁定状态... https://support.apple.com/en-us/HT208209

1

我在尝试重命名文件夹时遇到了问题。我必须在执行重命名操作时停止服务器服务。仅仅重新启动服务器是没有帮助的,因为系统进程会在服务器服务重新启动后立即重新锁定文件夹。


1

做这个并解决问题:

前往“服务”并激活“应用体验”。

1

2


值得一提的是,此服务在Windows 10中不存在。它曾经出现在预览版中,但发布版本使用了不同的方法来管理兼容性。如果您在Windows 10中遇到PID 4(系统内核)锁定文件的问题,这不是原因。 - Craig.Feied

0
尝试了所有这些...
即使复制文件,删除原始文件,将复制文件重命名为原始名称(全部在服务器上操作)也会立即告诉我用户已锁定。
最后 -
使用Unlocker清除文件锁定。 将文件从服务器复制到桌面。 从服务器删除原始文件。 更改桌面上的副本文件名。 将其重新命名为桌面上的原始名称。 将文件放回服务器上的原始位置。
祝您好运,可能会有所不同... :)

0

刚刚在尝试将数据复制到一个新文件服务器时出现了这个问题(源和目标服务器都运行Windows 2008 R2)。

使用procexp发现PID 4锁定了该文件,但是两台服务器上都没有安装应用程序体验,并且该文件未显示在打开文件列表中。

幸好我们在该服务器上使用了预定阴影副本(以便用户能够自助进行大多数文件恢复)。我只需使用“以前的版本”选项(通过包含文件夹的属性可用),选择文件的最新副本并将其复制到其他位置,然后删除并替换有问题的文件。

您可能需要删除包含文件夹才能删除该文件-如果有许多正在使用的文件,则可能会有问题(对于我来说,这不是问题,因为这是文件夹中唯一的文件)。

对于像我遇到的单个锁定文件的一次性问题,这样做可以在服务器或用户没有任何中断的情况下完成。

考虑到您正在谈论服务器并且Shadow Copies正在使用VSS,如果您不使用Shadow Copies,则应该能够从备份中恢复锁定的文件(假设您有这些备份)。否则,周围有一些有用的工具,例如ShadowSpawn(https://github.com/candera/shadowspawn),可能会有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接