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

标签 powershell tfs azure-devops tfsbuild

我正在编写一个 Powershell 脚本作为 Visual Studio Team Services 构建的一部分,此构建使用托管构建 Controller 。该脚本旨在 check out 文件,进行更改,然后将其重新检入。

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

& $tf vc workspace /new $tempWorkspaceName /collection:https://mycollection.visualstudio.com/ 

产生错误:

TF30063: You are not authorized to access https://mycollection.visualstudio.com/.



如何从我的 Powershell 脚本访问 TFS,而不在脚本中嵌入登录名或密码?我可以在构建代理的上下文中访问 TFS,它本身登录到 TFS?或者还有另一种方式我应该这样做吗?

请注意,我没有使用 TFS Power Tool cmdlet,因为它是托管构建服务器。使用 TFS RestAPI 似乎也不是一个选项,因为没有工具可以检入或 check out 文件。

最佳答案

  • 检查您的构建定义的允许脚本访问 OAuth token 选项
    enter image description here
  • 追加 /noprompt/loginType:OAuth/login:.,$(System.AccessToken) 到您的 TF 命令(参数)

  • 关于TF Command,可以查看this文章。

    关于powershell - 从 VS Team Services 构建中运行的 Powershell 创建工作区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40732535/

    相关文章:

    更改为不同的 Azure 订阅时,Azure PowerShell 脚本不起作用

    variables - PowerShell 参数 - "The term ' 参数'未被识别为 cmdlet 的名称”

    windows - 使用 Windows 凭据的 TFS 授权

    azure-devops - 如何直接将 CI 管道中的变量消费到 CD 管道中

    tfs - Team Foundation Service 预览版结束后,我的源代码是否会丢失?

    正则表达式 IF 条件

    powershell - 未找到请求的值 'VS2015'。 - Azure powershell

    c# - 如何从 TFS 中获取指定工作区中特定日期修改的文件列表?

    无需代码审查的 TFS 变更集查询

    azure - 在 Azure DevOps Pipeline 中设置 Visual Studio 测试任务的应用程序设置