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

使用Microsoft Graph PowerShell生成所有用户的Microsoft许可证分配报告

Microsoft Graph PowerShell生成所有用户的Microsoft许可证分配报告

看起来你已经找对了方向,用Microsoft Graph PowerShell来导出用户和对应的许可证,但脚本里有几个小问题导致输出格式混乱,还出现了多余的PSObject属性。我来帮你修正一下,同时实现你想要的“用户UPN + 对应许可证”的逐行格式。

问题分析

你的原脚本有两个主要问题:

  1. 多余的嵌套循环:$x.SkuPartNumber本身就是单个许可证的编号(比如FLOW_FREE),不是数组,所以foreach ($license in $licenses)这个循环完全没必要,反而可能导致无效的对象创建。
  2. 没有收集结果到集合:你每次创建$result对象但没有把它们存到一个数组里,导致PowerShell自动输出每个对象时格式混乱,最后还输出了PSObject的元数据。

修正后的脚本

这个脚本会帮你生成清晰的用户-许可证对应列表,还支持导出到CSV方便后续整理:

# 连接到Microsoft Graph,需要足够的权限
Connect-MgGraph -Scopes "User.Read.All"

# 方式1:指定测试用户列表
$users = "user1@example.com", "user2@example.com", "user3@example.com", "user4@example.com"

# 方式2:获取租户内所有用户(注释掉上面的$users,用下面这行)
# $users = Get-MgUser -All | Select-Object -ExpandProperty UserPrincipalName

# 创建空数组,用来存储所有报告条目
$licenseReport = @()

foreach ($user in $users) {
    Write-Host "正在处理用户: $user"  # 可选:显示当前处理的用户,方便跟踪进度

    # 获取该用户的所有许可证详情
    $userLicenses = Get-MgUserLicenseDetail -UserId $user

    # 遍历每个许可证,生成报告条目
    foreach ($license in $userLicenses) {
        $reportEntry = [PSCustomObject]@{
            UPN     = $user
            License = $license.SkuPartNumber
        }

        # 将条目添加到报告数组
        $licenseReport += $reportEntry
    }
}

# 输出格式化的报告
Write-Host "`n=== 许可证分配报告 ==="
$licenseReport

# 可选:将报告导出到CSV文件(替换为你想要的路径)
# $licenseReport | Export-Csv -Path "C:\Temp\O365UserLicenses.csv" -NoTypeInformation -Encoding UTF8

# 断开Graph连接
Disconnect-MgGraph

运行效果

执行后你会得到这样的清晰输出:

UPN                  License
---                  -------
user1@example.com    FLOW_FREE
user1@example.com    SPE_E5
user2@example.com    PBI_PREMIUM_PER_USER_ADDON
user2@example.com    FLOW_FREE
user2@example.com    SPE_E5
...

额外提示

  • 如果你的租户用户很多,Get-MgUser -All会自动处理分页,不用担心遗漏用户。
  • 导出CSV时加上-Encoding UTF8可以避免中文乱码问题(如果你的UPN包含中文)。
  • 确保你运行脚本的账号有User.Read.All权限,否则无法获取所有用户的信息。

备注:内容来源于stack exchange,提问作者Chmmi_Kukot

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 07:13:08