是否有可获取Azure存储库安全组的Powershell命令?
实现方法说明
可以通过Azure官方提供的Az.Repos PowerShell模块实现需求,步骤如下:
前置依赖
- 首先安装所需PowerShell模块
Install-Module -Name Az.Repos -AllowClobber -Scope CurrentUser - 登录到你的Azure账户,并指定默认的DevOps组织、项目
# 登录Azure Connect-AzAccount # 配置默认DevOps上下文,替换尖括号内的内容为你的实际信息 $org = "https://dev.azure.com/你的组织名称" $projectName = "你的项目名称" az devops configure --defaults organization=$org project=$projectName
完整查询脚本
# 初始化结果数组 $result = @() # 获取项目下所有Git存储库 $repos = Get-AzDevOpsGitRepository -ProjectName $projectName # 遍历每个存储库,查询关联安全组 foreach ($repo in $repos) { # 获取当前存储库的所有权限分配 $permissions = Get-AzDevOpsGitRepositoryPermission -ProjectName $projectName -RepositoryId $repo.Id # 筛选出主体类型为安全组的条目,去重 $securityGroups = $permissions | Where-Object {$_.PrincipalType -eq "Group"} | Select-Object -ExpandProperty PrincipalName -Unique # 组装结果 $result += [PSCustomObject]@{ 存储库名称 = $repo.Name 关联安全组 = $securityGroups -join ";" } } # 输出完整清单 $result | Format-Table -AutoSize # 如需导出到CSV可以使用以下命令 # $result | Export-Csv -Path "Repo安全组清单.csv" -Encoding UTF8 -NoTypeInformation
结果说明
- 输出内容包含项目下所有Azure Repos存储库的名称,以及每个存储库关联的所有安全组,包含继承自项目级的全局安全组和存储库单独配置的专属安全组
- 如需仅查询存储库单独配置的安全组,可以在
Get-AzDevOpsGitRepositoryPermission命令后添加参数-ExcludeInheritedPermissions
内容的提问来源于stack exchange,提问作者Rakesh
相关产品推荐
相关产品推荐

