导致TFS InvokeProcess Build Activity在其他凭据下运行

时间:2010-09-20 08:32:28

标签: tfs powershell tfs2010 tfsbuild

我们使用InvokeProcess操作自定义构建过程,该操作运行部署我们的sln的PowerShell脚本。

问题是此脚本必须在给定用户(而不是tfsbuild用户)下运行。

我们怎样才能实现这个目标?

  • 备选方案1:制作InvokeProcess 以其他用户身份运行 -
  • 备选方案2:自行制作powershell脚本 以不同的用户身份运行

问题是我不知道如何做到这一点。

2 个答案:

答案 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