问题重现

今天在卸载 Python 3.8.10 时,弹出了一个令人头疼的错误窗口:

错误代码 5 表示“拒绝访问”,意味着安装程序在卸载过程中无法修改 D:\Config.Msi 这个临时文件夹内的文件权限。无论是以管理员身份运行,还是尝试从控制面板卸载,都会卡在这个弹窗上,无法继续。

原因分析

Config.Msi 是 Windows Installer 在安装或卸载软件时使用的临时工作目录。当卸载程序运行时,它需要对这个目录中的文件进行读写操作,并在卸载完成后自动删除该目录。

出现权限错误的原因可能有:

  • 当前用户对该文件夹没有完全控制权

  • 该文件夹被其他进程占用

  • 文件或文件夹的所有权不属于当前用户,且无法继承权限

既然常规的卸载方式失效,我们需要手动介入,强制夺回文件夹的所有权并删除它,从而让卸载程序能够顺利完成。

解决方案:命令行强制获取文件夹所有权

这个方法不需要进入安全模式,也不需要借助第三方工具,只需要打开命令提示符(管理员),执行几条命令即可。

步骤 1:以管理员身份打开命令提示符

  • 按 Win + X 组合键,选择 “Windows 终端(管理员)” 或 “命令提示符(管理员)”

  • 如果系统询问是否允许此应用对你的设备进行更改,点击 “是”

步骤 2:获取文件夹及其子文件的所有权

在命令提示符中输入以下命令,将 D:\Config.Msi 的所有者更改为 Administrators 组(或当前用户)。

takeown /f D:\Config.Msi /r /d y

参数说明:

  • /f:指定文件或文件夹路径

  • /r:递归处理所有子文件和子文件夹

  • /d y:当遇到无法获取所有权的子文件时,自动选择“是”继续执行

执行后,会看到类似以下的输出,表示所有权已成功获取。

SUCCESS: The file (or folder): "D:\Config.Msi" now owned by user "计算机名\Administrators".

步骤 3:赋予管理员完全控制权限

获取所有权之后,还需要将完全控制权限授予 Administrators 组。执行以下命令:

icacls D:\Config.Msi /grant administrators:F /t

参数说明:

  • /grant:授予权限

  • administrators:F:授予 Administrators 组完全控制权限(F = Full Control)

  • /t:递归应用到所有子文件和子文件夹

执行后,会显示处理了多少个文件,表示权限设置成功。

步骤 4:删除文件夹

现在可以放心删除整个 Config.Msi 文件夹了。使用 rmdir 命令:

rmdir /s /q D:\Config.Msi

  • /s:删除目录树(包括所有子目录和文件)

  • /q:安静模式,无需确认

如果删除成功,命令会直接返回,不会有任何提示。

步骤 5:重新卸载 Python 3.8

完成上述操作后,再次打开控制面板中的“程序和功能”,找到 Python 3.8.10,右键点击“卸载”。此时安装程序应该能够顺利执行,不再弹出权限错误。

补充说明

如果文件夹被占用怎么办?

有时即使获取了所有权,删除时仍会提示“文件正在使用”。这通常是因为某个进程(如 Windows Installer 自身)还在占用该文件。可以尝试:

  1. 重启电脑,然后立即删除 Config.Msi 文件夹(不需要再执行 takeown 和 icacls,因为权限已经改好了)。

  2. 使用 Process Explorer 工具查找占用该文件夹的进程并结束。

其他备选方案

如果上述方法依然无法解决,还可以考虑:

  • 进入安全模式:重启进入安全模式,在该模式下 Windows Installer 服务不会启动,通常可以直接删除文件夹并卸载程序。

  • 使用 Geek Uninstaller:这款免费工具可以强制卸载程序并扫描残留,非常适合处理这类顽固的卸载问题。

  • 微软官方卸载修复工具:运行 MicrosoftProgram_Install_and_Uninstall.meta.diagcab,选择“卸载”并找到 Python 3.8.10,按向导处理。

注册表与环境变量清理

如果卸载完成后,系统中仍然残留 Python 的安装目录或环境变量,可以手动清理:

  • 删除 Python 安装目录(例如 C:\Python38 或 C:\Program Files\Python38)。

  • 打开注册表编辑器(regedit),备份后删除与 Python 3.8 相关的项(通常在 HKEY_LOCAL_MACHINE\SOFTWARE\Python 和 HKEY_CURRENT_USER\SOFTWARE\Python 下)。

  • 在系统环境变量 Path 中移除任何指向 Python 3.8 的路径。

总结

卸载软件时遇到权限问题,尤其是 Config.Msi 文件夹相关的错误,往往是因为 Windows Installer 的临时目录权限被破坏。通过 takeown 和 icacls 命令行工具强制获取所有权并设置权限,可以快速突破权限壁垒,让卸载得以继续。

这个方案无需安装额外软件,操作简单,适合所有遇到类似问题的用户。如果你也在卸载 Python 或其他软件时遇到 “Could not set file security” 的错误,不妨一试。

希望这篇博客能帮助到你,如果有任何问题,欢迎在评论区交流讨论。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐