强制删除 Windows 10 Appx 包,跳过可能发生的任何错误

强制删除 Windows 10 Appx 包,跳过可能发生的任何错误

我在 9 月份购买了 Forza Motorsport 7 的预购版。在安装预购版时,出现了一个错误,导致安装基本完成。Forza Motorsport 通过 Windows Store 提供,并通过 Appx App Packager 分发。

现在 Forza Motorsport 7 已经“全面上市”,我想安装完整版游戏。通常,当您运行预购“存根”应用程序时,会自动安装完整版游戏,但由于初始安装过程中出现问题,无法下载完整版游戏。

我的第一个想法是做一个简单的“卸载并重新安装”,但是尝试使用设置中的“应用程序和功能”页面卸载该应用程序会导致此错误:

我们无法卸载 Forza Motorsport 7。
操作未成功完成。请稍后重试。
错误代码为 0x8000000e,以防您需要它。

没有帮助。接下来我使用Get-AppxPackage *Apollo*(Apollo 是这款游戏的代号)通过 PowerShell 获取游戏的 Appx 包名称,然后用它Remove-AppxPackage "Microsoft.ApolloBaseGame_1.0.2.2_64__xwekyb3d8bbwe"来卸载应用程序。这不起作用,出现以下错误:

PS C:\WINDOWS\system32> Remove-AppxPackage Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbwe
Remove-AppxPackage : 部署失败,HRESULT: 0x80073CFA,删除失败。请联系您的软件供应商。
部署删除操作在目标卷 E: 上失败,错误为 0x80070002。请参阅http://go.microsoft.com/fwlink/?LinkId=235160以获取有关诊断应用部署问题的帮助。
注意:有关其他信息,请在事件日志中查找 [ActivityId] 59ff267b-3c76-0002-2d54-ff59763cd301 或使用命令行 Get-AppxLog -ActivityID 59ff267b-3c76-0002-2d54-ff59763cd301
At line:1 char:1
+ Remove-AppxPackage Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbw ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError: (Microsoft.Apoll...__8wekyb3d8bbwe:String) [Remove-AppxPackage], IOException
+ FullyQualifiedErrorId :部署错误,Microsoft.Windows.Appx.PackageManager.Commands.RemoveAppxPackageCommand

根据上面输出的建议,我运行了 Get-Appxlog 来查看实际错误:

注意:C:\WINDOWS\system32> Get-AppxLog -ActivityID 59ff267b-3c76-0002-2d54-ff59763cd301

时间ID消息
---- -- -------
2017-10-03 2:43:13 PM 603 已开始部署对具有主要参数的包的删除操作:Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbwe 和选项:0。请参阅 http://go.microsoft.com/fwlink/?LinkId=235160 以获取有关诊断应用程序的帮助
                                       部署问题。
2017-10-03 2:43:13 PM 10002 创建弹性文件 C:\ProgramData\Microsoft\Windows\AppRepository\b5d59b38-d0ce-4730-a93c-da39a1a1d34e_S-1-5-21-2808904017-3304153599-3912926511-1001_2.rslc 用于程序包上的删除操作
                                       Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbwe。
2017-10-03 2:43:13 PM 607 部署对程序包 Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbwe 的删除操作已出队并正在为用户 SID S-1-5-21-2808904017-3304153599-3912926511-1001 运行。
2017-10-03 2:43:13 PM 605 上次成功达到的状态是 BundleProcessed。在达到下一个状态 Indexed 之前发生故障。hr: 0x80070002
2017-10-03 2:43:13 PM 401 部署删除操作,目标卷 E: 位于软件包 Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbwe 上,来自:失败,错误 0x80070002。请参阅 http://go.microsoft.com/fwlink/?LinkId=235160 获取帮助
                                       诊断应用程序部署问题。
2017-10-03 2:43:13 PM 404 AppX 部署操作因软件包 Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbwe 而失败,错误为 0x80073CFA。此失败的具体错误文本为:部署删除操作,目标卷 E: 已打开
                                       软件包 Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbwe 来自:失败,错误 0x80070002。请参阅 http://go.microsoft.com/fwlink/?LinkId=235160 以获取有关诊断应用部署问题的帮助。

Error: 0x80070002似乎表示“文件未找到”错误。尽管消息没有显示未找到哪个文件。非常有帮助。

接下来,我尝试使用DISM.exe该包删除:

C:\WINDOWS\system32>C:\Windows\system32\Dism.exe /online /remove-provisionedappxpackage /packagename:Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbwe

部署映像服务和管理工具
版本:10.0.15063.0

图像版本:10.0.15063.0


错误:2

该系统找不到指定的文件。

DISM 日志文件位于 C:\WINDOWS\Logs\DISM\dism.log

DISM日志文件中的相关内容:

2017-10-03 14:57:36,信息 DISM DISM Appx 提供程序:PID=8912 TID=10092 处理索引 2 处的“packagename”选项 - CAppxManager::ProcessCommandRemoveAllUserAppx
2017-10-03 14:57:36,信息 DISM DISM Appx 提供程序:PID=8912 TID=10092 包名称='Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbwe' - CAppxManager::ProcessCommandRemoveAllUserAppx
2017-10-03 14:57:36,错误 DISM DISM Appx 提供程序:PID=8912 TID=10092 无法打开“C:\Program Files\WindowsApps\Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbwe\AppxMetadata\AppxBundleManifest.xml”。- CPackageAdapter::GetOptionalPackagesForMainPackage(hr:0x80070002)
2017-10-03 14:57:36,警告 DISM DISM Appx 提供程序:PID=8912 TID=10092 获取“Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbwe”的可选包列表时遇到错误 0x80070002 - CAppxManager::RemoveAllUserAppx
2017-10-03 14:57:36,错误 DISM DISM Appx 提供程序:PID=8912 TID=10092 无法获取要删除的包列表 - CPackageAdapter::DeregisterMainPackageAndGetDependencyPackages(hr:0x80070002)
2017-10-03 14:57:36,错误 DISM DISM Appx 提供程序:PID=8912 TID=10092 无法取消注册主包并获取其依赖包 - CPackageAdapter::DeregisterPackageOnline(hr:0x80070002)
2017-10-03 14:57:36,错误 DISM DISM Appx 提供程序:PID=8912 TID=10092 无法取消注册包。- CPackageAdapter::RemovePackageOnline(hr:0x80070002)
2017-10-03 14:57:36,错误 DISM DISM Appx 提供程序:PID=8912 TID=10092 删除包 Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbwe 时遇到失败 - CAppxManager::RemoveAllUserAppx(hr:0x80070002)
2017-10-03 14:57:36,错误 DISM DISM Appx 提供程序:PID=8912 TID=10092 无法删除包“Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbwe”- CAppxManager::ProcessCommandRemoveAllUserAppx(hr:0x80070002)
2017-10-03 14:57:36,错误 DISM DISM Appx 提供程序:PID=8912 TID=10092 无法处理删除 Appx 包的命令 - CAppxManager::ExecuteCmdLine(hr:0x80070002)

使用命令行,我可以验证C:\Program Files\WindowsApps\Microsoft.ApolloBaseGame_1.0.2.2_x64__8wekyb3d8bbwe\AppxMetadata\AppxBundleManifest.xml不存在。但是,我无法创建文件,也无法将文件复制到该位置。即使我cmd.exe以系统身份运行,也可以通过PsExec

psexec -e -i -h -s cmd.exe

有没有办法手动删除无法卸载的 Appx 包?或者,有没有办法手动触发 appx 的重新安装?

我可以从 Windows PE 环境启动并创建一个假AppxBundleManifest.xml文件,但我觉得假的 xml 清单可能会让事情变得更糟。据推测,该清单文件通常包含卸载过程所需的依赖项信息。

我是否必须format C:重新安装?真的吗?

答案1

我能解决这个问题的唯一方法是彻底重新安装 Windows。我认为微软应该创建一种强制重新安装应用程序的方法。

答案2

删除损坏的应用程序的一种方法可能是先更新它。

如果您在线,则可以使用 Microsoft 商店;如果您断开连接,则可以使用 Appx 包。

获取软件包系列名称 get-appxpackage | ft -autosize name,version,PackageFullName,packagefamilyname 或者从商店页面获取 URL:https://apps.microsoft.com/detail/9n0dx20hk701?hl=en-us&gl=US

将包名称带到https://store.rg-adguard.net/并下载相关的 appx/msixbundle/appxbundle 文件。您需要先安装依赖项,然后再安装应用程序:

get-childitem -filter *.appx | add-appxpackage
get-childitem -filter *.msix | add-appxpackage
get-childitem -filter *.appxbundle | add-appxpackage
get-childitem -filter *.msixbundle | add-appxpackage

更新软件包后,您可能能够正确地卸载它:

get-appxpackage -allusers *name* | remove-appxpackage -allusers
get-appxpackage -allusers *name* | remove-appxpackage

将 -online 参数添加到 remove-appxpackage 也可能有帮助。这有点随机,祝你好运。

答案3

Stephen Rauch 表示

   Get-AppxPackage *Apollo* | Remove-AppPackage

这个命令帮助了我。

有趣的是,我在收到以下错误后立即尝试了此命令,并且似乎成功了。我想知道通过管道发送有什么不同?

    Remove-AppPackage : Removal failed. Please 
    contact your software vendor.
    Deployment Remove operation with target volume 
    C: on Package Microsoft.GetHelp_10.2201.421.0_x64__8wekyb3d8bbwe 
    from: failed with error 0x80070002

答案4

无需重新安装 Windows 10,我遇到了同样的问题,不同之处在于我的所有游戏都安装在外部 HD 上的另一个 HD 中,这样,只需断开 HD 重新启动 Windows,单击按钮运行游戏,它就会出现一条重新安装的消息,只需再次连接 HD 并重新安装游戏即可。

相关内容