我正在设置构建和发布管道,部分要求是在目标服务器上运行一些Powershell和Batch命令。
在大多数情况下,所有构建和发布定义都由我们的专用Build服务帐户运行,这通常就足够了,但在这种特殊情况下,Batch命令应该由另一个服务帐户或用户在目标服务器上运行具有服务器所需的权限。
不幸的是,我们的专用Build服务帐户没有目标服务器所需的权限,因为它们是受限制的环境,并且没有计划删除这些限制。
同样,只有有限数量的服务帐户具有在目标服务器上执行所需任务的权限,但这些服务帐户都没有运行构建任务的权限,并且没有计划对其进行更改。
因此,我的挑战是像往常一样在构建服务帐户下运行构建/发布定义,但是对于特定的批处理命令操作,这些任务应由目标服务器指定的服务帐户运行。我怎样才能做到这一点?
答案 0 :(得分:0)
我们无法在构建或发布过程中更改构建服务帐户。
但是,您可以尝试以下方法与目标服务器上的其他帐户一起运行批处理命令:
cmd.exe
以运行具有特定凭据的批处理脚本。然后添加Utility: PowerShell任务以运行脚本。Param(
[string]$computerName = "v-tinmo-12r2",
)
$Username = "username"
$Password = ConvertTo-SecureString "pasword" -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential($Username,$password)
Invoke-Command -ComputerName $computerName -Credential $cred -ErrorAction Stop -ScriptBlock {Invoke-Expression -Command:"cmd.exe /c 'C:\Scripts\Test.bat'"}
请注意 ,对于这两者,您必须先将要运行的批处理脚本或PowerShell脚本复制到目标服务器。 强>