我有一个简单的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
哪个消息失败:
后台进程报告错误,并显示以下消息:。
八达通触手以具有管理员权限的域帐户运行在计算机上。
我现在已经完全用尽了所有调查手段,但我们确实需要使此工作正常进行。我认为,如果我们不能以某个用户身份运行部署脚本,那么我们将完全被搞砸。
近三年后,我遇到了同样的问题...我试图将代码写入临时文件并使用Start-Process,但也无法使它正常工作。
最后,我将代码写入文件,然后通过Windows任务计划程序运行它。