【问题标题】:Start-job results in "The background process reported an error with the following message: ."启动作业导致“后台进程报告错误并显示以下消息:。”
【发布时间】:2018-03-07 13:01:15
【问题描述】:

我有一个简单的 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

失败并显示消息:

后台进程报告错误并显示以下消息:.

八达通触手在机器上作为具有管理员权限的域帐户运行。

我现在已经完全用尽了所有调查途径,但我们确实需要让这项工作发挥作用。我认为如果我们不能以某个用户身份运行部署脚本,那我们就完蛋了。

【问题讨论】:

  • 你试过调试吗?它是在接收作业行还是在后台作业内出错?当然,调试后台作业本身会很棘手,但我认为您可以使用等待调试器 cmdlet
  • 感谢您的建议 Rohin -- 我已经在特定用户帐户下运行 tentacle。我想以 不同的 用户帐户运行单个 step。
  • 我真的不明白为什么它会失败。我不是在章鱼上运行它,而是在 ISE 上运行它,它非常适合我。我知道启动作业上的 -Credential 参数应该足以更改用户上下文,但由于它不适合您,您可以尝试从脚本块内部更改上下文。将 PScredential 对象作为参数传递。
  • 我还看到,如果我自己运行这个脚本,它工作得很好,但是当我让 Octopus 这样做时会失败(不管我将触手设置为哪个帐户运行)。我开始认为这是 Octopus 的错误或限制,而不是脚本或帐户设置的问题。

标签: powershell impersonation octopus-deploy


【解决方案1】:

将近三年后,我遇到了同样的问题...我尝试将代码写入临时文件并使用 Start-Process,但也无法正常工作。

最后,我将代码写入文件,然后通过 Windows 任务调度程序运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-10
    • 2014-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-26
    • 1970-01-01
    相关资源
    最近更新 更多