如何在 Windows 上卸载 AWS CLI
AWS CLI 把访问密钥、配置文件和缓存的凭据放在用户目录下的一个文件夹里,卸载器不会碰它。这份指南覆盖用 Amazon.AWSCLI winget 包按机器安装的 AWS CLI v2。
先退出正在用 aws 的窗口
关掉运行 aws 命令的终端。卸载前在任务管理器(Ctrl+Shift+Esc)里确认没有 aws.exe,不过它一般命令跑完就自己退出了。
用自带的卸载器移除应用
打开「设置 › 应用 › 已安装的应用」,找到 AWS Command Line Interface v2,选择卸载,或者运行:
winget uninstall --id Amazon.AWSCLI
数据分别在哪里
| 位置 | 里面是什么 | 如何处理 |
|---|---|---|
Program Files\Amazon\AWSCLIV2 |
aws.exe 本体和它自带的 Python 运行时 |
卸载器会删 |
%USERPROFILE%\.aws |
你的配置文件、访问密钥,以及缓存的 SSO 或角色凭据,AWS 文档写的是这个文件夹下的 config 和 credentials |
卸载器不会动,可能重装的话先备份,不再需要这台机器上的这些凭据就自己删 |
这次测试没跑过 aws configure 也没登录过,%USERPROFILE%\.aws 没有生成过,也就没法检查。
检查结果
卸载完成后运行下面几条只读命令,最好开个新终端窗口:
aws --version
winget list --id Amazon.AWSCLI
Test-Path "$env:ProgramFiles\Amazon\AWSCLIV2"
Test-Path "$env:USERPROFILE\.aws"
aws --version报「无法识别」,说明 AWS CLI 已经从 PATH 里没了;打印出版本号,说明卸载没完成,或者机器上还有另一个安装。winget list正常完成且没有匹配,才说明包记录已经没了;列出一行,说明卸载没完成。Test-Path "$env:ProgramFiles\Amazon\AWSCLIV2"返回False,说明程序目录已经没了;返回True,说明那里还有文件。Test-Path "$env:USERPROFILE\.aws"返回True,说明配置文件和凭据还在,如果别的地方还在用 AWS,先备份再删。
用 winget 安装时
winget uninstall 运行的是「设置 › 应用」用的同一个 MSI 卸载器,删的是同一批程序文件,不会动 %USERPROFILE%\.aws。
账号与凭据
卸载不会停用 IAM 访问密钥,也不会让 AWS 那边的 SSO 会话过期,更不会删掉账号里的任何东西。不再需要的密钥自己去 IAM 控制台停用。
Mole 会列出什么
对按机器安装的 winget 版 AWS CLI,卸载审查列表是空的:MSI 卸载器自己删掉了 Program Files\Amazon\AWSCLIV2、它的上级目录 Program Files\Amazon 和机器 PATH 条目,没有什么留给 Mole 处理。Mole 也不会单独列出程序目录这一行,因为安装程序登记时没写安装位置;想确认 Program Files\Amazon\AWSCLIV2 是不是真的没了,自己去看一眼。%USERPROFILE%\.aws 不管怎样都不在这张列表里。
这次检查覆盖了什么
测试的是 x64 MSI 版 AWS CLI 2.37.2(这款没有 arm64 包),按机器安装,提权环境。测试全程没有配置过任何文件,也没有用真实凭据签过任何命令,所以卸载一个保存过凭据的安装没有测试到。
