为什么退出应用程序后,SYSTEM会继续锁定可执行文件句柄?
我在Windows 7计算机上看到奇怪的行为;看起来,当可执行文件运行时,SYSTEM会在下一分钟左右将其句柄保持打开状态。这是我最近的遭遇: 我安装了Steam,它将在安装后启动steam.exe进行更新。这样做似乎是通过编写自身的临时副本,启动该副本以执行下载,然后覆盖可执行文件的原始副本来完成的。以我为例,这失败了,声称无法删除steam.exe。 我打开文件夹并尝试手动删除steam.exe,但是Windows声称我没有权限。我的帐户是管理员,并且是此计算机上的唯一用户帐户。但以防万一,我以管理员身份启动了Explorer,但仍然无法删除该文件。我将文件的“属性”调到“安全性”选项卡,但只显示一条消息,表明我无权查看权限。 接下来,我调出Process Explorer来查看文件是否有锁。SYSTEM(PID 4)可以,但是当我尝试关闭文件句柄时,它产生了一个错误,指出该句柄无效。我试图查看文件句柄属性,但是我也没有这样做的权限。 我终止了除了无法确定的系统进程之外的所有内容,并停止了我能够提供的所有服务,包括与AV和防火墙相关的所有内容,但是问题仍然存在。我曾尝试使用'takeown'来授予自己文件的所有权,但它声称我无权这样做。其他人声称使用“ Unlocker”工具已成功,但是在关闭文件句柄方面,它与Process Explorer存在相同的问题。 我很早以前就禁用了Windows索引和搜索功能,并从索引中排除了C:\,所以这个问题的答案不适用于我。 每次大约一分钟后,句柄都会消失,文件会立即删除;显然,更新程序删除文件的尝试已排队,并在文件不再锁定后最终完成。不幸的是,更新已终止,无法恢复。而且,当我重新安装时,它当然会尝试再次运行steam.exe,现在回到第一个问题。 我的问题是:为什么这些手柄在周围徘徊,如何防止它们晃动? 编辑:这是评论中要求的其他信息: C:\>fltmc instances Filter Volume Name Altitude Instance Name Frame VlStatus -------------------- ------------------------------------- ------------ --------------------- ----- -------- KLIF \Device\Mup 320400 KLIF 0 KLIF C: 320400 KLIF 0 KLIF 320400 KLIF 0 luafv C: 135000 luafv 0 FileInfo …