尧图精选

Microsoft Store默认安装路径改D盘:C盘空间释放与迁移指南

🕒 发布时间:2026/10/1 19:29:15 📁 来源:尧图网络
D 盘空着小两百个 GC 盘那一百来 G 的可用空间却已经开始标红打开存储感知一看罪魁祸首不是缓存也不是临时文件而是 Microsoft Store 装的那一堆应用安安静静全躺在 C 盘的 WindowsApps 里。这个场景我前后在至少五六台机器上遇到过有公司配的办公本也有自己攒的台式机只要用 Store 装过游戏、装过 HEVC 视频扩展、装过一些生产力工具系统盘的膨胀速度就肉眼可见。很多人第一反应是删点东西不就行了但真正的解法其实只有一个方向把 Microsoft Store 的默认安装路径挪到非系统盘去让新装的应用从源头上不再往 C 盘塞。这件事听起来像是个高级操作实际上 Windows 10 早就给了官方入口只是藏得比较深而且有几个前提条件不满足的话那个下拉框里根本看不到你想选的那块盘。这篇文章我会把三条路都讲清楚官方图形界面的改法、已安装应用的搬迁办法、以及需要动注册表和目录权限的进阶方案。中间会带上我实际踩过的坑比如为什么新建一个文件夹丢到 D 盘之后 Store 装的应用全都打不开、为什么移动按钮有时候是灰的、为什么改完之后 C 盘并没有像想象中瘦那么多。1. 系统盘告急背后的真凶Store 到底把东西塞哪了1.1 三个偷偷长大的目录想改路径先得知道东西具体落在哪。Microsoft Store 应用在系统盘上主要有三个落点很多人只盯着第一个忽略了后面两个结果清理的时候怎么都清不干净。第一个是C:\Program Files\WindowsApps。这是应用本体的安装目录也是体积最大的一个。它默认是隐藏的、受系统保护的用资源管理器直接看是看不到的必须先打开显示隐藏的文件、文件夹和驱动器再去掉隐藏受保护的操作系统文件的勾才能勉强看到它。这个目录的所有者是TrustedInstaller管理员账户默认只有读取权限双击进去会直接被拒绝访问这其实是微软故意设计的保护机制防止用户手滑删掉应用本体导致系统组件崩溃。第二个是C:\Program Files\WpSystem以及对应目标盘根目录下的WpSystem。这个目录容易被忽视它装的是 Store 应用的用户数据部分按 SID 分子目录存放。把这个目录当成垃圾删掉后果是应用能装上但一打开就闪退或者配置全部丢失。第三个是C:\Users\用户名\AppData\Local\Packages。这是 Store 应用的沙箱数据目录应用的配置文件、缓存、数据库、用户文档基本都在这里按PackageFamilyName分文件夹存放。这个目录是最顽固的因为它跟用户账户绑定即使你把应用本体挪到了 D 盘这一部分依然留在 C 盘。1.2 为什么值得改又不能盲目改改默认路径的收益很直接新安装的应用本体落到非系统盘系统盘的空间可以被释放出来尤其是那些动辄几十 G 的大型应用和游戏效果立竿见影。但收益背后有两个必须提前接受的现实。一是这个操作不搬旧账。你把默认路径改成 D 盘已经装在 C 盘上的应用不会自动跟着走它们还在原地。想让它们也过去得挨个手动搬而部分应用根本不支持迁移。注意改默认安装路径只影响之后新装的应用对已经装好的应用毫无影响。网上很多教程把这两件事混在一起讲导致一堆人改完发现 C 盘一点没小然后开始怀疑操作失败。二是别指望 C 盘能瘦一大圈。前面说了用户数据目录AppData\Local\Packages是搬不走的很多 Store 应用的运行日志、缓存、用户文档都堆在这里占用的空间有时候能到本体的一半。所以改路径的正确预期是C 盘增长速度变慢而不是C 盘瞬间多出 50 个 G。我在自己的主力机上测过一套总共占用约 42 G 的 Store 应用把本体全部挪到 D 盘之后C 盘实际释放了约 27 G剩下的 15 G 就是沙箱数据和其他零碎。2. 动手之前必须确认的四个前提条件2.1 目标盘必须是本地固定磁盘且格式为 NTFS这是最容易卡住新手的一条。Windows 的那个新的应用将保存到下拉框只列出符合条件的卷必须是本地固定磁盘不能是 U 盘、移动硬盘这类可移动设备文件系统必须是 NTFS而且不能是网络映射盘。FAT32 和 exFAT 一律不认哪怕你手上的移动硬盘有 2T 空着它也不会出现在列表里。为什么会这样因为 Store 应用的安装过程需要创建符号链接、设置复杂的访问控制列表ACL还要把目录所有者改成TrustedInstaller。这几样能力 exFAT 和 FAT32 天生不具备微软干脆在界面上就把不合格的卷过滤掉了省得用户白折腾。如果你手上的第二块盘是 exFAT 格式唯一的办法是备份数据后重新格成 NTFS。这一步不可逆动手前一定要确认盘里的东西都有备份。2.2 空间余量、盘符稳定性与加密状态第二块盘最好留出足够余量。Store 应用在安装过程中需要临时解压和校验实际占用会短暂超过应用本身的体积一般建议目标盘至少保留 20 G 以上的空闲空间。空间不够的时候安装会以磁盘空间不足的错误收场。盘符稳定性这一点经常被忽略。如果你把默认路径设成了 D 盘之后又因为插了别的设备导致盘符漂移变成 E 盘那么系统记录的那些应用路径就会全部失效表现是应用图标还在但点不开。所以设置之前建议在磁盘管理里确认一下这块盘的盘符是不是稳定的必要时可以通过磁盘管理的更改驱动器号和路径把它固定成一个不太容易被占用的字母比如用 M 或者 W 这类不常用到的字母。另外如果目标盘启用了 BitLocker要确认它在开机时是自动解锁状态。如果每次重启都需要手动输密码才能解锁那么在系统启动阶段应用会处于不可访问状态部分开机自启的 Store 应用可能会报错。2.3 先给系统留一条后路这个操作本身风险不高官方路径改法几乎是零风险但既然涉及注册表和权限我个人的习惯是每次动这类设置之前先做两件小事创建一个系统还原点并把关键注册表项导出备份。创建还原点的最快方式是在开始菜单搜索创建还原点打开系统属性里的系统保护选项卡选中系统盘点创建起个能看懂的名字比如改Store路径前。注册表备份则用一行命令搞定reg export HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx %USERPROFILE%\Desktop\appx_backup.reg /y这条命令会把跟 Store 安装路径相关的整个注册表分支导出到桌面。万一后面出问题双击这个.reg文件就能还原回去。两分钟的成本换的是出事之后不用重装系统的底气。3. 官方图形化改法三分钟把新应用落到 D 盘3.1 设置里的操作路径这是我最推荐的方案全程点鼠标不需要命令行也不需要碰权限。路径是开始菜单 → 设置 → 系统 → 存储 → 找到更多存储设置区域里的更改新内容的保存位置。点进去之后会看到一个列表分别是新的应用、新的文档、新的音乐、新的照片和视频、新的电影和电视节目每一项后面都有一个下拉框用来选择保存的驱动器。我们只需要关注第一项新的应用将保存到把它从 C 盘改成目标盘然后点右边的应用按钮。提示这个页面上其他几项文档、音乐、照片等改不改都行它们只影响系统自带应用和部分 UWP 应用的默认保存位置跟 Store 应用的安装路径是两套逻辑。不想折腾的话只改第一项就够了。点完应用按钮之后Windows 会立刻去目标盘根目录创建两个文件夹WindowsApps和WpSystem。这两个文件夹同样是隐藏的看不到是正常的。如果那块盘上原本就有同名文件夹Windows 会尝试复用这时候就有可能出现权限不匹配的问题后面第 6 节会专门讲怎么处理。3.2 这一步背后到底改了什么很多人以为这只是改了个 UI 偏好其实不是。从实际观察来看点下应用之后系统改的是这个注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx 值名称PackageRoot 值类型REG_EXPAND_SZ 值数据D:\WindowsApps想自己验证的话管理员权限打开 PowerShell跑一行就行Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx -Name PackageRoot这个PackageRoot值就是整个机制的枢纽。它告诉系统的应用部署服务新来的包往哪儿放。图形界面只是这个注册表值的一层皮理解了这一点后面手工方案为什么能生效以及为什么改完注册表还得配权限就都能串起来了。这里还有个技术细节值得说清楚PackageRoot决定的是新包落到哪个卷而已安装包的确切位置是记录在系统的应用状态库里的跟这个注册表值无关。所以无论你怎么改已经装好的应用都不会自己搬家这不是 bug是设计如此。3.3 装个测试应用验证改完之后别急着大规模安装先拿一个体积小的应用验证一下。我的习惯是装一个 HEVC 视频扩展或者随便一个免费的小工具装完之后用 PowerShell 查一下它的实际落地位置Get-AppxPackage | Where-Object { $_.InstallLocation -like D:\* } | Select-Object Name, Version, InstallLocation | Format-Table -AutoSize正常的话应该能看到刚装的应用出现在列表里InstallLocation指向D:\WindowsApps\包全名。如果列表是空的说明路径没生效回头检查第 3.1 步的下拉框有没有真的选对并且点了应用。注意有些应用是作为系统组件的更新形式安装的比如运行时框架它们仍然会留在系统盘。判断路径是否生效要挑一个真正独立的应用来测别拿框架包当参照物。4. 已经装好的应用怎么搬走4.1 移动按钮出现与消失的条件默认路径改好之后桌面上那堆已经装在 C 盘的应用还是老样子。这时候可以走 Windows 自带的迁移功能设置 → 应用 → 应用和功能 → 在列表里点中某个应用 → 会展开移动和卸载两个按钮点移动会弹出一个对话框让你选择目标驱动器。这个移动按钮不是所有应用都有。它是灰色的、或者干脆不显示的情况主要有三种一是这个应用本身标记为不可迁移微软的一部分系统级组件就是这种情况二是除了系统盘之外没有其他符合条件的卷三是应用当前正在运行得先彻底退出再回来刷新列表。从我的经验看能显示移动按钮的应用大概占七成左右剩下的三成只能靠卸载重装来达到目的——反正新装的会自动落到 D 盘效果是一样的。4.2 迁移过程的观察点与中断处理迁移的本质是一次复制加删除操作。它会把应用目录从 C 盘完整复制到目标盘校验通过后再把源目录删掉。这个过程有几个必须知道的点。第一耗时比想象中长。我搬过一个接近 8 G 的应用整整跑了六分多钟中途进度条几乎不动看起来像卡死了。这是正常的别急着点取消。第二迁移过程中千万不要强行关机或者休眠。如果复制到一半中断可能出现两边各有一半文件的情况此时应用既打不开也卸载不掉只能靠 PowerShell 强拆包才能收拾干净Get-AppxPackage -Name 包名 | Remove-AppxPackage -AllUsers第三如果系统盘和目标盘是同一块物理硬盘的不同分区迁移的读写会互相争抢带宽速度会比跨物理硬盘慢不少。有条件的话把应用搬到另一块物理硬盘上既省时间又能真正分摊 I/O 压力。4.3 搬不动的应用该放弃还是硬拆对于那些移动按钮灰掉的应用我的建议是不要试图用第三方工具强拆。有一部分应用跟系统服务、Shell 扩展、文件关联绑得很深硬挪目录之后可能表现为右键菜单里少了一项或者资源管理器偶尔报错排查起来非常费劲。正确的做法是先记下它占多大空间如果只有几十兆就让它待在系统盘上没必要为这点空间折腾如果是几百兆到几个 G 的大块头直接卸载然后重新从 Store 安装让它落到新路径上。卸载前记得导出应用内的配置和数据尤其是在做笔记、记账、剪贴板历史这类会存数据的应用用户数据在AppData\Local\Packages下面对应的目录里稳妥的做法是在应用内找导出功能而不是手动去拷沙箱目录。5. 进阶方案手工接管 WindowsApps 目录5.1 什么时候需要走这条路官方图形界面能满足绝大多数人的需求但有几种情况它搞不定一是下拉框里死活看不到你的目标盘二是企业环境里用了定制的系统镜像某些设置项被组策略屏蔽了三是你想在系统封装阶段就把路径固定好让这个设置随镜像一起分发。这时候就得手工写注册表。但手工方案有个前提必须强调注册表和目录权限必须同时改只改注册表一定出问题。这是我见过最多的失败案例——只写了PackageRoot就重启结果装上的应用全部提示此应用无法打开因为目标目录的 ACL 里缺少ALL APPLICATION PACKAGES的读取权限应用的沙箱进程访问不了自己的文件。5.2 目录准备与显隐设置第一步是在目标盘根目录创建WindowsApps文件夹。这一步看起来简单但有个坑用资源管理器右键新建的文件夹会继承 D 盘根目录的权限通常只有 SYSTEM、Administrators 和当前用户的完全控制不具备 Store 应用运行所需的条目。所以创建完之后必须重配权限。先把隐藏文件显示出来方便确认目录状态在资源管理器里点查看选项卡勾选隐藏的项目如果还是不显示WindowsApps就得去文件夹选项里去掉隐藏受保护的操作系统文件的勾选。5.3 用 icacls 把权限配齐以下命令都要在管理员权限的命令提示符或 PowerShell 里执行。我把每一步的意图写清楚方便你理解为什么这么写。:: 1. 把目录所有者设为 Administrators否则后面授权会被拒绝 takeown /f D:\WindowsApps /a :: 2. 给 SYSTEM 完全控制应用部署服务以 SYSTEM 身份运行 icacls D:\WindowsApps /grant SYSTEM:(OI)(CI)F /T :: 3. 给管理员组完全控制方便后续维护 icacls D:\WindowsApps /grant Administrators:(OI)(CI)F /T :: 4. 给普通用户读取和执行权限 icacls D:\WindowsApps /grant Users:(OI)(CI)RX /T :: 5. 给所有应用包读取和执行权限这一步是应用能不能启动的关键 icacls D:\WindowsApps /grant *S-1-15-2-1:(OI)(CI)RX /T :: 6. 给所有受限应用包读取和执行权限 icacls D:\WindowsApps /grant *S-1-15-2-2:(OI)(CI)RX /T第 5、6 步里的那两个S-1-15-2-1和S-1-15-2-2是应用包账户的安全标识符界面上看不到对应的名称必须用 SID 字符串来写。漏掉这两条应用能装上但打不开报的错通常是拒绝访问类的。如果你觉得手敲六条命令太麻烦还有个更省事的思路直接把系统盘上那个已经配好的目录权限整份复制过来。在管理员 PowerShell 里执行$acl Get-Acl C:\Program Files\WindowsApps $acl | Set-Acl D:\WindowsApps这个做法的好处是省心坏处是它只复制访问控制条目不复制所有者。所以第 1 步的takeown还是要单独跑一次。我个人更推荐这个组合先takeown再用 PowerShell 拷 ACL最后手工补上 SID 那两条稳。5.4 写入注册表并重启验证权限配完之后再写注册表Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx -Name PackageRoot -Value D:\WindowsApps -Type ExpandString写完必须重启。不要试图只重启某个服务应用部署服务AppXSvc和客户端许可服务ClipSVC都是受保护的按需启动服务手工停止往往会被系统拒绝重启是最干净的办法。重启之后用第 3.3 节那行 PowerShell 验证装一个测试应用看它有没有落到 D 盘。同时还要验证老应用能不能正常打开随便点开两三个原本装在 C 盘的 Store 应用试试。如果老应用打不开了说明权限配置过程中动了不该动的东西走下面的回滚。5.5 出问题时的回滚路径回滚其实很简单把注册表值改回默认就行Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx -Name PackageRoot -Value C:\Program Files\WindowsApps -Type ExpandString改完重启系统会重新使用系统盘的目录。那些已经装到 D 盘上的应用可能需要在设置里重新移动回 C 盘或者直接卸载重装。如果连设置界面都打不开了那就是更严重的问题通常在安全模式或者带命令提示符的恢复环境里执行这条注册表修改还能救回来。注意整个过程中绝对不要用资源管理器去删除C:\Program Files\WindowsApps。这个目录里除了 Store 应用还混着一批系统内置应用和运行时框架删错了会导致开始菜单、搜索、设置这些基础功能一起出问题。清理空间请走应用和功能里的正常卸载流程。6. 常见问题排查速查表与周边需求6.1 盘选不中的排查顺序下拉框里找不到目标盘是问得最多的一个问题。按下面的顺序挨个排基本都能定位到原因排查项检查方法处理方式是不是可移动设备磁盘管理里看设备类型可移动设备不支持换内置盘文件系统是不是 NTFS磁盘属性 → 常规exFAT / FAT32 需备份后重新格式化是不是网络映射盘net use查看映射网络位置不支持是否被组策略限制gpedit.msc查存储相关策略解除策略或改注册表系统盘上是否装了系统保护的卷磁盘管理查看系统保留分区不会显示还有一个隐藏原因如果这块盘在磁盘管理里是脱机状态或者在存储空间里被做成了存储池成员它也不会出现在下拉框里。这种情况需要在磁盘管理里把它重新联机。6.2 安装报错码对照表改完路径之后再装应用报错信息跟平时不太一样下面这几个是我实际遇到过的错误码大致含义优先排查方向0x80070005拒绝访问目标目录 ACL 缺 SID 权限条目0x80070070磁盘空间不足目标盘剩余空间低于安装所需0x80073D02资源正在被占用应用或部署服务正在运行重启后重试0x80073CF9安装失败状态库异常重注册 Store 后重试0x80080005服务器启动失败Store 或依赖服务异常见 6.3 节看到 0x80070005 的时候九成以上是第 5.3 节里那两个 SID 权限没配对。这时候不用重装系统把命令补上再重启就恢复了。6.3 Store 本身损坏的修复与重装有时候问题不在路径上而是 Store 应用本身已经坏了表现是打开闪退、一直转圈、或者更新报 0x80080005。这种情况按下面的顺序处理。第一步清缓存按 WinR 输入wsreset回车会弹出一个空白的命令行窗口几十秒后自动关闭并打开 Store。这个操作会把 Store 的本地缓存清空不影响已安装的应用。第二步重注册 StoreGet-AppxPackage -AllUsers Microsoft.WindowsStore | ForEach-Object { Add-AppxPackage -DisableDevelopmentMode -Register $($_.InstallLocation)\AppXManifest.xml -ErrorAction SilentlyContinue }第三步查系统文件完整性这两条命令跑完大概十分钟别中途打断DISM /Online /Cleanup-Image /RestoreHealth sfc /scannow三步都走完还是不行的话那就属于系统镜像本身的损伤了。这时候重装 Store 比修它的成本低得多直接从另一台正常的机器上找到 Store 的安装包路径复制过来用Add-AppxPackage装回去即可。6.4 顺带把 WSL2 的默认路径也挪一挪用 Store 装的东西里体积最凶的其实不是普通应用而是 WSL2 的发行版。Ubuntu、Debian 这些装完之后虚拟磁盘文件默认在%LOCALAPPDATA%\Packages\下面动辄十几个 G而且会随着使用不断增长属于系统盘的头号杀手。它跟 Store 应用的路径机制是两套逻辑改 Store 的PackageRoot管不到它。想挪的话得导出再导入思路是先把发行版导出成一个压缩包注销掉原实例再指定新位置导入wsl --shutdown wsl --export Ubuntu D:\wsl\ubuntu-backup.tar wsl --unregister Ubuntu wsl --import Ubuntu D:\wsl\Ubuntu D:\wsl\ubuntu-backup.tar --version 2导入完之后默认用户会变成 root需要去/etc/wsl.conf里补一段配置把默认用户改回来否则每次进去都是 root 身份。这套流程跟改 Store 路径是同一个思路先搞清楚数据到底落在哪个目录再想办法把落点挪走。6.5 关于导出的两个实测心得最后分享两个我在做这类迁移时总结出来的经验。一个是关于磁盘空间的预期管理。改完路径之后建议隔一周再去看一次 C 盘的占用变化用工具对比前后两次数值。我自己的机器上第一个月 C 盘只释放了 27 G第二个月变成了 33 G原因是有些应用在启动之后才慢慢把缓存从系统盘迁移过去这个过程不是瞬时的。另一个是关于盘符的长期规划。如果你有多块盘建议在装机阶段就规划好用途把系统盘只留给系统和必须装在系统盘上的东西把应用、数据、缓存分别放到不同盘上。后续再想调整成本会高得多——光是搬应用加上等待一台机器折腾小半天很正常。我现在的做法是给每块盘起一个有含义的标签比如系统、应用、资料盘符和标签一起用半年之后打开磁盘管理一眼就能看清谁是谁比盯着本地磁盘(D:)猜要舒服得多。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →