J'ai un problème d'authentification avec TeamCity lors de l'exécution d'une ligne de commande. Il est lié à une question existante au sujet executing an svn checkout command mais je veux demander explicitement ici:Pourquoi le programme de ligne de commande TeamCity s'exécute-t-il sous "Système"?
Pourquoi est-ce que lorsque le service d'agent de construction de TeamCity est configuré pour fonctionner sous un compte Active Directory spécifique et pas le système local compte, quand j'exécute cette commande:
echo "%username%"
Je reçois cette sortie de construction:
[20:52:04]: C:\TeamCity\buildAgent\work\b67560ceb299718c>echo "SYSTEM"
[20:52:04]: "SYSTEM"
ce rea Si je tente d'exécuter des commandes sous l'identité de mon compte de service AD, pourquoi cela se produit-il? Les autres coureurs de build (c'est-à-dire MSBuild) s'exécutent sous l'identité du compte de service, pourquoi cela ne se passe-t-il pas pour la ligne de commande?
Mise à jour 1: la commande Envelopper dans un script MSBuild avec une cible Exec fait la même chose - l'utilisateur actuel est encore « système ».
Mise à jour 2: La sortie d'une commande « set » affiche le nom d'utilisateur comme « système », mais les points de profil utilisateur à celui du compte de service:
[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]
peut-être vous devriez utiliser% user.name%? –
Le problème n'est pas la capacité à obtenir l'identité de l'utilisateur actuel, cela fonctionne très bien. Le problème est que le processus ne s'exécute pas sous l'identité attendue. Et je ne crois pas% user.name% est une syntaxe valide. –
http://confluence.jetbrains.net/display/TCD6/Predefined+Build+Parameters#PredefinedBuildParameters-AgentSpecificProperties voir la table des propriétés de l'agent. –