我试图连续执行Jenkins的以下命令:
Import-Module -Name "C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\bin\ConfigurationManager.psd1"
cd IPL:
但似乎Jenkins在执行每个命令后释放会话。因此,我们试图在两个命令之间保持延迟,但没有运气:
Import-Module -Name "C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\bin\ConfigurationManager.psd1"
Start-Sleep -s 5
cd IPL:
在执行脚本时,Jenkins从其工作区目录D:\jenkins\workspace\<JobName>
获取每个命令。我希望以这种方式修改配置,其中Jenkins将从脚本所在的同一驱动器中执行整个脚本(包含所有命令)。不是来自Jenkins工作区。
但谷歌不提供此类资料。我查看了Jenkins工作区修改区域(Jenkins-&gt;管理Jenkins-&gt;配置系统并单击高级)
Jenkins Workspace Modification
但它无济于事,它只会改变工作空间路径以及每当我们执行脚本时。同样,它将在工作区内部执行单个命令,并将在那里执行它们,而不是脚本所在的目录。
有没有办法在不终止每个命令的会话的情况下执行所有命令(来自单个powershell脚本)?那么powershell脚本脚本只能为它自己的目录执行吗?
答案 0 :(得分:0)
无论如何,要回答这个问题(不要触及SCCM部分)。
Jenkins将在同一个Powershell会话期间执行SAME步骤中的所有命令,因此如果您在Jenkins作业中有一步,那么您在其中放入的所有命令都将在同一个PS shell中执行。
关于第二个问题,您可以使用<?php
foreach($homeResult as $hr)
{
?>
<div class="brand-cat wow fadeInUp" data-wow-delay="0s">
<img src="images/brands/<?php echo $hr['IMAGES']; ?>" class="img-responsive" alt="<?php echo $hr['TITLE'];?>">
<div class="brand-name"><img src="images/home_logos/<?php echo $hr['HOME_LOGO'];?>" class="img-responsive" alt=""></div>
<div class="overlay">
<div class="overly-brand-name"><img src="images/home_logos/<?php echo $hr['HOME_LOGO'];?>" class="img-responsive" alt=""><a href="" onclick="get_details(<?php echo $hr['MASTER_ID'];?>);"><i class="fa fa-long-arrow-right" aria-hidden="true"></i></a></div>
<a href="#" onclick="get_details(<?php echo $hr['MASTER_ID'];?>);" class="viewangale">View more</a>
</div>
</div>
<?php
}
?>
来更改powershell的当前工作目录。
答案 1 :(得分:0)
当Jenkins使用系统帐户运行时,Windows Powershell使用\ Administrator帐户运行。因此,我们将Jenkins服务登录从系统帐户更改为域帐户:首先,下载“PsExec.exe”并从命令提示符执行以下命令(&#34; C:\ Users \ Administrator.DUMMYIPSL \ Desktop \ PsExec .exe&#34; -i -s cmd.exe )/二,打开Jenkins服务并打开属性选项卡。现在,从“登录”选项卡将权限从“系统”帐户更改为“域管理员”帐户,然后重新启动Jenkins服务以执行脚本。 /第三,然后从Jenkins触发构建并且它起作用。