我们使用InvokeProcess操作自定义构建过程,该操作运行部署我们的sln的PowerShell脚本。
问题是此脚本必须在给定用户(而不是tfsbuild用户)下运行。
我们怎样才能实现这个目标?
问题是我不知道如何做到这一点。
答案 0 :(得分:3)
我已经创建了一篇关于如何实现这一目标的博文:Customize Team Build 2010 – Part 9: Impersonate activities (run under other credentials)
答案 1 :(得分:2)
假设您的TeamBuild计算机上有PowerShell 2.0,纯PowerShell选项是使用后台作业。 Start-Job允许您指定其他帐户的凭据以执行工作。在您的脚本中启动后台作业后,您可能希望等待作业完成并从主脚本中获取结果,例如:
$cred = Get-Credential
$job = Start-Job -ScriptBlock { ls c:\windows\system32 -r *.sys } -Cred $cred
Wait-Job $job
Receive-Job $job
关于捕获,存储和检索凭据,请参阅此主题的blog post for a good treatise。