Execute PowerShell remotely from TeamCity build using current agent credentials

TeamCity executes builds using the build agents. The build agent I have is an agent on Windows that is running as a service under domain credentials.

I need to Invoke-Command on a remote web server in one of my build steps.

When I do this (lot's of stuff removed for simplicities sake):

$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

It works. But when I provide credentials for currently executing user like this:

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

(surrounding code is the same) I get the internal waiting and not execution at the point of Invoke-Command. I haven't waited too long, but nothing happens even in 5 minutes.

I would like not to have to provide login and password explicitly in the script, since the credentials are basically for the same user that the build agent is running under. How can I work around the need to provide the login and password in script code?


I did two things and it worked:

  • Unchecked -NoProfile argument in PowerShell runner parameters. (Didn't help alone)
  • Removed -Credentail parameter from Invoke-Command.
  • This executed my code as current user - service user.

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

    上一篇: 在Marathon中设置Team City Build Agent端口号

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