通过Jenkins通过Powershell插件安装appx

4

我在使用Jenkins的Powershell插件安装appx时遇到问题,命令为Powershell -ExecutionPolicy Unrestricted add-appxpackage <path to appx>,下面是记录的错误:

add-appxpackage : 部署失败,HRESULT: 0x80073CF9,安装失败。 请联系软件供应商。(来自HRESULT的异常:0x80073CF9) 部署添加操作被拒绝,因为本地系统帐户不允许执行此操作。<path to appx> 安装请求。 请注意:有关详细信息,请查找[ActivityId]。

我理解这个问题主要是因为Windows上的Jenkins服务作为NT Authority\System进行安装。(如果我使用psexec.exe打开以Authority\System运行的命令提示符,我会遇到同样的问题。)然后我尝试添加net localgroup "Administrators" NT Authority\System /add,希望该组可能会作为管理员添加,并允许我安装appx,以便可以运行测试,但没有成功。现在,我不确定是否真正存在可以通过Jenkins安装appx的方法,或者是否有一种方法可以通过Jenkins以管理员身份调用Powershell脚本。我已经看过几个SO链接,但似乎没有一个能解决我面临的问题。任何指针都将不胜感激。

1个回答

1

不要尝试将System添加到管理员组,它是一个有限账户,没有管理权限。

相反,将Jenkins服务更改为以具有所需权限的用户运行。这可能意味着您需要为Jenkins服务创建一个帐户。

有几种方法可以更改服务帐户,this answer提供以下解决方案:

sc.exe config "Service Name" obj= "DOMAIN\User" password= "password"

将主Jenkins服务更改为特定用户会返回“Windows无法在本地计算机上启动Jenkins服务”。因此,我想必须改回System。然而,主要问题是Jenkins在Windows从属机上生成的命令提示符/ Powershell窗口需要以管理员身份运行,否则软件包安装将无法进行。而且Windows从属机也可以在远程机器上运行,在这种情况下,从属机和主机通过https://wiki.jenkins-ci.org/display/JENKINS/Swarm+Plugin进行通信。 - learn_develop
等一下,也许在我的系统上已经通过上述解决方案修复了主从都在同一台机器上的问题。将调查如何在远程位置定位从服务器并实现类似的解决方案。 - learn_develop
刚刚通过将Jenkins Swarm服务以管理员身份运行来解决了远程机器上的问题。谢谢。 - learn_develop

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接