Ich versuche, ein Powershell-Skript auf einem Remotecomputer (Windows 2008 Server R2) auszuführen. Der folgende Code funktioniert hervorragend, wenn er direkt von der Powershell ausgeführt wird. (Dh alles ist korrekt eingerichtet, WinRM - Dienste laufen, Hosts vertrauen einander, Login ist korrekt ...)Remotezugriff mit Powershell und Jenkins
Allerdings, wenn ich den exakt gleichen Code von einer Jenkins - Instanz ausführen (läuft auf der gleichen Maschine, wo ich getestet) Ich bekomme eine PSSessionStateBroken Verbindungsfehler,. (Kein vollständiger Fehler, weil es in Deutsch auf meinem Gerät ist.)
Ich nehme an, dass Jenkins Powershell anders verwendet oder hat andere Powershell/Winrm-Einstellungen oder unzureichende Berechtigungen. Irgendwelche Ideen?
$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
Edit: Managed es zu beheben, indem jenkins Dienst als Administrator ausgeführt wird. Funktioniert für mich, fühlt sich aber nicht richtig an ...