当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 报告通过基于组的许可分配的许可证

作者:精品下载站 日期:2024-12-14 04:11:09 浏览:12 分类:玩电脑

报告通过基于组的许可分配的许可证


快速回顾基于团体的许可

2017 年 2 月,Paul Cunningham 审查了基于团体的许可。除了将 Azure AD 重命名为 Entra ID、对管理中心 GUI 进行外观更新以及刷新文档之外,解决方案的工作方式没有发生太大变化。

2021 年,微软表示,在过渡到新的许可证管理平台并支持嵌套组后,他们将取消对 Entra ID Premium P1 许可证的要求。向新平台的过渡已经发生,文档中没有任何要求的痕迹,因此这是一个受欢迎的发展,可能会使基于团体的许可成为对租户更有吸引力的选择。

基于组的许可是一种简单有效的许可证分配方法。简而言之,它的工作原理如下:

  • 许可证及其选项(服务计划)与安全组关联。
  • 当用户加入该组时,Entra ID 会将关联的许可证分配给他们的帐户。如果用户离开该组,Entra ID 将删除许可证。
  • 只要许可证可供分配,该计划就有效。如果许可证不可用,Entra ID 无法分配许可证,直到租户购买更多许可证或从另一个帐户删除许可证。
  • 唯一的另一个问题是服务计划相互冲突。当 Entra ID 尝试分配包含已通过另一个许可证可供帐户使用的服务计划的许可证时,就会发生这种情况。此问题最常见于 Exchange Online,因为许多产品都包含 Exchange Online 计划 1 或计划 2 服务计划。 2023 年初,Exchange Online 许可证堆叠的出现解决了这个问题。

为了讨论的目的,我创建了一个名为“Microsoft Fabric 许可证分配组”的安全组,并将其与 Microsoft Fabric 和 Power Automate 的许可证关联起来(图 1)。添加到该组的成员将收到这些许可证以及由许可证启用的服务计划。

[玩转系统] 报告通过基于组的许可分配的许可证

基于组的许可证管理

本文介绍使用 Microsoft Graph PowerShell SDK 进行 Entra ID 帐户许可证管理的基础知识。文本中描述的分配是直接的,这意味着管理员或脚本运行 Set-MgUserLicense cmdlet 来添加或删除用户帐户的许可证或服务计划。

使用基于组的许可时,不使用直接分配。相反,您可以将帐户添加到用于控制许可证分配的组。例如,这些命令查找目标组的标识符和要添加的用户帐户,并运行 New-MgGroupMember cmdlet 将成员添加到组中。它们是您在添加新帐户后可能执行的处理类型的示例。

$GroupId = (Get-MgGroup -Filter "displayName eq 'Microsoft Fabric License Assignment Group'").Id
$UserId = (Get-MgUser -UserId [email protected]).Id
New-MgGroupMember -GroupId $GroupId -DirectoryObjectId $UserId

几分钟后(假设许可证可用),该帐户将获得通过组成员身份分配的许可证。从图 2 中可以看出,该帐户有一项直接分配和两项从组继承的分配。

[玩转系统] 报告通过基于组的许可分配的许可证

创建新帐户时,这些帐户尽快收到许可证非常重要,否则它们将无法访问任何服务。因此,任何对基于组的正常许可证分配的中断都应立即进行调查和纠正。

要删除通过组分配的许可证,请使用 Remove-MgGroupMemberByRef cmdlet 从组成员身份中删除帐户:

Remove-MgGroupMemberByRef -DirectoryObjectId $UserId -GroupId $GroupId

从组成员资格中删除该帐户后,Entra ID 会在几分钟内从该帐户中删除许可证。有关使用 Microsoft Graph PowerShell SDK 进行组管理的更多信息,请参阅本文。

基于报告组的许可

两年前,我讨论了如何使用 Microsoft Graph PowerShell SDK cmdlet 为租户创建许可报告。该版本的报告仅处理直接许可证分配。要升级报告以处理基于组的许可,分析许可证数据的脚本会检查 Get-MgUser cmdlet 返回的 licenseAssignmentStates 数组。

当存在基于组的分配时,该数组保存有关分配组和产品标识符的信息。对于通过基于组的许可分配的每个产品许可证,阵列中存在一个条目。

AssignedByGroup      : ebe02ef6-c696-4cdb-92d1-011a6c2a02d2
DisabledPlans        : {}
Error                : None
LastUpdatedDateTime  : 29/09/2023 20:25:31
SkuId                : f30db892-07e9-47e9-837c-80727f46fd3d
State                : Active
AdditionalProperties : {}

帐户可以直接或通过组分配许可证。这不会干扰许可证启用的服务,但重复分配会浪费许可证。

为了将数据包含在报告中,脚本会提取组分配并循环访问该组,以解析组显示名称和产品“友好”名称(如 Office 365 E3)。然后,该信息被格式化并放入随后包含在报告中的变量中。以下是提取基于组的许可分配的循环:

[array]$GroupAssignments = $User.licenseAssignmentStates | Where-Object {$Null -ne $_.AssignedByGroup -and $_.State -eq "Active"}
[array]$GroupLicensing = $Null
# Figure out group-based licensing assignments if any exist
ForEach ($G in $GroupAssignments) {
       $GroupName = (Get-MgGroup -GroupId $G.AssignedByGroup).DisplayName
       $GroupProductName = $SkuHashTable[$G.SkuId]
       $GroupLicensing += ("{0} assigned from {1}" -f $GroupProductName, $GroupName)
}
$GroupLicensingAssignments = $GroupLicensing -Join ", "

图 3 显示了基于组的许可分配如何显示在输出报告中。

[玩转系统] 报告通过基于组的许可分配的许可证

作为奖励,该报告会告诉您何时检测到重复的许可证分配,并突出显示最近未登录的帐户。管理员可以使用此信息删除重复的许可证,并考虑是否可以删除分配给未活跃使用的帐户的许可证或用较低的许可证替换。例如,您可以将 Office 365 F1 许可证分配给帐户并删除其 Office 365 E3 或 E5 许可证。最后,报告总结了分配给租户内用户的产品 SKU(图 4)。

[玩转系统] 报告通过基于组的许可分配的许可证

您可以从 GitHub 下载更新的脚本。如果您之前下载过该脚本,请确保您拥有 1.3 或更高版本。

更新:最新版本的脚本包含报告许可证成本的代码。请参阅本文了解更多信息。

值得考虑的基于团体的许可

基于组的许可的设置或管理并不困难。如果您确信许可证可用性不会成为问题,那么这绝对是值得考虑的许可证管理方法。如果您尚未尝试基于组的许可,为什么不从相对不重要的许可证开始,看看该机制是否适合您的租户管理策略。当您为组分配了一些许可证时,请记住运行报告以查看是否存在任何重复的分配。

Microsoft 平台迁移规划和整合

简化迁移规划,克服迁移挑战,更快地完成项目,同时最大限度地降低成本、风险和对用户的干扰。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯