问题
I am writing a Powershell script as part of a Visual Studio Team Services build, this build uses a hosted build controller. The script is intended to check out a file, make changes then check it back in.
In the script I am trying to invoke the tf
command to create a new workspace but I'm having authentication issues. The command
& $tf vc workspace /new $tempWorkspaceName /collection:https://mycollection.visualstudio.com/
produces the error:
TF30063: You are not authorized to access https://mycollection.visualstudio.com/.
How can I access TFS from my Powershell script without embedding logins or passwords in the script? Can I access TFS within the context of the build agent, which itself logs in to TFS? Or is there another way I should be doing this?
Note that I haven't used the TFS Power Tool cmdlets as it is a hosted build server. Using the TFS RestAPI also doesn't appear to be an option as there is no facility to check a file in or out.
回答1:
- Check Allow Scripts to Access OAuth Token option of your build defition
- Append /noprompt /loginType:OAuth /login:.,$(System.AccessToken) to your TF command (arguments)
About TF Command, you can check this article.
来源:https://stackoverflow.com/questions/40732535/create-a-workspace-from-powershell-run-within-vs-team-services-build