2010-12-15 95 views
3

运行命令行构建时,我对TeamCity有一些验证问题。它涉及到一个现有的问题,关于executing an svn checkout command但我要问它明确地在这里:为什么TeamCity命令行亚军在“系统”下执行?

为什么当TeamCity的生成代理服务配置为在特定的Active Directory帐户下运行本地系统帐户,当我执行此命令:

echo "%username%" 

我得到这个构建输出:

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

这是REA当我试图以我的AD服务帐户身份执行命令时,我会玩弄破产,为什么会发生这种情况?其他构建跑步者(即MSBuild)正在服务帐户的身份下执行,为什么这不会发生命令行?

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

更新2:的“设置”命令显示的用户名作为“系统”,但用户配置文件指向的服务帐户的输出:

[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] 
+0

可能你应该使用%user.name%? – 2010-12-15 19:59:24

+1

问题不在于获取当前用户身份的能力,而是工作得很好。问题在于该流程没有按照预期的身份运行。我不相信%user.name%是有效的语法。 – 2010-12-15 20:04:32

+0

http://confluence.jetbrains.net/display/TCD6/Predefined+Build+Parameters#PredefinedBuildParameters-AgentSpecificProperties请参阅代理属性表。 – 2010-12-15 20:28:00

回答

0

您是否尝试过重新启动服务您更改凭证后? 我的意思是团队城市服务器和构建代理