使用 PowerShell 导出基于 M365 组的许可证分配报告
管理 Microsoft 365 许可证是管理员面临的常见挑战。为了简化此过程,Microsoft 引入了基于组的许可。此功能允许管理员将一个或多个产品许可证分配给一个组,然后将其分配给该组的所有成员,从而自动分配许可证。
然而,仅仅向用户分配许可证是不够的。高效的管理也至关重要。由于许可证可以授予对敏感功能或数据的访问权限,因此监视基于组的分配以确保只有授权组及其成员才能访问非常重要。这有助于防止意外数据泄露或未经授权的操作。定期审查小组分配也有助于优化许可证的使用。
例如,您可能会发现长时间未登录的用户,并且可以将其许可证从组中删除。为此,您只需从组中删除用户,Entra ID 就会自动从该帐户中删除许可证。
现在,让我们探讨可用于检查用户及其基于组的许可证分配的方法。
如何报告通过组分配的 Microsoft 许可证?
以下是可用于检查通过基于组的许可分配许可证的用户列表的方法。
Microsoft Entra 管理中心:登录到 Microsoft Entra 管理中心并导航到身份 -> 计费 -> 许可证 -> 所有产品。 选择产品许可证名称并查看“分配路径”列以查找通过基于组的许可分配的许可证。结果按订阅分组。要查看通过组分配给用户的所有许可证,您需要单独检查每个订阅并搜索组名称。这可能是一个复杂的过程。
Graph PowerShell:您可以使用“Get-MgGroup”cmdlet 中的“AssignedLicenses”属性来查找具有许可证分配的所有组。但是,没有直接的 cmdlet 可用于检索具有基于组的许可证分配的所有用户。
为了让 Microsoft 365 管理员更轻松,我们创建了一个 PowerShell 脚本,可以快速列出用户及其通过组分配的许可证。
下载脚本:M365GroupBasedLicenseReport
脚本亮点
- 导出基于组的许可证分配。
- 导出分配给禁用用户单独的许可证。
- 帮助识别存在许可证分配错误的用户。
- 将SKU 名称转换为用户友好的名称。
- 为分配的许可证生成已禁用的服务计划列表。
- 该脚本使用 MS Graph PowerShell,并在您确认后安装 MS Graph PowerShell SDK(如果尚未安装)。
- 该脚本也可以使用启用 MFA 的帐户执行。
- 将报告结果导出为 CSV 文件。
- 该脚本调度程序友好。
- 它也可以通过基于证书的身份验证 (CBA) 来执行。
基于组的许可证分配报告 - 示例输出
该脚本导出具有以下属性的 Office 365 用户的所有基于组的许可分配。
- 显示名称
- 统一网络
- 通过(组名称)分配
- SKU名称
- SKU 友好名称
- 残疾人计划
- 状态
- 错误
- 最后登录时间
- 不活跃天数
- 帐户状态
- 部门
- 职称
基于 Azure AD 组的许可证分配的导出报告如下图所示。
基于 Microsoft 365 组的许可证报告 - 脚本执行步骤
- 下载脚本。
- 启动 Windows PowerShell。
- 选择提供的任何方法来执行脚本。
方法 1:您可以使用 MFA 和非 MFA 帐户运行脚本。
./M365GroupBasedLicenseReport.ps1此示例将基于组的用户许可分配提取到 CSV 文件中。
注意:如果您特别需要检查用户许可证是直接分配还是通过组继承,您可以使用 PowerShell 脚本查找用户许可证分配路径。
方法 2:您还可以选择使用基于证书的身份验证来运行脚本,这对于调度程序是友好的。当您想要无人值守运行脚本时,可以选择此方法。
要使用证书,您必须在 Microsoft Entra 中注册应用程序并使用证书连接到 MS Graph。
./M365GroupBasedLicenseReport.ps1 -TenantId <TenantId> -ClientId <ClientId> -CertificateThumbprint <CertThumbprint>
注 - 根据您的要求,您可以创建自签名证书。
探索脚本的全部功能
该脚本包含旨在满足您的特定需求的预设过滤选项。以下是一些可以有效使用它的场景:
- 获取所有存在许可证分配错误的用户
- 查找分配给禁用用户的许可证列表
1.获取所有存在许可证分配错误的用户
如果由于许可证不足、许可证不匹配或违规而遇到基于组的许可证分配问题,您可以通过使用 -FindUsersWithLicenseAssignmentErrors 开关执行脚本来有效地排除这些问题。
./M365GroupBasedLicenseReport.ps1 -FindUsersWithLicenseAssignmentErrors2.查找分配给残疾用户的许可证列表
确保最佳许可证利用率和成本效益涉及从不再活跃或不再使用许可证的用户回收许可证。您可以使用 -DisabledUsersOnly 开关执行该脚本,以生成分配给禁用用户的许可证列表,这可能有助于识别已分配许可证的非活动帐户。
./M365GroupBasedLicenseReport.ps1 -DisabledUsersOnly生成的报告将显示分配给帐户被禁用的用户的许可证。
我们希望此博客为您提供使用 PowerShell 报告基于 M365 组的许可所需的必要信息。此外,生成用户许可证报告将帮助您管理和跟踪组织中的所有许可需求。谢谢阅读。如果您还有任何疑问,请随时通过评论部分与我们联系。
