我在尝试使用 Jenkins 中的 Powershell 插件安装带有 Powershell -ExecutionPolicy Unrestricted add-appxpackage <path to appx>
的 appx 时遇到问题,并记录了以下错误:add-appxpackage : Deployment failed with HRESULT: 0x80073CF9, Install failed.Please contact your software vendor. (Exception from HRESULT: 0x80073CF9)Deployment Add operation rejected on package<path to appx> install request because the LocalSystem account is not allowed to perform this operation.NOTE: For additional information, look for [ActivityId]
。
据我了解,这个问题主要是因为 Windows 上的 Jenkins 服务安装为 NT Authority\System
。 (如果我使用 psexec.exe
打开作为 Authority\System 运行的命令提示符,我会遇到同样的问题。)然后我尝试添加 net localgroup "Administrators" NT Authority\System /add
希望该组可以被添加为管理员并让我安装 appx,这样我就可以运行测试,但没有成功。现在我被卡住了,我不确定是否真的有办法通过 Jenkins 安装 appx,或者是否有办法通过 Jenkins 以管理员身份调用 Powershell 脚本。我已经通过了几个 SO 链接,但它们似乎都没有解决我面临的问题。任何指针将不胜感激。
最佳答案
不要 尝试将 System 添加到 Administrators 组,这是一个受限帐户出于某种原因,不需要管理权限。
而是将 Jenkins 服务更改为对您尝试执行的操作具有正确权限的用户身份运行。这可能意味着您需要专门为 Jenkins 服务创建一个帐户。
有几种方法可以更改服务帐户,this answer 给出了以下作为解决方案:
sc.exe config "Service Name" obj= "DOMAIN\User" password= "password"
关于windows - 通过 Jenkins 通过 Powershell 插件安装 appx,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34129631/