今天想从Microsoft Store安装一个游戏到E盘,但实际上却自动安装到了C盘上。在Windows设置-应用里想要移动这个游戏到E盘,就出现了0x80073d0d的问题。在网络上搜索也不得要领,只好自己来排除问题。
首先尝试移动到D盘和F盘,都可以成功,说明一定是E盘本身出了问题而不是非系统盘的问题。想到之前我似乎在E盘装过应用商店里的应用,卸载之后觉得WindowsApps目录很碍事,就强行删掉了,有可能Windows内还有这个目录的记录,会去读这个目录,导致问题。于是我重建了这个目录,仍然不行。考虑到Windows自动建的目录和手动建的目录在权限上是有区别的,这里说不定还有其他的不同,所以还不能排除目录不存在导致问题的可能性。
然后我想到Windows里所有系统设置都存在于注册表中,于是我用regedit命令打开注册表,在其中搜索E:\WindowsApps,果然搜到了一条记录:
我本想直接删掉这条记录,不过我也不能保证不引起其他的问题,所以还是搜索了关键字Appx\PackageVolumes(就是这条记录的路径的一部分)。于是就找到了这个文档:https://docs.microsoft.com/en-us/powershell/module/appx/?view=win10-ps。这个文档介绍了用Powershell处理Appx的命令,关键是里面有个Remove-AppxVolume命令。看上去就是我要找的内容。
后面就简单了,打开Powershell,先用Get-AppxVolume列出所有的卷:
1
2
3
4
5
6
7
8
|
PS C:\WINDOWS\system32> Get-AppxVolume
Name PackageStorePath IsOffline IsSystemVolume
---- ---------------- --------- --------------
\\?\Volume{9f858015-0000-0000-0000-5bbd845b28aa} C:\Program Files\WindowsApps False True
\\?\Volume{cc7509fe-0000-0000-0000-100000000000} E:\WindowsApps True False
\\?\Volume{f2d20792-0000-0000-0000-100000000000} F:\WindowsApps False False
\\?\Volume{e15d089a-0000-0000-0000-d77c098a6902} D:\WindowsApps False False
|
可以看到其中E盘对应的卷是离线的,说明目录并不正常存在。用Remove-AppxVolume命令把它删掉:
1
|
PS C:\WINDOWS\system32> Remove-AppxVolume cc7509fe-0000-0000-0000-100000000000
|
如果这里没有错误信息,就是删除成功了。再用Get-AppxVolume的话就看不到这个卷了。
再去Windows设置-应用里移动这个游戏到E盘,WindowsApps目录不存在的时候,系统就会自动创建新的目录,而不是报错了。