为什么TeamCity命令行运行器在“系统”下执行?

时间:2010-12-15 10:00:29

标签: command-line authorization teamcity

在运行命令行构建时,我对TeamCity有一些auth问题。它与关于executing an svn checkout command的现有问题有关,但我想在此明确提出:

为什么当TeamCity构建代理服务配置为在特定Active Directory帐户下运行且 本地系统帐户时,执行此命令时:

echo "%username%"

我得到了这个构建输出:

[20:52:04]: C:\TeamCity\buildAgent\work\b67560ceb299718c>echo "SYSTEM" 
[20:52:04]: "SYSTEM"

这对我尝试以AD服务帐户的身份执行命令的方式造成了严重破坏,为什么会发生这种情况?其他构建运行程序(即MSBuild)正在以服务帐户的身份执行,为什么命令行不会发生这种情况?

更新1: 在带有Exec目标的MSBuild脚本中包装命令会做同样的事情 - 当前用户仍然是“系统”。

更新2:“set”命令的输出显示用户名为“System”,但用户个人资料指向服务帐户的用户个人资料:

[13:38:28]: USERDNSDOMAIN=[domain.dns name]
[13:38:28]: USERDOMAIN=[domain]
[13:38:28]: USERNAME=SYSTEM
[13:38:28]: USERPROFILE=C:\Users\[service account]

1 个答案:

答案 0 :(得分:0)

您是否尝试在更改凭据后重新启动服务? 我指的是teamcity服务器和构建代理