PowerShell工作流程在Jenkins中不起作用?

时间:2019-04-03 19:33:07

标签: jenkins powershell-workflow

我在PowerShell中有一个脚本。它通过PowerShell步骤从Jenkins运行。没有詹金斯,一切都会很好。但是,当我用詹金斯(Jenkins)构建它时,我什么也没有……没有错误,只有一无所有。怎么了? Jenkins无法使用PowerShell工作流程?

简单的例子:

workflow config {
    Param([string[]]$servers, $MaxEnvSize, $MaxMemPerShell)

    $servers = $servers.Trim()

    foreach -parallel -throttlelimit 50 ($server in $servers) {
        if (Test-Connection -ComputerName $server -Quiet -Count 1) {
            inlinescript {
                try {
                    Invoke-Command -ComputerName $using:server -ea Stop  -ScriptBlock {
                        Param($MaxEnvSize, $MaxMemPerShell)

                        Set-Item WSMan:\localhost\MaxEnvelopeSizekb -EA Stop -Value $MaxEnvSize
                        Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB -EA Stop $MaxMemPerShell
                        Set-Item WSMan:\localhost\Plugin\Microsoft.PowerShell\Quotas\MaxMemoryPerShellMB -EA Stop $MaxMemPerShell
                        #Restart-Service winrm
                    } -ArgumentList $using:MaxEnvSize , $using:MaxMemPerShell
                } catch {
                    "$using:server : $Error[0].Exception"
                }
            }
        } else {
            Write-Output "$server no ping"
        }
    }
}

config -Servers $env:servers -MaxEnvSize 16454  -MaxMemPerShell 5192

1 个答案:

答案 0 :(得分:0)

默认情况下,詹金斯将使用32位Powershell。 Powershell工作流仅在64位Powershell中受支持。使用C:\ Windows \ Sysnative \ WindowsPowerShell \ v1.0 \ powershell.exe触发powershell脚本,该脚本将重定向到64位powershell。