我正在尝试在远程(Windows 2008 Server R2)机器上运行一个 powershell 脚本。以下代码在直接从 powershell 执行时效果很好。(即一切设置正确,WinRM 服务正在运行,主机相互信任,登录正确...)
但是,当我从 Jenkins 实例(在我测试的同一台机器上运行)执行完全相同的代码时,我得到一个PSSessionStateBroken连接失败,. (没有发布完整的错误,因为它在我的机器上是德语。)
我想这意味着 Jenkins 使用不同的 powershell 或具有不同的 powershell/winrm 设置或权限不足。有任何想法吗?
$computer = "<some ip>"
$user = "Administrator"
$password = "<secretpassword>"
$securepassword = ConvertTo-SecureString -String $password -AsPlainText -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $user, $securepassword
Invoke-Command -ComputerName $computer -ScriptBlock { Get-ChildItem C:\ } -Credential $cred
编辑:通过以管理员身份运行 jenkins 服务来修复它。对我有用,但感觉不对...