Cause TFS InvokeProcess Build Activity to run under other credentials
我们已使用InvokeProcess操作自定义了构建过程,该操作运行用于部署sln的powershell脚本。
问题是此脚本必须在给定用户(而不是tfsbuild用户)下运行。
我们如何实现呢?
-
备选方案1:进行InvokeProcess
以其他用户身份运行- -
备选方案2:制作Powershell脚本本身
以其他用户身份运行
问题是我不知道该怎么做。
我已经创建了一个有关如何实现此目标的博客文章:自定义Team Build 2010 –第9部分:模拟活动(在其他凭据下运行)
一个纯PowerShell选项(假设您在TeamBuild计算机上安装了PowerShell 2.0)将使用后台作业。 Start-Job允许您指定另一个帐户的凭据来执行工作。在脚本中旋转后台作业后,您可能需要等待作业完成并从主脚本中获取要输出的结果,例如:
1 2 3 4 | $cred = Get-Credential $job = Start-Job -ScriptBlock { ls c:\\windows\\system32 -r *.sys } -Cred $cred Wait-Job $job Receive-Job $job |
关于捕获,存储和检索凭据,请参阅此博客文章,以获取有关该主题的很好的论述。