我正在尝试使用 jenkins 创建 CI/CD 管道,我的环境 devops/deployment 是 windows server 2016。
用 apache groovy 编写的管道脚本。其中调用批处理文件来部署代码,该批处理脚本正在执行 2 个任务。
这两个命令都在批处理文件中提到,批处理文件是通过简单的'bat batchfilelocation/name.bat'通过groovy脚本调用的。这是批处理脚本:
@echo [off]
net use "\\<servername>\<shareddirectory>" <password> /user:<domain\user> /persistent:no
robocopy "C:\jenkins\AngularPipeline\dist\<project>" \\$<Dir>eddistinationServer>\<shar /E /PURGE
sc \\$servername start w3svc
echo on
echo close batch script!
对于 sc 命令执行,它给出以下错误:
C:\jenkins\AngularPipeline>sc \ start w3svc [SC] StartService: OpenService FAILED 5: Access is denied.
这个脚本运行良好,而我直接通过命令提示符(非管理员)调用它。访问被拒绝仅在此脚本在 jenkins groovy 下运行时出现。
我检查了以下可能性:
D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO ;;;WD)
请建议如何解决相同的问题。
最佳答案
推荐途径:
如果您没有在另一个代理上运行此 Jenkins 作业,那么您可以重新配置您的 Jenkins 服务以使用本地管理员帐户。为此,请按照以下步骤操作
第二种方法:
操作中心 -> 更改用户帐户控制设置
在这种情况下,作业将被标记为失败,但脚本将被执行。
关于jenkins - 从 jenkins groovy 调用 windows sc 命令时提示访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56885907/