C盘卸了十几个应用,一个G都没腾出来

你为了给 C 盘腾地方,把商店里装的应用一口气卸了十几个,回头一看可用空间纹丝不动。别怀疑自己眼花——PCWorld 报道说,从微软商店装的应用,卸载后确实可能一个字节都不还给你。

问题出在「卸载」这两个字上

商店应用用的是 MSIX 打包格式。微软工程师 Howard Kapustein 在 Inside MSIX 博客里把话挑明了:MSIX 里根本不存在传统意义上的安装和卸载。

它只有四个动作——暂存(把包放上硬盘)、注册(关联到你的账户、让你看得见)、注销(解除关联、让你看不见)、清除(真正从硬盘删掉)。你点的「卸载」,保证执行的只有注销这一步,清除是有条件的。用 Kapustein 的原话说:从用户角度看,这个应用消失了;但从系统角度看,包可能还躺在硬盘上,因为别的用户账户或许还在用。

说白了,你以为删了,其实只是系统把它藏起来了。

想真删掉,得动命令行

以下命令来自微软官方文档,执行前建议先建个还原点。

  1. 右键开始菜单,选「终端(管理员)」。
  2. 输入 Get-AppxPackage -AllUsers | Select-Object Name, PackageFullName,列出所有账户下仍暂存在硬盘上的包,找到目标应用那一行的完整包名。
  3. 先预演一遍:Remove-AppxPackage -Package "完整包名" -AllUsers -WhatIf。加了 -WhatIf 只显示会发生什么,不真删。
  4. 确认无误后去掉 -WhatIf 正式执行。-AllUsers 是关键,它才会连同其他账户的注册一起解除,让包具备被清除的条件。
  5. 如果是系统预置包,还要跑 DISM /Online /Get-ProvisionedAppxPackages /Format:Table 查出包名,再用 DISM /Online /Remove-ProvisionedAppxPackage /PackageName:包名 断掉「新建账户自动装回」的路子。

注意事项

别对着列表批量删。Get-AppxPackage -AllUsers 会把框架包和系统组件一并列出,误删可能导致开始菜单、设置甚至商店本身罢工。只删你认得出名字的第三方应用,删一个验一次空间。

来源:PCWorld