问题重现
今天在卸载 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 自身)还在占用该文件。可以尝试:
-
重启电脑 ,然后立即删除
Config.Msi文件夹(不需要再执行 takeown 和 icacls,因为权限已经改好了)。 -
使用 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" 的错误,不妨一试。
希望这篇博客能帮助到你,如果有任何问题,欢迎在评论区交流讨论。