使用Add-AppxProvisionedPackage部署eappx失败问题咨询
关于使用Add-AppxProvisionedPackage部署加密eappx的问题
问题背景
- 侧载加密eappx应用时,用
Add-AppxPackage -Path ./Appfile.eappx可为当前用户正常安装,但需要实现全用户范围的部署。 - 使用
Add-AppxProvisionedPackage部署普通未加密appx包正常,部署eappx时报错。
可正常执行的命令
Add-AppxProvisionedPackage -Online -PackagePath ./Appfile.appx -SkipLicense
执行失败的命令
Add-AppxProvisionedPackage -Online -PackagePath ./Appfile.eappx -SkipLicense
错误详情
Add-AppxProvisionedPackage : Add-AppxProvisionedPackage failed. Error code = 0x8051100f At line:1 char:1 + Add-AppxProvisionedPackage -Online -PackagePath ./Appfile.eappx ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Add-AppxProvisionedPackage], COMException + FullyQualifiedErrorId : Microsoft.Dism.Commands.AddAppxProvisionedPackageCommand
错误码0x8051100F对应描述:OPC_E_ZIP_MISSING_END_OF_CENTRAL_DIRECTORY(ZIP文件缺少中央目录结尾)。
结论与解决方案
Add-AppxProvisionedPackage不支持直接部署加密的eappx文件。
原因是eappx经过加密处理后,底层ZIP包结构发生了变化,而该命令仅设计用于解析未加密的标准appx/msix包,无法识别加密后的包结构,因此抛出ZIP格式相关错误。
要实现全用户部署加密应用,可选择以下方案:
- 使用企业级部署工具:如Microsoft Intune或System Center Configuration Manager,这类工具原生支持全用户部署加密的LOB应用,能正确处理eappx的加密机制。
- 解密后部署再加密:若持有应用的加密密钥和原始未加密包,可先解密eappx得到标准appx,用
Add-AppxProvisionedPackage完成全用户部署后,再通过组策略或对应工具重新为应用启用加密保护(仅适用于拥有相关权限和原始资源的场景)。
内容的提问来源于stack exchange,提问作者Schaffer




