我正在尝试在远程(Windows 2008 Server R2)机器上运行powershell脚本。以下代码在直接从powershell执行时非常有效。(即一切都设置正确,WinRM服务正在运行,主机之间的信任,登录是正确的...)
但是,当我从运行在同一台机器上的Jenkins实例执行完全相同的代码时,我会得到PSSessionStateBroken连接失败。(不发布完整错误,因为它在我的机器上是德语。)
我想这意味着Jenkins使用了不同的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服务,我成功解决了这个问题。对我来说有效,但感觉不太合适...