TeamCity使用构建代理执行构建。我拥有的构建代理是Windows上的代理,它在域凭据下作为服务运行。
我需要在一个构建步骤中在远程Web服务器上调用Invoke-Command。
当我这样做时(为了简单起见,删除了很多东西):
$password = ConvertTo-SecureString "actualpasswordhere" -AsPlainText -Force
$credentials = New-Object System.Management.Automation.PsCredential("domain\teamcityagent1",$password)
...
Invoke-Command -computername $IISComputerName -Credential $credentials -ScriptBlock ${function:BackupSite} -ArgumentList $IISSiteName, $IISBackupDirectory
有效。但是当我为当前正在执行的用户提供这样的凭证时:
$credentials = [System.Net.NetworkCredential]::DefaultCredentials
(周围的代码是一样的) 我得到内部等待而不是在Invoke-Command处执行。我没有等太久,但即使在5分钟内也没有任何反应。
我不希望在脚本中明确提供登录名和密码,因为凭据基本上是针对运行构建代理的同一用户。如何解决在脚本代码中提供登录名和密码的需要?
答案 0 :(得分:0)
我做了两件事并且有效:
这将我的代码作为当前用户 - 服务用户执行。