如何从单个会话执行多个powershell命令

时间:2017-02-03 13:17:15

标签: powershell jenkins jenkins-plugins jenkins-workflow sccm

我试图连续执行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脚本脚本只能为它自己的目录执行吗?

2 个答案:

答案 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触发构建并且它起作用。