如何通过PowerShell/Azure CLI列出有权访问Azure DevOps项目仓库的用户
获取Azure DevOps代码仓库访问权限用户列表的实现方法
操作前置要求:你需要拥有目标Azure DevOps项目的项目管理员及以上权限,否则无法拉取完整的权限配置数据。
方案1:通过Azure CLI实现
- 第一步:安装Azure DevOps CLI扩展
执行命令:az extension add --name azure-devops - 第二步:配置默认组织与项目,完成登录认证
依次执行以下命令,替换对应占位符为你实际的组织、项目信息:az devops configure --defaults organization=https://dev.azure.com/你的组织名称 project=你的项目名称 az login - 第三步:查询目标仓库ID
执行命令获取当前项目下所有仓库的名称和ID:az repos list --query "[].{仓库名称:name, 仓库ID:id}" -o table - 第四步:拉取仓库权限用户列表
执行以下命令,替换你的项目ID、你的仓库ID为上一步拿到的对应信息:az devops security permission list --id 2e9eb7ed-3c0a-47d4-87c1-0ffdd275fd87 --subject-types user --token "repoV2/你的项目ID/你的仓库ID" --query "[].{用户名称:displayName, 用户标识:descriptor}" -o table
说明:命令中的2e9eb7ed-3c0a-47d4-87c1-0ffdd275fd87是Azure DevOps预设的Git仓库安全命名空间固定ID,无需修改 - 如需导出结果到CSV,直接在命令末尾添加
--output csv > 仓库权限用户列表.csv即可。
方案2:通过PowerShell实现
- 第一步:安装Az.DevOps模块
执行命令:Install-Module -Name Az.DevOps -AllowClobber -Scope CurrentUser - 第二步:运行权限查询脚本
替换脚本中的占位符为实际信息后执行即可:# 基础配置 $orgName = "你的组织名称" $projectName = "你的项目名称" $targetRepoName = "目标仓库名称" # 登录Azure账号 Connect-AzAccount # 获取目标仓库信息 $repo = Get-AzDevOpsRepo -Organization $orgName -Project $projectName -Name $targetRepoName # 查询仓库权限关联主体 $securityPermissions = Get-AzDevOpsSecurityPermission ` -Organization $orgName ` -SecurityNamespaceId "2e9eb7ed-3c0a-47d4-87c1-0ffdd275fd87" ` -ResourceId "repoV2/$($repo.ProjectId)/$($repo.Id)" # 筛选出真实用户,排除组、服务账号 $accessUsers = $securityPermissions.Subjects | Where-Object {$_.SubjectType -eq "User"} | Select-Object DisplayName, MailAddress # 输出结果 $accessUsers | Format-Table # 取消注释下方命令可导出到CSV # $accessUsers | Export-Csv -Path "仓库权限用户列表.csv" -NoTypeInformation -Encoding UTF8 - 如果你需要查询项目下所有仓库的权限用户,外层添加循环遍历
Get-AzDevOpsRepo返回的所有仓库即可。
内容的提问来源于stack exchange,提问作者Maulin Shah
相关产品推荐
相关产品推荐

