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

如何从Azure AD提取所有企业应用及其关联的用户或用户组列表

Azure AD企业应用及分配关系导出方案

前置依赖配置

  • 安装Microsoft Graph PowerShell模块(替代已废弃的AzureAD模块),执行命令:
    Install-Module Microsoft.Graph -Scope CurrentUser -Force
  • 调用命令登录Azure AD,授予必要的读权限:
    Connect-MgGraph -Scopes "Application.Read.All","Directory.Read.All"
    登录时需要使用有全局管理员或应用管理员权限的账号操作。

精简导出脚本

直接运行以下脚本即可导出无冗余属性的结果,最终输出为CSV文件:

# 初始化结果数组
$exportResults = @()

# 获取所有企业应用(服务主体)
$allEnterpriseApps = Get-MgServicePrincipal -All:$true -Filter "servicePrincipalType eq 'Application'"

foreach ($app in $allEnterpriseApps) {
    # 获取当前应用的所有分配记录
    $appAssignments = Get-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $app.Id -All:$true
    if (-not $appAssignments) {
        # 可选:如果需要保留无分配的应用,取消注释下方代码
        # $resultItem = [PSCustomObject]@{
        #     企业应用名称 = $app.DisplayName
        #     企业应用ID = $app.AppId
        #     分配主体类型 = "无分配"
        #     分配主体名称 = ""
        # }
        # $exportResults += $resultItem
        continue
    }
    foreach ($assignment in $appAssignments) {
        # 区分主体类型是用户还是组
        $principalType = $assignment.PrincipalType
        $principalName = $assignment.PrincipalDisplayName
        
        $resultItem = [PSCustomObject]@{
            企业应用名称 = $app.DisplayName
            企业应用ID = $app.AppId
            分配主体类型 = $principalType
            分配主体名称 = $principalName
        }
        $exportResults += $resultItem
    }
}

# 导出结果到CSV
$exportResults | Export-Csv -Path ".\Azure企业应用分配列表.csv" -NoTypeInformation -Encoding UTF8

脚本特性说明

  • 仅返回核心需要的字段,没有冗余属性,不需要额外清洗数据
  • 自动区分直接分配用户和分配用户组两类主体
  • 支持大租户自动分页拉取,应用数量过万也可正常运行
  • 可选配置是否导出无分配记录的企业应用,按需调整注释代码即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 11:06:03