使用当前代理凭证从TeamCity构建远程执行PowerShell

TeamCity使用构建代理执行构建。 我拥有的构建代理是Windows上的代理,它在域凭据下作为服务运行。

我需要在我的一个构建步骤中的远程Web服务器上调用命令。

当我这样做时(为了简单起见,删除了很多东西):

$password = ConvertTo-SecureString "actualpasswordhere" -AsPlainText -Force
$credentials = New-Object System.Management.Automation.PsCredential("domainteamcityagent1",$password)
...
Invoke-Command -computername $IISComputerName -Credential $credentials -ScriptBlock ${function:BackupSite} -ArgumentList $IISSiteName, $IISBackupDirectory

有用。 但是当我为当前正在执行的用户提供凭据时

$credentials = [System.Net.NetworkCredential]::DefaultCredentials

(周围的代码是相同的)我得到内部等待,而不是在Invoke-Command点执行。 我没有等太久,但即使在5分钟内也没有发生。

我不希望在脚本中明确提供登录名和密码,因为凭证基本上是与生成代理程序所在的用户相同的用户。 如何解决在脚本代码中提供登录名和密码的需求?


我做了两件事情,它工作:

  • 未选中PowerShell运行器参数中的-NoProfile参数。 (没有帮助一个人)
  • 从Invoke-Command中删除-Credentail参数。
  • 这将我的代码作为当前用户 - 服务用户执行。

    链接地址: http://www.djcxy.com/p/36787.html

    上一篇: Execute PowerShell remotely from TeamCity build using current agent credentials

    下一篇: Continuous Deployment with TeamCity