Я пытаюсь запустить сценарий powershell на удаленной машине (Windows 2008 Server R2). Следующий код отлично работает при выполнении непосредственно из powershell. (т.е. все настроено правильно, сервисы WinRM запущены, хосты доверяют друг другу, логин правильный...)
Однако когда я выполняю точно такой же код из экземпляра Jenkins (работающего на том же компьютере, на котором я тестировал), я получаю ошибку соединения PSSessionStateBroken, . (Не публикую полную ошибку, потому что на моей машине она на немецком языке.)
Я полагаю, это означает, что Дженкинс использует 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 от имени администратора. Работает для меня, но не чувствует себя хорошо...