[玩转系统] Microsoft 强制从 Azure AD Cmdlet 迁移到许可证管理
作者:精品下载站 日期:2024-12-14 04:03:52 浏览:13 分类:玩电脑
Microsoft 强制从 Azure AD Cmdlet 迁移到许可证管理
部分 Cmdlet 将于 2022 年停止工作
有时,即使在科技领域,幸运的机缘也会爆发。在我关于使用 Microsoft Graph 管理 Office 365 租户(在线提供)的 TEC 2021 会议上讨论 Microsoft Graph PowerShell SDK 时,情况就是如此。组织团队提前录制了 TEC 会议,以确保会议顺利进行,因此我无法使用当 Microsoft 宣布用于许可证管理的 Azure AD cmdlet 将在 2022 年 6 月 30 日停止工作时落在我腿上的示例。( 2022 年 3 月 15 日更新:Microsoft 已将停用日期推迟至 2022 年 8 月 26 日)。
这是 Microsoft 在 6 月份就 Azure AD Graph 的未来进行的预告的后续内容。简而言之,Azure AD Graph 是一个独立于 Microsoft Graph 的旧组件,即将停用。依赖于 Azure AD Graph 的 Azure AD 和 Microsoft Online Services 模块将于 2022 年进入不受支持状态。模块中的大多数 cmdlet 将继续工作,但许可证管理 cmdlet 将在 2022 年 6 月 30 日停止返回数据,因为 Microsoft迁移到新的许可证管理平台。
更新:Microsoft 已将 Azure AD 和 MSOL 模块的弃用日期推迟到 2022 年底。
显然,弃用对人们用来管理 Azure AD 不同方面的许多脚本产生了连锁反应,因此迫切需要在许可证管理 cmdlet 停止工作之前找到替代方案。 Microsoft 的指导是使用 Microsoft Graph PowerShell SDK 中的 allocateLicense Graph API 或 Set-MgUserLicense cmdlet。
升级到 Microsoft Graph PowerShell SDK
将 Azure AD cmdlet 换成 SDK cmdlet 有多困难?从表面上看,更换应该很简单,但通常情况下,这种感觉会持续大约五分钟。至少,这是我在升级脚本以从多个帐户的 Office 365 SKU(产品)中删除单个服务计划时发现的。该脚本使用 Azure AD 调用来处理许可证信息,因此它是受明年 6 月即将到来的截止日期影响的脚本类型的一个很好的示例。
我遇到的第一个问题是 SDK cmdlet 的文档。据我了解,微软从代码中生成了大部分文档,这解释了一些奇怪的措辞和文本完全不理解的性质。自然地,我痛苦地呻吟着,经过一番探索,发现了一些有用的提示,为我指明了正确的方向。
升级步骤
Microsoft Graph PowerShell SDK 支持委派和仅应用程序身份验证。在此示例中,我们将使用委派访问从 Azure AD 获取访问令牌,主要是因为这是基于 Azure AD 版本的脚本中发生的情况。概括地说,以下是我升级代码所采取的步骤:
连接到图表。 Connect-MgGraph cmdlet 连接到图表。连接请求可以指定与数据交互所需的权限。例如,此连接请求读取和写入目录信息的权限。
Connect-MgGraph -Scopes "User.ReadWrite.All","Directory.ReadWrite.All"
选择 Beta 配置文件。图形 API 有不同的版本(通常,V1.0 用于完整生产,Beta 用于开发)。仅当您选择 Beta 配置文件时,才可以使用 Get-MgUser cmdlet 获取用户帐户的许可证管理信息。此代码检查加载的配置文件,如果未设置则选择 Beta。
$Profile = (Get-MgProfile).Name
If ($Profile -ne "beta") { Select-MgProfile Beta }
获取租户中的产品许可证 (SKU)。该脚本允许管理员选择要从 SKU(例如 Office 365 E3)中删除的单个服务计划(例如 Forms、Whiteboard 或 Planner)。为了允许管理员进行选择,我们使用 Get-MgSubscribedSku cmdlet 获取租户中可用的 SKU 列表。
[array]$Skus = (Get-MgSubscribedSku)
然后,我们可以使用 SKU 信息向管理员呈现 SKU 菜单和服务计划,供他们选择要删除的服务计划。结果是选定的 SKU 和选定的服务计划,两者均标识为 GUID。
选择要处理的用户帐户。 Get-MgUser cmdlet 是选择一组 Azure AD 帐户进行处理的好方法。例如,要查找分配了特定 SKU 的所有帐户,您可以使用如下命令:
[array]$Users = Get-MgUser -Filter "assignedLicenses/any(x:x/skuId eq $SelectedSkuId)" -all
然而,该脚本使用Get-ExoMailbox,因为它的过滤功能非常出色。重要的是要有一组帐户 GUID 或用户主体名称,以在代码更新许可证信息时用作输入。 Get-ExoMailbox可以提供这些信息,所以我没有升级这部分代码。
处理帐户的许可证信息。该脚本循环遍历选定的帐户集,以检索当前许可证信息(使用 Get-MgUser),然后构建一个许可证对象 (MicrosoftGraphAssignedLicense),其中包含有关已提供的服务计划的信息已禁用该帐户以及我们现在要删除的服务计划。填充许可证对象后,我们调用Set-MgUserLicense来应用更新。
$ExistingDisabledPlans = $Null
ForEach ($S in $User.AssignedLicenses) { # Check for existing disabled licenses
If ($S.SkuId -eq $SelectedSkuId) {
$ExistingDisabledPlans = $S.DisabledPlans }
}
$ExistingDisabledPlans += $ServicePlanId # Add the plan we want to remove to the set of disabled plans
$LicenseToRemove = New-Object -TypeName Microsoft.Graph.PowerShell.Models.MicrosoftGraphAssignedLicense
$LicenseToRemove.SkuId = $SelectedSkuId
$LicenseToRemove.DisabledPlans = $ExistingDisabledPlans
$Status = Set-MgUserLicense -UserId $User.id -AddLicenses $LicenseToRemove -RemoveLicenses @()
}
我是第一个说 Set-MgUserLicense 的语法有点奇怪的人。鉴于将新 SKU 添加到帐户的语法为:
$User = Get-MgUser -UserId [email protected]
$NewSkuId ="8c4ce438-32a7-4ac5-91a6-e22ae08d9c8b"
Set-MgUserLicense -UserId $User.id -AddLicenses @{SkuId = $NewSkuId} -RemoveLicenses @()
我希望使用带有 RemoveLicenses 参数的许可证对象,而不是 AddLicenses,但这不是我希望通过在 RemoveLicenses 中传递信息来更新许可证对象的方式 参数而不是 AddLicenses,但这不是事情的工作方式。将新 SKU 添加到帐户将启用该 SKU 中包含的所有服务计划。在这种情况下,我们传递更新的许可证信息来告诉 Graph 禁用指定 SKU 中的指定服务计划。如果文档在这个主题上更清晰的话那就太好了。
请注意,为了使 cmdlet 满意,必须将空白数组传递给 RemoveLicenses。即使该参数为空,该参数也需要一个值,并且如果发现没有传递任何内容,则会反对。
从帐户中删除许可证
要从帐户中删除一个或多个产品许可证 (SKU),流程为:
- 创建要删除的产品许可证的数组。您可以一次删除多个产品许可证。该数组包含标识要删除的产品 SKU 的 GUID。
- 运行Set-MgUserLicense并将数组作为RemoveLicenses参数传递。这次,我们将一个空数组传递给 AddLicenses 参数来创建 cmdlet 内容。此示例从帐户中删除两个产品:
[array]$SkuToRemove = "1f2f344a-700d-42c9-9427-5cea1d5d7ba6", "4016f256-b063-4864-816e-d818aad600c9"
Set-MgUserLicense -UserId $User.id -RemoveLicenses $SkuToRemove -AddLicenses @()
验证服务计划删除
为了测试一切是否正常,我使用脚本从一堆 Office 365 E3 帐户中删除了 MyAnalytics 服务计划(微软将其重命名为 Viva Insights)。更新帐户的许可证分配一切都很顺利。您可以使用 PowerShell 或通过 Microsoft 365 管理中心查看用户信息来验证分配(图 1)。
升级需要多长时间
我确信人们会担心在 6 月 30 日落锤之前升级 PowerShell 脚本所需的时间。存在几个变数,包括:
- 开发人员熟悉 Microsoft Graph PowerShell SDK。
- Microsoft 改进 SDK 及其文档的速度有多快。
- 现有脚本的复杂性以及需要替换的 Azure AD 或 Microsoft Online Services 许可证管理 cmdlet 的数量。
- 脚本运行的环境(例如使用的身份验证方法)。
距离旧的 cmdlet 停止工作只剩下九个多月的时间了。租户中受影响的脚本数量可能很少,您不需要从头开始重写所有内容。也就是说,除非您创建了自己的许可证管理解决方案。如果是这样的话,你有一些工作要做。如果不是,更新大多数脚本应该只需几天而不是几周的时间。
在模块弃用之前探索和发现
您可以从 GitHub 获取我的脚本的副本。提醒一下,这是为了探索和演示原理而编写的代码,而不是作为生产质量的解决方案。使用代码通过 Microsoft Graph PowerShell SDK 学习、探索许可证管理并与之交互。随着时间的推移,使用 SDK 将会变得更加容易。至少,如果不这样做,当弃用发生时,微软可能会有一些不满意的客户。是时候开始编码了。
- 上一篇:[精彩网文] 致富的第一步
- 下一篇:[精彩网文] 10 个让精神更坚强的习惯
猜你还喜欢
- 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