![无法删除 C:\Config.Msi\75ce84f.rbf](https://linux22.com/image/1235455/%E6%97%A0%E6%B3%95%E5%88%A0%E9%99%A4%20C%3A%5CConfig.Msi%5C75ce84f.rbf.png)
我无法删除C:\Config.Msi\75ce84f.rbf
。
- 它不是只读、系统或隐藏的
- 它未被其他进程使用(根据 Process Explorer)
- NT 安全权限也不是问题——我是所有者并拥有完全控制权;经过仔细检查,“有效权限”选项卡显示我有删除权限。
然而,尝试删除该文件时,Explorer 和 都会显示“访问被拒绝” cmd
。我能但是请重命名它或将其移动到同一驱动器上的另一个文件夹。我也可以读取它,Virustotal 说它是干净的,这正是我所期望的(它只是一个 Windows Installer 临时文件 - 我认为是某个 DLL 的副本)。来自 Process Monitor 的相关行是:
6:52:14.3726983 PM 112 Explorer.EXE SetDispositionInformationFile C:\Config.Msi\75ce84f.rbf CANNOT DELETE Delete: True Write 1232
背景:我正在使用 XP SP2。我最近修复了我的 Adobe Reader 安装,将其重新设置为默认浏览器插件,而不是 Foxit。(否则似乎没有 UI 可以执行此操作?)因此安装程序执行了操作,然后要求重新启动。由于重新启动不方便,我习惯性地拒绝了该提议并运行pendmoves
找出安装程序计划移动/删除的文件。它想删除.rbf
位于 中的两个扩展名为(回滚文件)的文件C:\Config.msi\
。(这适用于两者,尽管我一直在谈论一个)。所以我尝试手动删除它们,但无法删除。
有人知道什么可以阻止删除吗?(尽管我目前没有运行 AV,但我不认为它是恶意软件)
答案1
我搞清楚了是怎么回事。似乎您可以重命名和移动(在同一分区内)正在使用的可执行文件和 DLL,但无法删除它们。(此功能是什么时候推出的?)有两件事让人感到困惑:错误消息(“访问被拒绝”而不是“它正在被另一个 [进程] 使用”),以及移动/重命名的模块仍然在 Process Explorer 中以原始名称列出,这就是为什么我无法使用它来找出哪个进程正在使用这些文件。(它是 Adobe Reader,安装程序在执行其工作时没有关闭它)
我想找到有关此行为的正确 (Microsoft) 文档。我在 Wikipedia 上找到了一段这里:
任何在计算机系统上作为程序执行的文件(例如 EXE、COM、DLL、CPL 或其他二进制程序文件格式)通常都会被文件系统阻止打开以进行写入或删除访问,尽管该程序未被任何应用程序打开。但是,某些访问仍被允许。例如,即使在执行时也可以重命名或复制(读取)正在运行的应用程序文件。
微软的删除文件提及
如果应用程序尝试删除以正常 I/O 或内存映射文件形式打开的文件,则 DeleteFile 函数会失败。
后者大概包括已加载的可执行文件/DLL。
微软也有一个页面“动态链接库更新“这暗示了这种行为,但没有正确记录下来。
答案2
只是一个想法 - 你能在安全模式下删除它吗?此外,当你重命名或移动它时,你能删除它吗?