Azure DevOps通用包上传认证失败求助:az登录后命令仍报错
我是Azure DevOps新手,在Windows机器上尝试通过以下脚本上传通用包:
az login --tenant xxxxxxxxxx az artifacts universal publish ^ --organization https://dev.azure.com/mycompany/ ^ --feed LibWin64 ^ --name LibWin64 ^ --path C:\work\Lib ^ --version 1.0.0
在浏览器中完成认证后,az login显示租户详情JSON后脚本停止,后续执行az artifacts universal publish时出现错误:
TF401444: Please sign-in at least once as xxxxxxxxxxxxxxxxxxxx\myemail in a web browser to enable access to the service.
随后生成了全权限访问令牌,尝试使用az devops login:
echo oijoijjoijoijoijoijoijpojoj | az devops login --organization https://dev.azure.com/mycompany/ az artifacts universal publish ^ --organization https://dev.azure.com/mycompany/ ^ --feed LibWin64 ^ --name LibWin64 ^ --path C:\work\Lib ^ --version 1.0.0
az devops login未返回错误,但az artifacts universal publish仍报相同错误。
检查Azure CLI身份认证上下文
执行az account show确认当前登录的账户和租户是否匹配目标信息。如果不符,执行az account set --subscription <你的订阅ID>切换上下文;或者重新登录时添加--allow-no-subscriptions参数(Azure DevOps操作可能不需要订阅权限):az login --tenant xxxxxxxxxx --allow-no-subscriptions直接在发布命令中指定PAT
跳过az devops login,在az artifacts universal publish命令里用--pat-token参数直接传入个人访问令牌,确保PAT已勾选**Packaging(读写)和Feed(读写)**权限:az artifacts universal publish ^ --organization https://dev.azure.com/mycompany/ ^ --feed LibWin64 ^ --name LibWin64 ^ --path C:\work\Lib ^ --version 1.0.0 ^ --pat-token oijoijjoijoijoijoijoijpojoj清理Azure CLI认证缓存
删除Windows下Azure CLI的缓存目录C:\Users\<你的用户名>\.azure,之后重新执行az login完成认证,避免旧缓存干扰。验证PAT的权限与有效期
登录Azure DevOps进入用户设置 -> 个人访问令牌,编辑目标令牌,确认勾选Packaging下的Read & write权限,且令牌未过期。以管理员身份运行终端
用管理员权限打开命令提示符或PowerShell,重新执行登录和发布命令,避免权限不足导致的认证上下文保存失败。
内容的提问来源于stack exchange,提问作者Boris L

