Sto tentando di eseguire uno script PowerShell su un computer remoto (Windows 2008 Server R2). Il seguente codice funziona alla grande se eseguito direttamente da PowerShell. (Cioè tutto è impostato correttamente, i servizi WinRM sono in esecuzione, gli host si fidano l'un l'altro, l'accesso è corretto ...)Accesso remoto con PowerShell e Jenkins
Tuttavia, quando eseguo lo stesso codice esatto da un'istanza di Jenkins (in esecuzione sulla stessa macchina in cui testato) Ricevo un errore di connessione PSSessionStateBroken,. (Non postare un errore completo perché è in tedesco sulla mia macchina.)
Suppongo che significhi che Jenkins sta usando PowerShell in modo diverso o ha diverse impostazioni di PowerShell/WinRM o privilegi insufficienti. Qualche idea?
$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: Siamo riusciti a risolvere il problema eseguendo servizio Jenkins come amministratore. Funziona per me, ma non mi sembra giusto ...