DNS*_*DNS 26 windows windows-7 permissions
我在 Windows 7 机器上看到了奇怪的行为;似乎当一个可执行文件运行时,SYSTEM 会在接下来的一分钟左右保持打开它的句柄。这是我最近的遭遇:
我安装了 Steam,它会在安装后启动 steam.exe 以进行自我更新。它似乎是通过编写自己的临时副本,启动它来执行下载,然后覆盖可执行文件的原始副本来做到这一点的。在我的情况下,这失败了,声称无法删除 steam.exe。
我打开文件夹并尝试手动删除steam.exe,但Windows声称我没有权限。我的帐户是管理员,并且是这台机器上唯一的用户帐户。但以防万一,我以管理员身份启动了资源管理器,但仍然无法删除该文件。我将文件的“属性”调到“安全”选项卡,但它只显示一条消息,指出我没有查看权限的权限。
接下来,我打开 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 \Device\Mup 45000 FileInfo 0
FileInfo C: 45000 FileInfo 0
FileInfo 45000 FileInfo 0
Run Code Online (Sandbox Code Playgroud)
编辑:GMER 表明我的防病毒软件(卡巴斯基)在某种程度上仍然处于活动状态,尽管从它自己的 GUI 中禁用了它,并且它的服务被停止了。
AttachedDevice \Driver\tdx \Device\Ip kl1.sys (Kaspersky Unified Driver/Kaspersky Lab ZAO)
AttachedDevice \Driver\tdx \Device\Tcp kl1.sys (Kaspersky Unified Driver/Kaspersky Lab ZAO)
AttachedDevice \Driver\tdx \Device\Udp kl1.sys (Kaspersky Unified Driver/Kaspersky Lab ZAO)
AttachedDevice \Driver\tdx \Device\RawIp kl1.sys (Kaspersky Unified Driver/Kaspersky Lab ZAO)
Run Code Online (Sandbox Code Playgroud)
但这些似乎都是为了网络服务;我没有看到任何与文件系统相关的内容。这些中的任何一个可能是问题的原因吗?
编辑:我禁用了卡巴斯基 KLIF 过滤器,但锁定问题仍然存在。
编辑:我通过安装解决了 Steam 的特定问题,在它可以启动 steam.exe 之前强制终止安装程序,然后在安全模式下重新启动并在那里运行它。因此,显然在安全模式下不存在锁定可执行文件的任何内容。
虽然我已经解决了这个特殊情况,但问题也出现在其他地方,所以我仍然想了解发生了什么。
小智 21
请执行下列操作:
在有问题的位置禁用索引。
启用“应用体验”服务并将其设置为“自动”。
这就对了。
如果您的问题仍然存在,则可能是 Superfetch,尽管禁用它并没有给我带来任何运气。
KLIF 是卡巴斯基 AV 驱动程序。很有可能与它有关。
在这种情况下,我的行动方针是联系卡巴斯基并寻求建议。
但是,您可以先尝试另一件事:HKLM\SYSTEM\CurrentControlSet\Services
通过查找KLIF
或类似于键名的内容并将REG_DWORD
名为的值设置为(这意味着禁用)Start
来禁用驱动程序(在 下4
),然后重新启动。这应该会阻止加载 KAV 过滤器驱动程序。然后您可以使用它fltmc
来验证结果。
您提供的 GMER 输出与手头的案例无关,因为它只会影响网络连接,而不影响文件操作。您似乎安装了卡巴斯基安全软件之类的东西(或者它仍然在您的机器上处于休眠状态)。
编辑:仅供参考luafv
,与 UAC 一起负责 FS 虚拟化。即,如果您无权访问某个文件,则该文件将被放入您的个人资料中的一个单独文件夹中。FileInfo
属于 SuperFetch - 这实际上可能是您问题的一部分,但我自己在 Windows 7 上没有遇到类似的问题。通常不建议禁用 SuperFetch,尽管可以。
归档时间: |
|
查看次数: |
37943 次 |
最近记录: |