使用api下载TFS构建工件返回401授权错误

时间:2019-10-02 13:53:53

标签: powershell tfs azure-devops azure-devops-rest-api

我正在尝试通过Powershell脚本使用REST API下载TFS构建工件。我收到401授权错误。我有什么想念的吗?

invoke-webrequest -uri "https://collectionurl/tfs/DefaultCollection/_apis/build/builds/33002/artifacts?artifactName=drop&api-version=2.0&%24format=zip" -OutFile "C:\Temp\drop.zip" -UseDefaultCredentials

也通过浏览器尝试过,不断提供凭据弹出窗口。我验证了我的帐户访问权限,一切似乎都很完美。

我正在部署TFS 2018。

2 个答案:

答案 0 :(得分:0)

我采用了另一种方法来下载工件。但是,如果有人能够找到上述解决方案,将不胜感激。

我使用下面的API来下载工件(发现我们也可以下载单个文件)。能够通过GET生成详细信息检索Container ID。

https://collectionurl/tfs/defaultcollection/_apis/resources/Containers/${containerid}?itempath=drop

答案 1 :(得分:0)

您的API看起来不错,似乎只是调用了整个drop文件夹的下载网址。就像这张票:How to get the download url of the artifact in Visual Studio Team Services?

根据您的描述,即使通过浏览器,它仍然会不断提供凭据弹出窗口。

如果是,则您的问题可能与凭证缓存有关。尝试清除存储在控制窗格-凭据管理器中的所有TFS凭据缓存。

此外,您也可以尝试使用 PAT ,而不是使用帐户/密码。用户名应为空。 PAT是密码。

由于您正在将PAT与本地TFS服务器一起使用,请检查是否已关闭基本身份验证

  

我们建议您始终关闭IIS基本身份验证   使用Azure DevOps Server时。仅在必要时才启用   IIS基本身份验证。在上启用IIS基本身份验证时   您的Windows计算机,它会阻止您使用个人访问权限   令牌(PAT)作为身份验证机制。

     

Source link

有关如何使用Powershell下载构建工件的更多详细信息,您也可以浏览此博客-Downloading Build Artifacts in TFS Build