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

[玩转系统] 实用图:批量许可证分配

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

实用图:批量许可证分配


将许可证分配给一组用户

关于如何使用 Microsoft Graph PowerShell SDK 将许可证分配给用户帐户的文章的读者评论要求提供一个示例,展示如何从 CSV 读取帐户并向这些帐户分配许可证。换句话说,如何使用 PowerShell 将许可证批量分配给目标用户帐户。这是人们向租户介绍新产品时所做的事情。

当微软最终发布 Microsoft 365 Copilot 供公众使用时,我想愿意支付 30 美元/用户/月价格的组织在决定谁获得 Copilot 许可证后会寻求某种批量分配机制。鉴于 Copilot 要求租户拥有 Microsoft 365 企业许可证,他们可以使用基于组的许可。这是最好的方法,这里讨论的脚本对于那些无法使用基于组的许可的人来说在很大程度上是一种自己动手的分配机制。话又说回来,了解事物的工作原理总是很好的,这样您就可以在必要时创建自己的自动化。

查找要处理的用户帐户

从概念上讲,处理步骤很简单。第一步是从 CSV 文件导入目标用户帐户的详细信息。或者,您可以使用另一种机制来建立目标帐户集。合适的机制包括:

  • Microsoft 365 组(包括动态组)的成员资格。您需要过滤组成员身份以删除任何来宾帐户。
  • 通讯组列表的成员资格(包括动态通讯组列表)。通讯组列表可以包含无法作为许可证分配目标的对象,例如公共文件夹或邮件用户,因此需要进行一些过滤。
  • Entra ID 管理单位的成员资格。
  • 通过对 Get-MgUser cmdlet 应用过滤器来查找用户帐户。

例如,您可以通过查找位于某个国家/地区的所有账户来找到一组目标账户:

[array]$Users = Get-MgUser -All -Filter "country eq 'United States'"

当然,只有在帐户属性中填充了准确的信息时,使用过滤器查找用户帐户才有效。

创建用于批量许可证分配的目标用户阵列

关键是如何生成一组目标帐户并不重要。重要的是您的脚本提供了一组可用于许可证分配的标识符。这些标识符可以是帐户对象标识符 (GUID) 或用户主体名称。

对于此示例,因为很多人使用 CSV 文件来指向目标帐户,所以我在示例脚本中就是这样做的:

$InputFile = "c:\temp\Users.csv"
[array]$Users = Import-CSV $InputFile

$Users 数组中包含的数据包含我们要为其分配许可证的帐户的用户主体名称和显示名称:

UPN                                DisplayName
---                                -----------
[email protected]   Lotte Vetler
[email protected]     Otto Flick
[email protected]     James Ryan
[email protected]   Hans Geering
[email protected]                Joe Sop
[email protected]      Ben James
[email protected] Brian Weakliam

为每个用户帐户分配许可证

当目标用户帐户集可用时,工作就完成了一半。毕竟,唯一要做的就是为每个帐户运行 Set-MgUserLicense cmdlet。好吧,如果您想执行一次性操作,这当然是正确的,但最好在任何可能重用的脚本代码中构建一些检查和平衡。

为了说明我的意思,请检查图 1 中显示的处理过程。

[玩转系统] 实用图:批量许可证分配

脚本:

  • 查找租户已知的订阅产品 (SKU),并选择仍具有一些可用许可证的 SKU。
  • 向用户显示 SKU 列表,以允许他们选择将哪个许可证分配给目标用户。
  • 检查是否存在足够的可用许可证来分配给所有目标用户。
  • 检查每个目标用户在其分配的集中是否尚未拥有许可证。
  • 如果用户没有许可证,请尝试将许可证分配给该帐户(注意:如果您的租户使用受限管理单元,则只有拥有管理单元管理员角色的帐户才能将许可证分配给成员帐户)。
  • 捕获许可证分配成功或失败的详细信息并将信息记录在列表对象中(图 2)。
  • 报告处理的详细信息,包括发生了多少成功和失败的许可证分配。

[玩转系统] 实用图:批量许可证分配

Microsoft 365 杀伤链和攻击路径管理

有效的网络安全策略需要对攻击如何展开有清晰、全面的了解。阅读本白皮书,获取保卫您的组织所需的专家见解!

更多改进可能

我花了一个愉快的下午玩这个脚本来预测您在许可证分配操作期间可能遇到的一些情况,但我认为我仅仅触及了表面。可以做更多事情来扩展脚本以处理不同的条件,例如:

  • 一次分配多个产品 SKU。
  • 禁用组织不希望人们使用产品 SKU 的服务计划。例如,组织可能认为不需要 Viva Engage (Yammer),因此禁用 Office 365 E3 和 E5 等 SKU 中的 Viva Engage Core 服务计划。这是可能的,但如果禁用 Viva Engage,您会失去一些 Teams 功能,例如会议中的问答应用程序。
  • 通过电子邮件或 Teams 与其他人共享许可证分配处理的结果。

请随意修改我编写的脚本(可从 GitHub 下载)以添加您的想法。我可能不同意你的建议,但至少我们可以讨论一下。

以您的方式自动化批量许可证分配

PowerShell 可以按照您希望的方式(而不是 Microsoft 认为应该做的方式)实现自动化操作。这是它的一大优势,也是每个 Microsoft 365 管理员都应该熟练掌握 PowerShell 的核心原因。

如果您参加在亚特兰大举行的专家会议(2023 年 9 月 19 日至 20 日),请务必参加 Great PowerShell Script-Off,享受一些乐趣并支持参赛者应对我们为他们设置的挑战。所有挑战都是常见的 Microsoft 365 租户自动化任务,因此您甚至还可以学到一些东西!

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

取消回复欢迎 发表评论:

关灯