如何解决尝试从脱机Windows 8.1映像中删除设置的应用程序时出现“无法获取程序包的分阶段包”错误?

当我尝试从脱机Windows 8.1映像中删除置备的应用程序时,大多数要删除的应用程序都不会造成问题,但尝试删除Microsoft.Office.OneNote会导致错误。

以下PowerShell代码演示了这个问题。 操作系统是Windows PE 5.0。 (为什么selectWinPE?我的目标是在首次启动全新安装之前,在System Center Configuration Manager 2012 R2任务序列期间删除一些已部署的应用程序。)脱机映像是Windows 8.1,安装时已更新至2015年4月30日,以及它位于驱动器G:的根部。

 PS> Get-AppxProvisionedPackage -Path G:\
 ... 
  [行省略] 
  ...
 DisplayName:Microsoft.Office.OneNote
版本:2014.215.704.4136
架构:中立
 ResourceId:〜
 PackageName:Microsoft.Office.OneNote_2014.215.704.4136_neutral_〜_8wekyb3d8bbwe
 ... 
  [行省略] 
  ...
 DisplayName:Microsoft.ZuneMusic
版本:2014.228.1317.652
架构:中立
 ResourceId:〜
软件包名称:Microsoft.ZuneMusic_2014.228.1317.652_neutral_〜_8wekyb3d8bbwe
 ...

 PS>删除-AppxProvisionedPackage -Path G:\ -PackageName Microsoft.ZuneMusic_2014.228.1317.652_neutral_〜_8wekyb3d8bbwe
path:G:\
在线:错误
需要重新启动:False

 PS>删除-AppxProvisionedPackage -Path G:\ -PackageName Microsoft.Office.OneNote_2014.215.704.4136_neutral_〜_8wekyb3d8bbwe 
  Remove-AppxProvisionedPackage:系统找不到指定的文件。 
  在行:1 char:1 
  +删除-AppxProvisionedPackage -Path G:\ -PackageName Microsoft.Office.OneNote_20 ... 
  +〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 〜 
      + CategoryInfo:NotSpecified:(:) [Remove-AppxProvisionedPackage],COMException 
      + FullyQualifiedErrorId:Microsoft.Dism.Commands.RemoveAppxProvisionedPackageCommand

以下是%SystemRoot%\ Logs \ DISM \ dism.log文件的摘录
删除Microsoft.ZuneMusic:

  2015-06-08 14:43:29,信息DISM API:PID = 1444 TID = 1636inputDismRemoveProvisionedAppxPackageInternal  -  DismRemoveProvisionedAppxPackageInternal
 2015-06-08 14:43:29,信息DISM API:PID = 1444 TID = 1636input参数:会话:2,包名称:Microsoft.ZuneMusic_2014.228.1317.652_neutral_〜_8wekyb3d8bbwe  -  DismRemoveProvisionedAppxPackageInternal
 2015-06-08 14:43:29,Info DISM API:PID = 1444 TID = 1636input参数:Session:2,PackageName:Microsoft.ZuneMusic_2014.228.1317.652_neutral_〜_8wekyb3d8bbwe  -  DismRemoveProvisionedAppxPackageInternal
 2015-06-08 14:43:29,信息DISM API:PID = 1444 TID = 1636初始化的默认取消事件 -  DismRemoveProvisionedAppxPackageInternal
 2015-06-08 14:43:29,信息DISM API:PID = 1444 TID = 1636成功排队命令对象 -  CCommandThread :: EnqueueCommandObject
 2015-06-08 14:43:29,信息DISM API:PID = 1444 TID = 1068 ExecuteLoop:CommandQueue发信号 -  CCommandThread :: ExecuteLoop
 2015-06-08 14:43:29,信息DISM API:PID = 1444 TID = 1068成功离队命令对象 -  CCommandThread :: DequeueCommandObject
 2015-06-08 14:43:29,信息DISM DISM提供程序存储:PID = 1848 TID = 1440获取提供程序AppxManager  -  CDISMProviderStore :: GetProvider
 2015-06-08 14:43:29,信息DISM DISM提供程序存储:PID = 1848 TID = 1440以前没有遇到提供程序。 尝试初始化提供程序。  -  CDISMProviderStore :: Internal_GetProvider
 2015-06-08 14:43:29,信息DISM DISM Provider Store:PID = 1848 TID = 1440从位置X载入提供程序:\ windows \ TEMP \ D173D978-C7E2-4153-88D4-A35376D8C923 \ AppxProvider.dll  -  CDISMProviderStore: :Internal_GetProvider
 2015-06-08 14:43:29,信息DISM DISM Provider Store:PID = 1848 TID = 1440连接到位于X:\ windows \ TEMP \ D173D978-C7E2-4153-88D4-A35376D8C923 \ AppxProvider.dll的提供程序。  -  CDISMProviderStore :: Internal_LoadProvider
 2015-06-08 14:43:29,信息DISM DISM提供程序存储:PID = 1848 TID = 1440遇到服务提供程序,执行其他服务初始化。  -  CDISMProviderStore :: Internal_LoadProvider
 2015-06-08 14:43:29,信息DISM API:PID = 1444 TID = 1068使用包全名调用RemoveAllUserAppx = Microsoft.ZuneMusic_2014.228.1317.652_neutral_〜_8wekyb3d8bbwe  -  CRemoveAppxCommandObject :: InternalExecute
 2015-06-08 14:43:29,信息DISM DISM Appx提供程序:PID = 1848 TID = 1440写入临时configuration文件:X:\ windows \ TEMP \ appxStage- {77DB0339-427B-481D-BC0D​​-88B930DBA99A} \ AppxProvisioning .XML。  -  CDismContext :: FinalizeChanges
 2015-06-08 14:43:30,信息DISM DISM Appx Provider:PID = 1848 TID = 1440取得G:\ ProgramData \ Microsoft \ Windows的所有权。  -  CDismContext :: FinalizeChanges
 2015-06-08 14:43:30,信息DISM DISM Appx Provider:PID = 1848 TID = 1440从X:\ windows \ TEMP \ appxStage- {77DB0339-427B-481D-BC0D​​-88B930DBA99A} \ AppxProvisioning.xml复制到G:\ ProgramData \微软\的Windows \ AppxProvisioning.xml。  -  CDismContext :: FinalizeChanges
 2015-06-08 14:43:30,信息DISM API:PID = 1444 TID = 1068成功删除包 -  CRemoveAppxCommandObject :: InternalExecute
 2015-06-08 14:43:30,Info DISM API:PID = 1444 TID = 1636离开DismRemoveProvisionedAppxPackageInternal  -  DismRemoveProvisionedAppxPackageInternal
 2015-06-08 14:43:30,信息DISM API:PID = 1444 TID = 1636 Enter DismCloseSessionInternal  -  DismCloseSessionInternal

删除Microsoft.Office.OneNote(以粗体显示错误行):

 2015-06-08 14:57:06,信息DISM API:PID = 1444 TID = 1636inputDismRemoveProvisionedAppxPackageInternal  -  DismRemoveProvisionedAppxPackageInternal
 2015-06-08 14:57:06,信息DISM API:PID = 1444 TID = 1636input参数:Session:2,PackageName:Microsoft.Office.OneNote_2014.215.704.4136_neutral_〜_8wekyb3d8bbwe  -  DismRemoveProvisionedAppxPackageInternal
 2015-06-08 14:57:06,信息DISM API:PID = 1444 TID = 1636input参数:Session:2,PackageName:Microsoft.Office.OneNote_2014.215.704.4136_neutral_〜_8wekyb3d8bbwe  -  DismRemoveProvisionedAppxPackageInternal
 2015-06-08 14:57:06,信息DISM API:PID = 1444 TID = 1636初始化的默认取消事件 -  DismRemoveProvisionedAppxPackageInternal
 2015-06-08 14:57:06,信息DISM API:PID = 1444 TID = 1636成功排队命令对象 -  CCommandThread :: EnqueueCommandObject
 2015-06-08 14:57:06,信息DISM API:PID = 1444 TID = 876 ExecuteLoop:发送CommandQueue  -  CCommandThread :: ExecuteLoop
 2015-06-08 14:57:06,信息DISM API:PID = 1444 TID = 876成功离队命令对象 -  CCommandThread :: DequeueCommandObject
 2015-06-08 14:57:06,信息DISM DISM提供程序存储:PID = 2020 TID = 848获取提供程序AppxManager  -  CDISMProviderStore :: GetProvider
 2015-06-08 14:57:06,信息DISM DISM提供程序存储:PID = 2020 TID = 848以前没有遇到提供程序。 尝试初始化提供程序。  -  CDISMProviderStore :: Internal_GetProvider
 2015-06-08 14:57:06,信息DISM DISM Provider Store:PID = 2020 TID = 848从位置X载入提供程序:\ windows \ TEMP \ D613CBD7-929A-4C48-92DE-589E048B20EC \ AppxProvider.dll  -  CDISMProviderStore: :Internal_GetProvider
 2015-06-08 14:57:06,信息DISM DISM Provider Store:PID = 2020 TID = 848连接到位于X:\ windows \ TEMP \ D613CBD7-929A-4C48-92DE-589E048B20EC \ AppxProvider.dll的提供程序。  -  CDISMProviderStore :: Internal_LoadProvider
 2015-06-08 14:57:06,信息DISM DISM提供程序存储:PID = 2020 TID = 848遇到服务提供程序,执行其他服务初始化。  -  CDISMProviderStore :: Internal_LoadProvider
 2015-06-08 14:57:06,信息DISM API:PID = 1444 TID = 876使用包全名调用RemoveAllUserAppx = Microsoft.Office.OneNote_2014.215.704.4136_neutral_〜_8wekyb3d8bbwe  -  CRemoveAppxCommandObject :: InternalExecute
 2015-06-08 14:57:06,错误DISM DISM Appx提供程序:PID = 2020 TID = 848无法获取程序包“Microsoft.Office.OneNote_2014.215.704.4136_neutral_〜_8wekyb3d8bbwe”的分阶段程序包。   -  CPackageAdapter :: CreateForRemove(hr:0x80070002)
 2015-06-08 14:57:06,错误DISM DISM Appx Provider:PID = 2020 TID = 848初始化程序包“Microsoft.Office.OneNote_2014.215.704.4136_neutral_〜_8wekyb3d8bbwe”的程序包适配器失败 -  CAppxManager :: RemoveAllUserAppx(hr :0x80070002)
 2015-06-08 14:57:06,错误DISM API:PID = 1444 TID = 876无法删除包 -  CRemoveAppxCommandObject :: InternalExecute(hr:0x80070002)
 2015-06-08 14:57:06,错误DISM API:PID = 1444 TID = 876 InternalExecute失败 -  CBaseCommandObject :: Execute(hr:0x80070002)
 2015-06-08 14:57:06,信息DISM API:PID = 1444 TID = 1636离开DismRemoveProvisionedAppxPackageInternal  -  DismRemoveProvisionedAppxPackageInternal
 2015-06-08 14:57:06,信息DISM API:PID = 1444 TID = 1636inputDismGetLastErrorMessageInternal  -  DismGetLastErrorMessageInternal
 2015-06-08 14:57:06,信息DISM API:PID = 1444 TID = 1636退出DismGetLastErrorMessageInternal  -  DismGetLastErrorMessageInternal
 2015-06-08 14:57:06,信息DISM API:PID = 1444 TID = 1636inputDismDeleteInternal  -  DismDeleteInternal
 2015-06-08 14:57:06,Info DISM API:PID = 1444 TID = 1636 Leave DismDeleteInternal  -  DismDeleteInternal
 2015-06-08 14:57:06,信息DISM API:PID = 1444 TID = 1636进入DismCloseSessionInternal  -  DismCloseSessionInternal

Remove-AppxProvisionedPackage返回的错误是“系统找不到指定的文件”。 哪个文件?

DISM日志中更详细的错误消息是“无法获取程序包的分阶段软件包”Microsoft.Office.OneNote_2014.215.704.4136_neutral_〜_8wekyb3d8bbwe'“。 这是什么意思?

尽pipe我发现了一篇描述Windows 8 / 8.1应用程序术语的博客文章 ,可能暗示了这个问题 – 关于应用程序的分步版本 – 我对这些特定错误的帮助search没有结果。 我怎样才能find这些错误的原因?

我遇到了同样的问题。 运行该命令的本地dism版本让我在dism日志中logging有关“无法获取程序包的程序包”的错误消息。 和谷歌search引导我到edugeek这个页面 。

所以那里的用户注意到,如果他回到原来的1607 ISO,命令工作正常。 同样的,我用1703 ISO也尝试了相同的命令,一切正常。 所以看起来有一些微软正在分发的WIM文件。 (对我来说是有问题的是1607年1月更新,直接从我的MSDN订阅。)

我注意到你提到你正在使用安装了某个date的更新的操作系统映像。 我想知道这是否是导致问题的根源,因为你和我正在处理不同的操作系统,但是在这两种情况下,媒体都安装了更新,以使其更新。