[玩转系统] Azure AD + MSOnline 模块弃用
作者:精品下载站 日期:2024-12-14 05:33:18 浏览:13 分类:玩电脑
Azure AD + MSOnline 模块弃用
随着 MS Online 和 Azure AD 模块的弃用,是时候将以前的任务映射到新方法了。我们希望以下想法对您有所帮助。
你受到影响了吗?
Microsoft 将于 2024 年 3 月末弃用一些重要的 PowerShell 模块,其中包括针对该日期的 MS Online (MSOL) 和 Azure AD/预览模块。虽然微软几年前就宣布了这些变化,但这些模块的发展现在似乎即将正式结束。
如果您使用这些模块进行 IT 管理和迁移项目,这对您意味着什么?
这意味着是时候学习如何使用 Graph PowerShell 并找到一种将以前的任务映射到新方法的方法了。一些管理员已经适应了这一变化并且没有出现任何问题,而其他管理员则发现 Microsoft Graph PowerShell 模块是一个不太宽容的模块,并且是完成任务的障碍。在本文中,我们将解决这些挑战,查看这些更改将如何影响 PowerShell 用户的示例,并查看 Microsoft 有关此转换的帮助文档。
什么是贬义的?
- Azure AD/Azure AD 预览版
- 微软在线(MSOL 或 MSOnline)
弃用通知
作为大型变革的典型,微软花了一些时间逐步推动管理员做出改变并为未来做好准备。通知已经进行了近两年:
2022 年 6 月/2023 年 6 月/2023 年 9 月/2023 年 12 月
可能还有更多通知,但这只是一个需要审查的小样本。
迁移到图表
Microsoft 提供了资源来帮助迁移 cmdlet、脚本和应用程序:
- 迁移 Azure AD Graph(链接)
- 迁移应用程序(链接)
- 迁移步骤(链接)
兼容性检查器
使用此工具检查脚本的兼容性,可在 PowerShell 库中找到。
图 PowerShell 基础知识
如果您不熟悉使用 Graph,连接和准备的过程与其他 PowerShell 模块类似。
首先,安装 Microsoft Graph SDK PowerShell 模块:
Install-Module Microsoft.Graph
然后将模块导入 PowerShell:
Import-Module Microsoft.Graph
连接到图:这是一个非常简单的示例,因为图有一些细微差别,因为它在任务/权限方面更加精细。有关连接到 Graph、选择权限等的更多详细信息,请参阅本文。
Connect-MgGraph -Scopes 'Directory.ReadWrite.All'
现实世界的例子
在本节中,我们将回顾一些在旧模块中执行的一些任务的简短示例,以及现在如何在 Graph PowerShell 中执行这些任务。
微软在线
(1)列出某个租户下的所有用户
MSOnline服务模块:
(Get-MsolUser).Count
Microsoft Graph PS 模块:
(Get-MgUser -ALL).Count
顶部是包含 119 个用户的图表,底部的示例来自同样包含 119 个用户的 MS Online。
(2) 用一句话列出来宾或租户成员用户
MSOnline服务模块:
Get-MsolUser | Where-Object UserType -eq Member | Sort-Object DisplayName
MSOnline 输出:
现在,为了在 Graph 模块中执行相同的操作,我们执行过滤查找:
Get-MgUser -All -Filter "UserType eq 'Member'"
图形输出:
默认输出不同,因此需要根据需要的用户属性进行调整。
(3) 团体许可
许可也发生了巨大变化,之前的步骤现在需要在 Microsoft Graph 中执行。之前,我为此博客撰写了一篇关于此主题的文章,您可以在此处找到“使用 Microsoft Graph PowerShell 进行许可”。
(4) 用户认证方式
对 Microsoft 365 租户中的帐户进行身份验证可能需要一些额外的身份验证方法(也称为 MFA),这些方法可以进一步验证谁正在连接到该帐户。在 MSOnline 服务中,有一种方法可以设置强身份验证设置,但随着模块 Graph 的弃用,现在我们的工具已成为我们的工具。 Graph PowerShell 有一定的粒度,我们将在这里进行探讨。首先,MSOnline:
$st = New-Object -TypeName Microsoft.Online.Administration.StrongAuthenticationRequirement
$st.RelyingParty = "*"
$st.State = "Enabled"
$sta = @($st)
Set-MsolUser -UserPrincipalName [email protected] -StrongAuthenticationRequirements $sta
Graph 有许多 cmdlet,但请记住,以上内容现在不仅在方法(每个用户 MFA)而且在模块(MSOnline)方面都被视为遗留。我们可以通过 Graph PowerShell 对其进行调整。首先,查询用户的配置:
Get-MgUserAuthenticationMethod
-UserId [email protected] | Format-List
我们看到该用户确实配置了 MFA,并使用三种不同的方法进行验证。 Graph PowerShell 允许我们使用 Remove-MgUserAuthentication* cmdlet 删除现有方法,使用 New-MgUserAuthentication* cmdlet 添加新的身份验证方法,使用 Update 更新身份验证方法-MgUserAuthentication* cmdlet 或使用 Get-MgUserAuthentication* cmdlet 列出各个设置。虽然通常不建议按用户 MFA 配置,但如果用户有用户,或者身份验证方法根本不起作用,我们可能需要进行调整。
添加方法 - 电话验证:
在此示例中,我们为用户添加电话身份验证方法并将其定义为其手机号码:
$params = @{
phoneNumber = "+1 3125551212"
phoneType = "mobile"
}
New-MgUserAuthenticationPhoneMethod -UserId [email protected] -BodyParameter $params
更新方法:
在此示例中,我们需要使用相同的 $params 变量来定义新的电话号码,我们还需要现有的电话身份验证方法,因为我们可以定义多行,最后是更新 cmdlet:
$PhoneAuthID = (Get-MgUserAuthenticationPhoneMethod -UserId postmaster@ powershellgeek.com).Id
$params = @{
phoneNumber = "+1 3125551212"
phoneType = "mobile"
}
Update-MgUserAuthenticationPhoneMethod -UserId postmaster@ powershellgeek.com -BodyParameter $params -PhoneAuthenticationMethodId $PhoneAuthId
去除方法:
如果我们需要更新现有的电话身份验证方法(不能有两个相同类型)或者如果我们只是希望删除身份验证方法,我们可以使用 PowerShell 来执行此操作:
$PhoneAuthID = (Get-MgUserAuthenticationPhoneMethod -UserId [email protected]).Id
Remove-MgUserAuthenticationPhoneMethod -UserId [email protected] -PhoneAuthenticationMethodId $PhoneAuthID
Azure AD 示例
(1) 将用户添加到组中
在此示例中,PowerShell 通常用于将新用户添加到许可组或权限组,它需要读取 CSV 文件以获取要处理的用户列表,然后填充该组:
Azure AD 代码:
$CSV = Import-Csv .\MailboxesToAdd.txt
Foreach ($User in $CSV) {
$ID = $User.Alias
$UPN = $ID+'@mydomain.com'
$ObjectID = (Get-AzureADUser -ObjectId $UPN).ObjectID
Add-AzureADGroupMember -ObjectId a616b6a9-21ad-41f3-8204-f52e944d9df4 -RefObjectId $ObjectID
}
图表示例:
$CSV = Import-Csv .\MailboxesToAdd.txt
Foreach ($User in $CSV) {
$ID = $User.Alias
$UPN = $ID+'@mydomain.com'
$ObjectID = (Get-MgUser -UserId $UPN).Id
New-MgGroupMember -GroupId a616b6a9-21ad-41f3-8204-f52e944d9df4 -DirectoryObjectId $ObjectID
}
在此示例中,我们看到两个 cmdlet 发生了变化,从 Azure AD cmdlet 更改为 Graph 特定的 cmdlet。相当容易做到。请注意,在大多数情况下参数也会发生变化。
(2)查询所有用户详细信息
在此示例中,我们正在查询用户的属性列表,如果用户对象在租户之间移动,这些属性可用于文档记录、验证或可能用于存档。
Get-AzureADUser -Top 500 | Where-Object UserType -eq member | Sort-Object DisplayName | Select-Object UserPrincipalName, DisplayName, GivenName, Surname, Mail, MailNickName, Company, Country, Department, Title, Mobile, PostalCode, State, StreetAddress, TelephoneNumber, UsageLocation | Export-Csv -Path "c:\downloads\atlantix$Tenant-AzureAD-Export.csv" -NoTypeInformation
重叠
由于两个不同的模块同时被弃用,并且两者已经存在一些重叠,因此值得注意的是,Azure AD 和 MSOnline PowerShell 模块中的某些 cmdlet 可能最终会映射到 Graph PowerShell 模块中的单个 cmdlet。下面是一些例子:
Get-MgUser(图表)
Get-CorrespondingGraphCommand Get-AzureADUser
Get-CorrespondingGraphCommand Get-MsolUser
我们看到,在 Graph 中,来自不同模块的这两个 cmdlet 都使用 Get-MgUser 作为其后继者。
请注意,尽管有重叠,但它并不理想,因为并非所有参数和选项都相同,因此真正的转换需要时间和学习。
Get-MgGroupMember(图表)
另一个示例是租户中存在的组。过去,我们使用了一系列来自 MSOnline 和 AzureAD 的 cmdlet 来管理这些组。下面我们看到 Get cmdlet 最终指向同一个 Graph PowerShell cmdlet:
Get-CorrespondingGraphCommand Get-MsolGroupMember
Get-CorrespondingGraphCommand Get-AzureADGroupMember
我们看到生成的 cmdlet 是 Get-MgGroupMember:
未来
未来的好工具
当在 Graph 中查找相应的 cmdlet 时,我们有几种发现方法:
- 使用 Microsoft 的此页面。
- 使用这个漂亮的工具,它引用上一页并提取新的 cmdlet。
单个 cmdlet
将该工具与检查运行 Graph cmdlet 所需的 Graph 权限的功能相结合。以 Get-MsolUser cmdlet 为例,它是 MSOnline PowerShell 模块中的典型 cmdlet。使用 DependencySearch PowerShell 模块,我们可以拉取匹配的 cmdlet 并使用 Graph cmdlet 来拉取权限:
$NewCmdlet = (Get-CorrespondingGraphCommand Get-MSOLUser).GraphCommand
(Find-MgGraphCommand $NewCmdlet).Permissions
以下是这两个衬垫的输出的子集:
Get-MsolUser cmdlet 的完整权限列表示例
一个复杂的情况是,某些 cmdlet 具有大量相应的权限列表,用于授予对该 cmdlet 的访问权限。选择最少的权限,如果可以的话,从权限的读取版本开始。
整个脚本
翻译单个 cmdlet 是一回事,但当我们拥有可能需要执行相同翻译的整个脚本时,情况就完全不同了。使用相同的 DependencySearch 模块,我们可以分析脚本是否存在潜在问题。在下面的示例中,我们首先提取所有可用模块,然后对示例脚本“C:\Repository\ScriptToAnalyze.ps1”应用搜索功能。
$AvailableModule = @(Get-Module -ListAvailable)
Get-CodeDependency -scriptPath "C:\Repository\ScriptToAnalyze.ps1" -AvailableModules $AvailableModule
这两行的结果将输出需要替换为 Graph cmdlet 的 cmdlet:
结论——最后的话
Microsoft 已多次更改此更改的最终日期,我们不能指望这种情况会再次更改。现在是时候进行更改、学习如何使用 Graph 并从这些旧版 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