Azure DevOps中更新PAT的validTo日期所需权限咨询
解决Azure DevOps PAT过期日期更新权限问题
确认所需权限
要更新PAT的过期日期,你需要的是**vso.tokenadministration_manage**权限——你当前看到的vso.tokenadministration仅支持读取令牌管理信息,vso.tokens仅支持读取令牌本身信息,二者都不具备修改权限。这个管理权限属于Azure DevOps组织级别的"Token Administration"权限组。配置权限步骤
- 登录Azure DevOps组织后台,进入组织设置 > 权限 > Token Administration组
- 将你在Azure门户创建的应用(服务主体)添加到该组,或直接为其分配Manage权限(对应
vso.tokenadministration_manage) - 等待权限生效后,再尝试调用API更新PAT过期日期
PowerShell脚本示例(更新PAT过期日期)
$orgName = "你的组织名称" $accessToken = "你的应用访问令牌" $targetPatId = "需要更新的PAT的ID" $newExpireDate = "2025-12-31T23:59:59Z" # 采用ISO标准日期格式 $authHeader = @{ "Authorization" = "Basic " + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$accessToken")) "Content-Type" = "application/json" } $updateBody = @{ expirationDate = $newExpireDate } | ConvertTo-Json $apiEndpoint = "https://vssps.dev.azure.com/$orgName/_apis/tokens/pats/$targetPatId?api-version=7.1-preview.1" Invoke-RestMethod -Uri $apiEndpoint -Method Patch -Headers $authHeader -Body $updateBody排查要点
- 确保权限是组织级而非项目级,Token Administration权限仅在组织层面生效
- 验证API版本是否正确(推荐使用
7.1-preview.1及以上版本) - 确认目标PAT的ID无误,可通过GET请求调用令牌列表接口获取ID
内容的提问来源于stack exchange,提问作者Ryone
相关产品推荐
相关产品推荐

