从Jenkins使用PowerShell脚本重置远程IIS



我有一个连接到远程服务器并重置IIS的PowerShell脚本,如果我从PowerShell窗口执行它,这个脚本工作得很好,我的问题是让它与Jenkins一起工作,我尝试了以下几个选项。

在构建脚本中使用Exec Ant任务:

<target name ="reset.IIS" description="Resets the IIs of specified URL">
    <exec executable="powershell" failonerror="true" outputproperty="myscript.out" errorproperty="myscript.error" output="iisout.log">
        <arg line="-ExecutionPolicy RemoteSigned" />
        <arg line="-File ${script.path}" />
    </exec>
<if>
    <not>
        <equals arg1="${myscript.error}" arg2="" trim="true" />
    </not>
    <then>
        <fail message="${myscript.error}" />
    </then>
</if>
</target>
这是我的PowerShell脚本:
Import-Module WebAdministration
Set-ExecutionPolicy Remotesigned
$User = "MYComputerUser"
$File = "E:TempPassword.txt"
$targetServer  = "AA140294"
$MyCredential=New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, (Get-Content $File | ConvertTo-SecureString)
Invoke-Command -ComputerName $targetServer -ScriptBlock{ D:Trunkbuildsprint17qcReset.ps1 } -Credential $MyCredential

当我从Jenkins运行这个时,什么也没有发生;它只会在控制台窗口显示正在执行的脚本。

我还尝试将其从构建脚本中移出,并将其放入Jenkins"Windows powershell"的构建步骤中,但我得到以下错误:

<>之前[JenkinsCI] $ powershell.exe "& 'C:WindowsTEMPhudson7326095447547431161.ps1'"文件C:WindowsTEMP hudson7326095447547431161。无法加载Ps1在此系统上禁止执行脚本。请参见"get-help"About_signing"获取更多详细信息。之前

这是我在远程计算机上的ps1脚本:

Import-Module WebAdministration
$name = "build.test.com"
$path = "IIS:Sites"
$fullpath = $path + $name
Stop-Webitem $fullpath
Start-Webitem $fullpath
Get-Website -Name $name
Exit-PSSession

我从PowerShell窗口检查了执行策略。它是无限制的。

任何帮助都是感激的,提前感谢。

应该将执行策略设置为无限制。

相关内容

  • 没有找到相关文章

最新更新