[玩转系统] 如何切换 Entra ID 帐户的 Microsoft 365 许可证
作者:精品下载站 日期:2024-12-14 04:12:18 浏览:13 分类:玩电脑
如何切换 Entra ID 帐户的 Microsoft 365 许可证
切换 Microsoft 365 许可证,同时保留服务计划集
在阅读有关使用 Microsoft Graph PowerShell SDK 进行许可证管理的文章后,一位读者询问了在保持服务连续性的同时为 Entra ID 帐户切换 Microsoft 365 许可证的最佳方法(这是完整的问题)。这里的问题是,需要处理的每个帐户许可证可能有一组不同的禁用服务计划。手动切换一两个许可证很容易;快速切换数百个变得非常无聊。那时,通过 PowerShell 进行的自动化将成为租户管理员的宝贵工具。
该练习涉及将用户许可证从 Exchange Online 计划 2 切换到 Microsoft 365 E3。我预计,对于拥有 Office 365 E3 或 Office 365 E5 许可证的租户来说,如果他们发现自己必须升级到 Microsoft 365 E3 或 Microsoft 365 E5 才有资格使用 Microsoft 365 Copilot,则会出现此要求。许可证升级必须先进行,然后租户才能继续购买至少 300 个 Copilot 席位并决定谁获得昂贵的每月 30 美元的 Copilot 许可证。
基于组的许可是自动化许可证分配的良好解决方案。管理员可以通过禁用功能来自定义许可证配置。我们在这里探索的是通过删除旧许可证并将其替换为新许可证来编写许可证切换脚本。租户可能决定采用这种方法来完全控制许可证分配的流程。
关于服务计划的一切
通常,在升级许可证时维护用户可用的功能集是没有问题的。较高级别的许可证总是比较低级别的许可证提供更多的功能。 Microsoft 通过服务计划控制功能可用性。服务计划决定其控制的功能是启用还是禁用。例如,如果租户不想使用 Viva Engage (Yammer),则应在分配给用户帐户的许可证中禁用 Viva Engage Core 服务计划。租户经常禁用 Microsoft 仍然捆绑的过时服务计划,例如 StaffHub、Sway 和 Kaizala。图 1 显示了具有 Office 365 E3 许可证且具有两个禁用服务计划的帐户。
任务是确保分配给用户帐户的升级许可证保持相同的功能。换句话说,如果某个服务计划在旧许可证中被禁用,那么它也应该在新许可证中被禁用。
AssignedLicenses属性存储用户帐户的许可证信息。为许可证保留的信息包括一组残疾人服务计划。例如,此输出显示 Microsoft 365 E5 许可证存在四个已禁用的服务计划。
$User = Get-MgUser -UserId [email protected] -Property AssignedLicenses
$User.Assignedlicenses | fl
DisabledPlans : {0d0c0d31-fae7-41f2-b909-eaf4d7f26dba, 0898bdbb-73b0-471a-81e5-20f1fe4dd66e, 8c7d2df8-86f0-4902-b2ed-a0458298f3b3, 7547a3fe-08ee-4ccb-b430-5077c5041653…}
SkuId : 06ebc4ee-1bb5-47dd-8120-11324bc54e06
记住产品和服务计划 GUID 并不是一件容易的事。您可以下载 CSV 文件,其中包含有关产品和服务计划的 GUID 以及关联名称的信息。 Microsoft 会定期刷新 CSV 文件,并且可以将 CSV 中的信息读取到数组中,以便可以在 PowerShell 脚本中访问数据。
您可以采用一组已禁用的服务计划并在分配新产品许可证时使用它。如果新许可证支持与旧许可证相同的服务计划,这将起作用。不幸的是,事实并非如此。例如,针对待办事项、表单和 Exchange Online 等应用程序存在不同版本的服务计划。为了确保一组已禁用的服务计划延续到新许可证,您必须计算出旧许可证中已禁用计划的等效值,并在分配新许可证时使用这些值。
构建用于切换 Microsoft 365 许可证的脚本
为了弄清楚切换用户帐户许可证所需的步骤,我决定编写一个脚本来将帐户从 Office 365 E3 许可证升级到 Microsoft 365 许可证。代码:
- 检索租户的订阅集(购买的产品)。
- 导入Microsoft 发布的产品和服务计划信息。
- 为租户和服务计划中使用的产品构建哈希表。这些哈希表用于快速查找,以将 GUID 解析为产品和服务计划名称。
- 在新旧许可证中构建服务计划数组,并使用此数据找出匹配的服务计划 GUID,以确保禁用的功能得以延续。输出是一个数组,脚本可以检查旧许可证中是否有已禁用的服务计划,以找出分配新许可证时要使用的正确值。该脚本对数组进行了进一步更改以添加 Kaizala 条目,因为两个许可证(KAIZALA_O365_P3 和 KAIZALA_STANDALONE)中的服务计划名称完全不同。
- 查找具有 Office 365 E3 许可证的用户帐户集。
- 构建帐户和禁用服务计划信息的列表。列表中的条目如下所示:
UserId : 96155a51-6885-4c8f-a8b6-e1614af08675
DisplayName : John James
SkuId : 6fd2c87f-b296-42f0-b197-1e91e994b900
DisabledPlans : {aebd3021-9f8f-4bf8-bbe3-0ed2f4f047a1, 7547a3fe-08ee-4ccb-b430-5077c5041653}
- 循环遍历列表。对于每个帐户,找出新许可证的禁用服务计划集,然后运行 Set-MgUserLicense cmdlet 将新许可证添加到帐户。如果许可证分配成功,单独的 Set-MgUserLicense 命令将删除旧许可证。尽管 Exchange Online 等应用程序支持“许可证堆叠”,但只有在确定有替换许可证时才删除许可证会更安全。以下是添加新许可证和删除旧许可证的代码。您可以看到禁用的服务计划集作为数组传递到 DisabledPlans 参数中:
$Status = Set-MgUserLicense -UserId $User.UserId -AddLicenses @{SkuId = $NewSKU; DisabledPlans = $DisabledServicePlansToUse} `
-RemoveLicenses @() -ErrorAction SilentlyContinue
If (!($Status)) {
Write-Host "Error assigning license - please check availability" -ForegroundColor Red
} Else {
Write-Host ("{0} license assigned to account {1}" -f ($TenantSkuHash[$NewSKU]), $User.DisplayName )
# Now to remove the old license
$Status = Set-MgUserLicense -UserId $User.UserId -AddLicenses @() -RemoveLicenses $OriginalSku -ErrorAction SilentlyContinue
If ($Status) {
Write-Host ("{0} license removed from account {1}" -f ($TenantSkuHash[$OriginalSKU]), $User.DisplayName )
}
}
您可以从 GitHub 下载该脚本。与往常一样,需要注意的是,尽管代码可以工作,但它还不能用于生产。需要进行一些额外的测试,可能还需要进行一些开发,以确保代码安全并使其可以在您的租户中使用。例如,考虑在继续分配许可证之前添加检查以确保许可证可用。但代码是简单的 PowerShell,应该很容易理解。
解决方案的多种途径
使用 PowerShell 自动化 Microsoft 365 中的管理活动的优势在于其灵活性和提供的控制程度。当有现成的软件可用时,没有理由总是选择 PowerShell。基于组的许可可能会处理您将遇到的许多许可证分配场景。但是,如果基于组的许可无法满足您的要求,那么很高兴知道总有 PowerShell。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag