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

使用PowerShell统计多公司Azure AD租户下各公司SKU许可证数量

Azure AD 多公司许可证聚合统计方案

你现有脚本已经拿到了用户和许可证的对应明细,只需要加分组统计逻辑就能直接输出各公司各SKU的计数结果,顺便把原脚本的两个问题一起修复:

  • 原写法循环每个SKU都会拉取一次全量用户,租户用户数多的时候执行效率极低
  • 原写法用-Match匹配SkuId存在字符串误判风险,可能统计到错误的许可证

可直接使用的优化后脚本

# 初始化明细结果列表
$Report = [System.Collections.Generic.List[Object]]::new()

# 一次性拉取所有已订阅SKU,构建ID到名称的哈希映射表,避免重复查询
$SkuMap = @{}
Get-AzureADSubscribedSku | ForEach-Object {
    $SkuMap[$_.SkuId] = $_.SkuPartNumber
}

# 一次性拉取全量用户的必要字段,不需要每个SKU重复拉取
$AllUsers = Get-AzureADUser -All $True | Select-Object DisplayName, UserPrincipalName, CompanyName, Country, AssignedLicenses

Write-Host "开始遍历用户许可证分配关系"
ForEach ($User in $AllUsers) {
    # 跳过未分配任何许可证的用户
    if (-not $User.AssignedLicenses) { continue }
    # 遍历用户实际持有的所有许可证,不存在匹配误差
    ForEach ($AssignedSku in $User.AssignedLicenses) {
        $ReportLine = [PSCustomObject] @{
            User        = $User.DisplayName 
            UPN         = $User.UserPrincipalName
            Companyname = $User.Companyname
            Country     = $User.Country
            SKU         = $AssignedSku.SkuId
            SKUName     = $SkuMap[$AssignedSku.SkuId]
        }
        $Report.Add($ReportLine) 
    }
}

# 按公司、SKU维度分组聚合,自动统计分配数量
$AggregatedReport = $Report | 
    Group-Object -Property Companyname, SKU, SKUName | 
    ForEach-Object {
        $GroupInfo = $_.Name -split ', '
        [PSCustomObject]@{
            Companyname = $GroupInfo[0]
            SKU         = $GroupInfo[1]
            SKUName     = $GroupInfo[2]
            Amount      = $_.Count
        }
    } | Sort-Object Companyname, SKUName

# 控制台输出格式化结果
$AggregatedReport | Format-Table -AutoSize

# 可选:可视化窗口查看
# $AggregatedReport | Out-GridView

# 可选:导出为CSV文件用于账单核算
# $AggregatedReport | Export-Csv -Path ".\公司许可证统计.csv" -NoTypeInformation -Encoding UTF8

核心逻辑说明

聚合计数完全依赖PowerShell内置的Group-Object命令实现,不需要手动逐行计数:指定Companyname、SKU、SKUName三个属性作为分组维度后,每个分组下的条目数Count就是对应公司对应SKU的总分配量,输出结构和你给出的预期示例完全一致。

注意:如果统计结果中出现公司名为空的分组,说明对应用户的Companyname属性未填写,补全用户属性后统计结果就会准确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 23:48:26