我创建了一个管道并尝试通过 Azure CLI 触发和下载工件(尝试了 Windows powershell 和 Developer powershell)。
我可以登录,触发管道,没有任何问题,但是当尝试使用以下命令下载工件时,它会抛出错误消息“TF400813:用户”无权访问此资源”
az pipelines runs artifact download --org <organization> --project <Project name> --artifact-name <Pipeline name> --path <local download path> --run-id 11
我使用PAT登录,用户被分配为管理员并分配给相关项目。 PAT 具有完全访问权限。
此外,我尝试使用az登录以交互方式登录,但出现同样的错误。
PAT设置
机构设置
项目设置
谢谢。
测试场景,一切都按预期进行。以下步骤供您参考:
az devops login --organization https://dev.azure.com/{org}
Enter PAT
az pipelines runs artifact download --org https://dev.azure.com/{org} --project 0508-t --artifact-name TFVC --path C:\temp\1128 --run-id 90811
根据错误消息,受影响的用户似乎没有访问管道工件的权限。
请检查管道/构建安全设置,只需确保受影响的用户具有查看和访问构建/管道的正确权限即可。
要缩小范围并进一步调查问题,请尝试以下操作并检查结果。
尝试使用另一个具有正确权限的用户帐户登录来查看和访问构建/管道,生成新的全范围 PAT,然后重试。
如果可能,请尝试使用所有者或PCA帐户并检查是否有相同的问题。
我在与工件相同的项目中使用项目管理员在本地 powershell 中运行 az 命令:
az login --allow-no-subscription
az devops login --org https://dev.azure.com/{org name}
PAT Token: #generate by the PA with full access
az pipelines runs artifact download --org https://dev.azure.com/{org name} --project {project name} --artifact-name {artifact name} --path {path} --run-id {buildid}
然后转到我的示例中“C:\Users\Administrator”文件夹中的目标目录,您可以找到该工件。
对于您的问题,请检查以下步骤可能是导致问题的原因: 1.请进入组织设置->策略,检查该策略是否已被禁用。如果是这样,请启用“通过 OAuth 访问第三方应用程序”并查看问题是否仍然出现。
2.检查本地是否有代理或防火墙导致问题。
3.清理缓存,从Inprivate窗口登录然后生成一个新的PTA尝试一下。
供您参考,如果您通过Azure Pipeline运行它,您可以考虑使用系统PAT。
$env:AZURE_DEVOPS_EXT_PAT = '$(System.AccessToken)'
希望可以帮到你。
似乎计算机缓存与提供的用户冲突,当我尝试使用不同的电脑时它可以工作,感谢大家的支持。
从 ~/.azure 目录中删除
msal_token_cache.json
后,az pipelines
命令再次开始工作