コマンドラインビルドを実行しているとき、私はTeamCityで少しの認証問題を持っています。これは、既存の質問について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)がサービスアカウントのIDの下で実行していますが、なぜこれはコマンドラインでは起こりませんか?
アップデート1: がExecの対象とMSBuildのスクリプトにコマンドをラップは、同じことを - 現在のユーザーが「システム」です。
アップデート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]
%user.name%を使用する必要がありますか? –
問題は現在のユーザーのIDを取得する機能ではなく、正常に動作しています。問題は、プロセスが予想されるIDで実行されていないことです。私は%user.name%が有効な構文だとは思わない。 –
http://confluence.jetbrains.net/display/TCD6/Predefined+Build+Parameters#PredefinedBuildParameters-AgentSpecificPropertiesエージェントのプロパティの表を参照してください。 –