Результат запуска задания: Фоновый процесс сообщил об ошибке следующим сообщением:.

У меня есть простой скрипт Powershell (который запускается на этапе развертывания Octopus), который я пытаюсь запустить как другой пользователь. Он нам понадобится для будущих шагов (каждое приложение на нашей платформе запускается как собственная учетная запись пользователя, и мне нужно иметь возможность запускать произвольный сценарий от имени этого пользователя в процессе развертывания).

Проблема в том, что даже самый простой сценарий выдает совершенно бесполезные сообщения об ошибках, например:

$secpasswd = ConvertTo-SecureString $OctopusParameters["runAsPassword"] -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential ($OctopusParameters["runAsUsername"] , $secpasswd)

$job = Start-Job -scriptblock {
    whoami
} -credential $credential 

$job | Receive-Job -Wait

Что не удается с сообщением:

Фоновый процесс сообщил об ошибке следующим сообщением:.

Щупальце осьминога работает на компьютере как учетная запись домена с правами администратора.

Я полностью исчерпал все возможности расследования, но нам действительно нужно заставить это работать. Я думаю, что если мы не можем запустить сценарий развертывания от имени определенного пользователя, мы полностью облажались.


person Richiban    schedule 26.09.2017    source источник
comment
Вы пробовали его отлаживать? Это ошибка в строке задания приема или внутри фонового задания? Конечно, отладка самого фонового задания будет сложной задачей, но я думаю, что есть командлет ожидания-отладчика, который вы можете использовать.   -  person Sid    schedule 26.09.2017
comment
Может ли этот подход помочь? octopus.com/docs/installation/installing-tentacles/   -  person Sid    schedule 26.09.2017
comment
Спасибо за совет, Рохин - я уже запускаю щупальце под определенной учетной записью пользователя. Я хочу выполнить один шаг как другую учетную запись пользователя.   -  person Richiban    schedule 26.09.2017
comment
Я серьезно не понимаю, почему это не удается. Я не запускаю его от осьминога, но на ISE, он отлично работает для меня. Я знаю, что параметра -Credential в стартовом задании должно быть достаточно для изменения пользовательского контекста, но, поскольку он не работает для вас, вы можете попытаться изменить контекст изнутри блока сценария. Передайте объект PScredential в качестве аргумента.   -  person Sid    schedule 26.09.2017
comment
Я также видел, что этот сценарий отлично работает, если я запускаю его сам, но не работает, когда я заставляю Octopus сделать это (независимо от того, под какой учетной записью я установил Tentacle для запуска). Я начинаю думать, что это ошибка или ограничение Octopus, а не проблема со скриптом или настройкой учетной записи.   -  person Richiban    schedule 26.09.2017
comment
Не могли бы вы убедиться, что ваш объект PScredential правильный? $ Credential.getnetworkcredential (). Password и $ credential.username shoudl вернут вам имя пользователя и пароль.   -  person Sid    schedule 26.09.2017
comment
@RohinSidharth Правильно, оба этих выражения выводят правильные значения в журнал.   -  person Richiban    schedule 26.09.2017
comment
возможно, взгляните: stackoverflow.com/questions/26915264/   -  person Sid    schedule 26.09.2017
comment
Если вы не создадите и не передадите учетные данные; у вас все еще появляется ошибка?   -  person gvee    schedule 28.09.2017
comment
@gvee Нет, блок скрипта работает нормально, но запускается от имени пользователя, от имени которого работает Tentacle.   -  person Richiban    schedule 28.09.2017


Ответы (1)


Почти три года спустя у меня такая же проблема ... Я попытался записать код во временный файл и использовать Start-Process, но не смог заставить это работать.

В конце концов, я записал код в файл, а затем прогнал его через планировщик задач Windows.

person John Fouhy    schedule 07.05.2020