1

我在 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
4

1 回答 1

0

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

于 2020-01-23T13:15:22.427 回答