微软电脑管家ahflt.sys导致 MSI 安装/卸载失败 Error 5 的完整排查实录症状千奇百怪根因只有一个微软电脑管家的 AntiHack 过滤驱动拦截了 Windows Installer 的回滚文件权限操作。本文记录从Python 卸载报错一路挖到内核驱动的完整过程。一、症状三个看似无关的问题我的机器上陆续出现了一堆玄学问题最初完全看不出关联卸载 Python 3.13 时报错Could notsetfile securityforfileE:\Config.Msi\a999e01.rbf.Error:5.Verify that you have sufficient privileges to modify the security permissions...安装 LTspice 反复失败同样卡在这个莫名其妙的文件上。重装 Python 3.15 自定义到 E 盘某一步弹出0x80070659 - 系统策略禁止这个安装。报错弹窗上那个E:\Config.Msi\xxxx.rbf文件打开显示隐藏文件之后在 E 盘根目录根本找不到——这也曾让我一度怀疑是安装包损坏或磁盘出错。二、环境信息Windows 11Build 26300C 盘 E 盘在同一块内置硬盘NTFSD 盘是移动硬盘安装/卸载均使用管理员账户三、排查过程3.1 先搞清楚 Config.Msi 是什么Config.Msi是Windows InstallerMSI的临时回滚仓库安装/卸载开始时它会在某个盘的根目录创建这个隐藏文件夹往里面写.rbfRollback File回滚文件用于安装失败时还原系统工作结束后自动删除。它的两个特性解释了最初的疑惑它是受保护的系统文件只开显示隐藏的文件看不到它还必须取消勾选隐藏受保护的操作系统文件推荐它用完即删所以装完再去看当然找不到——这不是文件丢失是流程本来如此。另外它落在哪个盘不是由软件安装目标盘决定的而是由剩余空间最大的固定磁盘决定的移动硬盘会被排除。我的 E 盘虽然是剩余空间第二但第一名的 D 盘是移动硬盘不参与竞争所以 Config.Msi 每次都落到 E 盘。3.2 错误码分析Error 5 ERROR_ACCESS_DENIED拒绝访问。Installer 想给回滚文件设置安全属性被拒绝了。0x80070659 Win32 错误 1625 ERROR_INSTALL_POLICY_FAILURE“系统策略禁止这个安装”。3.3 排除法第一轮权限E 盘是 NTFS检查根目录 ACLicacls E:\输出中SYSTEM:(F)、Administrators:(F)都在权限完全正常。手动实验也证明 E 盘权限系统没坏echo test E:\acls_test.txt icacls E:\acls_test.txt /grant Everyone:F :: 成功结论不是权限问题是有东西在拦截设置文件安全属性这个系统调用。3.4 排除法第二轮临时绕过方案Windows Installer 有一条官方策略DisableRollback禁用回滚后整个流程根本不再创建.rbf文件被拦截的操作也就不存在了。reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v DisableRollback /t REG_DWORD /d 1开启后果然绕过了 Error 5卸载成功但恢复策略后安装又失败说明真凶还在这只是止痛药。3.5 日志分析新错误指向新线索安装 Python 3.15 时打开 Burn 安装日志%TEMP%下的Python 3.15.2 (64-bit)_xxxx.log关键行Applying executepackage:launcher_JustForMe,action:Installe000:Error0x80070659:Failed to configure per-userMSIpackage.失败的是launcher_JustForMe给当前用户安装的 py.exe 启动器1625 策略错误发生在它头上而它前面的包都装成功了。日志里还有一行Detectedpackage:launcher_AllUsers,state:Present——所有用户版的启动器早就装过了这个 per-user 副本是冗余的。取消勾选安装器里的 “py launcher” 后顺利装完。3.6 缩小包围圈fltmc 揪出过滤驱动文件系统上的异常拦截最常见的就是第三方过滤驱动Filter Driver。用系统自带命令列出所有活动的过滤驱动fltmc filters在列表里发现了一个可疑对象其余 bindflt / WdFilter / luafv 等都是微软系统组件ClawFlt6385250.3ahflt7385250.13.7 一锤定音查驱动文件签名驱动文件都在C:\Windows\System32\drivers\直接用 PowerShell 打印它的身份证Get-ChildItemC:\Windows\System32\drivers\ahflt.sys|ForEach-Object{{0} | 公司: {1} | 产品: {2} | 描述: {3}-f$_.Name,$_.VersionInfo.CompanyName,$_.VersionInfo.ProductName,$_.VersionInfo.FileDescription}输出ahflt.sys|公司:Microsoft Corporation|产品:MicrosoftPCManager(R)|描述:AntiHack Filter Driver真凶微软电脑管家Microsoft PC Manager的防黑客攻击过滤驱动 ahflt.sys。正是它在内核层拦截了 Installer 对回滚文件的 SetFileSecurity 操作返回拒绝访问——官方签名的正规软件却和 Windows Installer 的权限操作八字不合。四、解决方案方案一推荐卸载微软电脑管家它的功能与系统自带的 Windows Defender 高度重叠我的机器上 WdFilter 一直正常工作且没有给 Windows Installer 加白名单的选项——关掉界面上的防护开关驱动照样在内核里加载。设置 → 应用 → 安装的应用 → 搜索微软电脑管家 → 卸载重启。方案二应急临时禁用回滚:: 装/卸之前执行 reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v DisableRollback /t REG_DWORD /d 1 :: 装/卸完成后务必恢复 reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v DisableRollback /t REG_DWORD /d 0注意两点禁用回滚期间安装一旦中途失败可能留下半成品文件需手动清理这只是绕过不解决根因每次都要操作。五、验证卸载电脑管家并重启后fltmc filters列表中ahflt 已消失确认策略为0x0reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /s随后测试软件正常卸载、LTspice 正常安装、不再出现 Error 5 与 0x80070659。病根彻底拔除。六、总结一套可复用的排查方法论这次从卸载报错挖到内核驱动用到的方法对任何装不上 / 卸不掉类玄学问题都有效步骤动作命令/工具1记下弹窗里的错误码Error 5 / 0x80070659 等2读安装日志定位具体失败的包%TEMP%下的 Burn/MSI 日志3排除权限问题icacls E:\ 手动改 ACL 实验4临时绕过验证方向DisableRollback策略5列出文件系统过滤驱动fltmc filters6查可疑驱动的文件签名锁定厂商Get-ChildItem ...\.sys的 VersionInfo7卸载元凶重启验证——几个值得记住的结论安装新版本的软件通常不会自动卸载旧版本PATH 里排前面的生效Config.Msi 的位置取决于剩余空间最大的固定磁盘与软件安装目标盘无关“系统策略禁止这个安装”(1625) 与 Error 5 常常指向安全类软件的内核驱动而不是真的组策略配置遇到报错先怀疑安全软件它的拦截行为没有弹窗、没有日志最擅长制造玄学。附参考命令速查:: 查看 PATH 中 python 的解析顺序 where.exe python :: 查看所有已安装 Python 版本py 启动器 py -0 :: 列出过滤驱动 fltmc filters :: 查看指定驱动文件的厂商信息PowerShell Get-ChildItem C:\Windows\System32\drivers\ahflt.sys | Select VersionInfo :: Installer 相关策略 reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /s如果你也遇到了Could not set file security for file ?:\Config.Msi\xxxx.rbf. Error: 5且确认自己权限没问题不妨先查一下机器上是否装了微软电脑管家。
阅读完成 · 觉得有帮助?