如何在 Windows 上卸载 AnyDesk
完整安装的 AnyDesk 会带一个后台服务,让别人可以无人值守连接这台机器,这台机器的 AnyDesk ID 和别名存在一个卸载器不会删的配置文件夹里,以后想用同一个 ID 就先备份。这份指南覆盖按机器安装、开机启动、服务和快捷方式都装上的 AnyDesk,对应 AnyDesk.AnyDesk winget 包。
开始之前
结束正在进行的远程会话,告诉连接这台机器的人,删掉之后这个 AnyDesk ID 就用不了了,除非你保留配置文件夹以后重装。
先退出 AnyDesk
右键点托盘图标退出 AnyDesk,卸载前在任务管理器(Ctrl+Shift+Esc)里确认没有 AnyDesk.exe 还在。完整安装还会让 AnyDesk 作为 Windows 服务在后台跑,跟托盘图标开没开没关系。
用自带的卸载器移除应用
打开「设置 › 应用 › 已安装的应用」,找到 AnyDesk,选择卸载,或者运行:
winget uninstall --id AnyDesk.AnyDesk
删数据前先备份
想保留这台机器的 AnyDesk ID 和别名以后重装用,先备份 %ProgramData%\AnyDesk 和 %APPDATA%\AnyDesk。
数据分别在哪里
| 位置 | 里面是什么 | 如何处理 |
|---|---|---|
%ProgramData%\AnyDesk |
这台机器的 AnyDesk ID、别名和服务配置 | 想以后用同一个 ID,先备份,不然可以删 |
%APPDATA%\AnyDesk |
按用户的 AnyDesk 设置 | 和上面那个文件夹一起备份 |
检查结果
卸载完成后运行下面几条只读命令:
Get-Process AnyDesk -ErrorAction SilentlyContinue
Get-Service "AnyDesk Service" -ErrorAction SilentlyContinue
winget list --id AnyDesk.AnyDesk
Test-Path "$env:ProgramFiles(x86)\AnyDesk"
Test-Path "$env:ProgramData\AnyDesk"
Get-Process没有输出只表示未观察到匹配进程,被忽略的查询错误不能当作已经退出。Get-Service确认查询成功且无匹配,才说明 AnyDesk Service 已经没了;返回一个服务对象说明它还登记着,运行状态需要另查。winget list正常完成且没有匹配,才说明包记录已经没了;列出一行,说明卸载没完成。- 第一条
Test-Path返回False,说明程序目录已经没了;返回True,说明那里还有文件。 Test-Path "$env:ProgramData\AnyDesk"返回True,说明 ID 和别名还在,只要你没有自己删掉,这就是正常的。
用 winget 安装时
winget uninstall 运行的是「设置 › 应用」用的同一个卸载器(AnyDesk.exe --uninstall),删的是同一批程序文件、服务和快捷方式,不会主动动 %ProgramData%\AnyDesk 或 %APPDATA%\AnyDesk。
账号与订阅
卸载不会取消 AnyDesk 的授权。删掉这台机器的配置文件夹会把它的 ID 和别名永久删掉,如果你用的是付费账号,另外去 AnyDesk 自己的账号页面查订阅状态。
Mole 会列出什么
对按机器安装、带服务的 AnyDesk:
- 程序目录、开始菜单快捷方式和「启动」文件夹里的快捷方式默认勾选。
%ProgramData%\AnyDesk和%APPDATA%\AnyDesk会列出,但默认不勾选,里面是这台机器的 ID 和别名。- 指向 AnyDesk 的防火墙规则只报告不删,Mole 不管理防火墙规则。
这次检查覆盖了什么
测试的是 AnyDesk 9.7.16,用 --start-with-win --create-shortcuts --silent 按机器安装,用 AnyDesk.exe --uninstall 卸载。测试环境里 winget 源本身连不上,所以这次改用 AnyDesk 自己的安装包加同样的静默参数,这不影响卸载路径和留下的文件夹。没有测试:付费账号,以及不带服务的纯客户端安装。
