You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Azure DevOps权限报告提取用户、团队权限并生成数据表?

提取Azure DevOps权限报告数据并生成数据表

步骤1:加载JSON报告到PowerShell对象

先将下载好的JSON文件转换为PowerShell可操作的对象:

# 替换为你的JSON文件实际路径
$permissionReport = Get-Content -Path "C:\downloads\azure-perms-report.json" | ConvertFrom-Json

步骤2:解析并提取目标数据

Azure DevOps权限报告的核心数据存储在entries数组中,每个条目包含主体(用户/团队)、资源(仓库)和权限配置信息。遍历条目并提取关键字段:

$processedData = $permissionReport.entries | ForEach-Object {
    # 提取仓库名称与ID(从resource字段取名称,token字段拆分取ID)
    $repoDetails = @{
        RepoName = $_.resource.displayName
        RepoId = ($_.token -split "/")[-1]
    }

    # 识别主体类型(团队/组或独立用户)
    $subjectDetails = @{
        SubjectType = if ($_.subject.isGroup) { "Team/Group" } else { "User" }
        SubjectName = $_.subject.displayName
        SubjectEmail = $_.subject.mailAddress
        SubjectId = $_.subject.id
    }

    # 遍历每个权限项,生成独立的权限记录
    foreach ($perm in $_.permissions) {
        [PSCustomObject]@{
            @subjectDetails
            @repoDetails
            PermissionName = $perm.permissionName
            PermissionState = switch ($perm.value) {
                1 { "Allow" }
                2 { "Deny" }
                0 { "Not Set" }
                default { "Unknown" }
            }
        }
    }
}

步骤3:生成并导出数据表

在控制台查看结构化表格

$processedData | Format-Table SubjectType, SubjectName, RepoName, PermissionName, PermissionState -AutoSize

导出为CSV(支持Excel直接打开编辑)

$processedData | Export-Csv -Path "C:\output\repo-permissions-summary.csv" -NoTypeInformation -Encoding UTF8

注意事项

  • 如果你的JSON报告中token或resource的结构与示例不同,需调整解析逻辑(比如部分token包含项目名称,可通过-split "/"拆分后提取对应片段)。
  • 若需要将同一主体-仓库的所有权限合并为单行,可使用Group-Object分组后拼接权限字段。

内容的提问来源于stack exchange,提问作者denim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 15:32:46