从VS Team Services构建中运行的Powershell创建工作区

slu*_*ter 6 powershell tfs tfsbuild azure-devops

我正在编写Powershell脚本作为Visual Studio Team Services构建的一部分,此构建使用托管构建控制器.该脚本旨在检出文件,进行更改然后重新检入.

在脚本中我试图调用tf命令来创建一个新的工作区,但我遇到了身份验证问题.命令

& $tf vc workspace /new $tempWorkspaceName /collection:https://mycollection.visualstudio.com/ 
Run Code Online (Sandbox Code Playgroud)

产生错误:

TF30063:您无权访问https://mycollection.visualstudio.com/.

如何在不在脚本中嵌入登录名或密码的情况下从我的Powershell脚本访问TFS?我是否可以在构建代理的上下文中访问TFS,构建代理本身会登录到TFS?或者我还有另一种方法吗?

请注意,我没有使用TFS Power Tool cmdlet,因为它是托管构建服务器.使用TFS RestAPI似乎也不是一个选项,因为无法检入或退出文件.

sta*_*SFT 6

  1. 选中允许脚本访问构建定义的OAuth令牌选项 在此输入图像描述
  2. / noprompt/loginType:OAuth /login:.,$(System.AccessToken)附加到TF命令(参数)

关于TF Command,您可以查看这篇文章.

  • 很好的答案,谢谢.我见过的所有doco都使用AccessToken作为REST调用的一部分,我没有看到它在命令行中使用过. (2认同)