如何在Azure DevOps中复制一个用户的权限、审批权限及自定义权限至另一用户?
复制Azure DevOps用户权限到新用户的解决方案
方法一:用安全组批量迁移(最省心)
- 给原用户创建一个临时自定义安全组,把原用户的所有项目级、团队级权限都转移到这个组里——包括关联的自定义权限组
- 将新用户加入该临时组,自动继承所有组权限
- 确认新用户权限生效后,把原用户从组内移除(若无需保留原用户权限)
- 注意:审批权限是绑定个人的,需单独前往发布/构建管道的审批环节替换用户
方法二:REST API导出导入权限
- 导出原用户权限:先调用API获取所有安全命名空间,再针对每个命名空间拉取原用户的权限条目
拿到命名空间ID后,获取用户权限:GET https://dev.azure.com/{你的组织名}/_apis/securitynamespaces?api-version=7.1-preview.1GET https://dev.azure.com/{你的组织名}/_apis/securitynamespaces/{namespaceId}/permissions?subjectDescriptor={原用户的descriptor}&api-version=7.1-preview.1 - 导入到新用户:把返回的权限数据里的
subjectDescriptor替换为新用户的,调用POST接口添加权限POST https://dev.azure.com/{你的组织名}/_apis/securitynamespaces/{namespaceId}/permissions?api-version=7.1-preview.1 - 提示:用Postman或写简单脚本批量执行,比手动操作高效很多
方法三:PowerShell脚本自动化
- 先安装Azure DevOps的PowerShell模块:
Install-Module -Name Az.DevOps -Force - 脚本核心步骤:
- 连接到你的Azure DevOps组织
- 获取原用户和新用户的
subjectDescriptor - 遍历所有安全命名空间,导出原用户的权限配置
- 替换配置中的用户为新用户,批量导入权限
额外注意点
- 自定义权限:如果是自建的权限组,直接将新用户加入对应组即可
- 审批权限:每个涉及的管道都要进入审批阶段更新,要么替换原用户,要么添加新用户
- 验证:迁移完成后用新用户登录,检查项目访问、管道操作、审批入口等功能是否正常
内容的提问来源于stack exchange,提问作者Tutul Ckul
相关产品推荐
相关产品推荐

