关于powershell:导致TFS InvokeProcess Build Activity在其他凭据下运行

 2021-04-26 

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

关于捕获,存储和检索凭据,请参阅此博客文章,以获取有关该主题的很好的论述。