Command line 为什么TeamCity命令行运行程序在;系统";?

Command line 为什么TeamCity命令行运行程序在;系统";?,command-line,authorization,teamcity,Command Line,Authorization,Teamcity,在运行命令行构建时,我对TeamCity有点身份验证问题。这与现有的一个问题有关,但我想在这里明确地问: 为什么在执行此命令时,当TeamCity build agent服务配置为在特定Active Directory帐户下运行,而不是在本地系统帐户下运行时: echo "%username%" 我得到这个构建输出: [20:52:04]: C:\TeamCity\buildAgent\work\b67560ceb299718c>echo "SYSTEM" [20:52:04]: "S

在运行命令行构建时,我对TeamCity有点身份验证问题。这与现有的一个问题有关,但我想在这里明确地问:

为什么在执行此命令时,当TeamCity build agent服务配置为在特定Active Directory帐户下运行,而不是在本地系统帐户下运行时:

echo "%username%"
我得到这个构建输出:

[20:52:04]: C:\TeamCity\buildAgent\work\b67560ceb299718c>echo "SYSTEM" 
[20:52:04]: "SYSTEM"
这真的破坏了我以我的广告服务帐户的身份执行命令的尝试,为什么会发生这种情况?其他生成运行程序(即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]

更改凭据后是否尝试重新启动服务?
我的意思是teamcity服务器和生成代理都可能是您应该使用%user.name%?问题不在于能否获取当前用户的身份,这很好。问题是进程没有在预期标识下运行。我不相信%user.name%是有效的语法。请参阅代理属性表。我不相信具有AD标识的进程(构建代理)可以创建具有系统标识的进程。啊,我明白你的意思,这是一个代理属性,我指的是命令行属性。