[玩转系统] Microsoft Graph PowerShell SDK:用户和组操作
作者:精品下载站 日期:2024-12-14 04:07:38 浏览:14 分类:玩电脑
Microsoft Graph PowerShell SDK:用户和组操作
将常见任务移至图表
在本系列的第一部分中,我解释了 Microsoft Graph PowerShell SDK 如何通过用更熟悉的 PowerShell cmdlet 替换 API 调用来简化 Microsoft Graph API 的使用。我还演示了如何安装 SDK 并连接以运行您的第一个 cmdlet。
管理员需要执行的一些最常见的活动涉及用户和组管理。本文将深入介绍如何使用 SDK 执行常见的日常任务,以通过 Graph 管理用户和组。
管理 Microsoft 365 的一个地方(有点......)
Microsoft Graph API 和 SDK 的最大优势之一是能够从一个位置管理 Microsoft 365 的许多方面。这看起来似乎是一件小事,但是当您开始自动化更复杂的场景时,跟踪必要的模块很麻烦,并且确保您的环境准备就绪需要时间。更不用说保持所有不同的模块更新。
一个奇怪的异常现象是缺乏管理 Exchange Online 的端点。虽然可以通过图表访问邮箱数据,但大多数 Exchange Online 管理任务(例如地址列表、邮件流规则)仍然需要通过 Exchange Online PowerShell 模块(最近更新到版本 3)来完成。 Exchange 有自己的内部 API,但尚未通过 Graph 提供。这意味着 SDK(或者实际上是 Graph API)不支持管理邮箱。
使用过滤和搜索
许多管理员的常见情况是根据部分信息返回数据。例如,查找特定部门内的所有用户。查询参数-filter用于根据已知条件过滤结果,并支持标准OData过滤运算符(等于、不等于、小于、等)和函数(startswith/endswith)。不同模块和端点对运算符的支持各不相同,因此在规划脚本时值得检查文档。
过滤器支持条件运算符(和/或)来编译更复杂的查询。例如,以下命令查询部门设置为“Marketing”的用户:
Get-MgUser -Filter "department eq 'Marketing'"
然后添加startswith来查找显示名称以“A”开头的营销用户:
Get-MgUser -Filter "(department eq 'Marketing') and (startswith(DisplayName,'A'))"
最后,我们添加另一个过滤器来排除电子邮件地址为“AllanD@M365x18562375.OnMicrosoft.com”的用户帐户。 请注意,notequals (ne) 过滤器是图形高级查询,因此一致性级别(最终 >) 和 countvariable 参数需要传递:
Get-MgUser -Filter "(department eq 'Marketing') and (startswith(DisplayName,'A')) and (Mail ne 'AllanD@M365x18562375.OnMicrosoft.com')" -ConsistencyLevel eventual -CountVariable count
在图 1 中,我们看到了这些过滤器的运行情况。
对于多值属性,过滤器需要通过添加 Lambda 运算符进行更多工作。 Lambda 运算符用于筛选这些属性,例如,在筛选特定许可证时,如本文中有关如何通过 PowerShell 在 Microsoft Graph API 查询中使用/任何筛选器中所述。
搜索是查找数据的另一种方法,当您的信息不太具体时非常有用。例如,要搜索显示名称中包含“Sales”一词的所有组,请使用以下语法。
Get-MgGroup -Search "Displayname:Sales" -ConsistencyLevel eventual
请注意,使用Search参数时,ConsistencyLevel参数必须设置为eventual,因为这是高级查询。 搜索不需要CountVariable参数。 search 和 filter 参数也可以一起使用,以进一步缩小结果范围,如图 2 所示。
使用 PowerShell SDK 进行过滤和搜索比手动构建 API 调用更容易。与任何 PowerShell SDK cmdlet 一样,添加 debug 参数会显示用于应用过滤器的 URI(图 3)。
Microsoft 平台迁移规划和整合
简化迁移规划,克服迁移挑战,更快地完成项目,同时最大限度地降低成本、风险和对用户的干扰。
报告
Graph API 是一个有用的工具,用于报告环境中的对象。例如,这篇关于如何使用适用于 PowerShell 的 Microsoft Graph SDK 创建 Microsoft 365 许可报告的文章展示了如何通过(相对)轻松和少量的脚本编写来构建报告并根据需要进行定制。当内置报告无法为您提供所需内容时,这可能会提供很大帮助。
另一项常见任务是报告 Microsoft 365 组。 Microsoft 365 组是许多工作负载的关键组件,作为管理员,区分哪些组连接到哪些组件并不容易。 Graph API 返回的 Group 对象包含大量信息来帮助实现此目的,通过将其与 SDK 中的其他 cmdlet 结合使用,构建这些定制报告的过程要容易得多。
例如,以下代码首先返回组织中的所有统一组(使用对groupTypes属性进行过滤),然后使用Get-MgGroupDrive cmdlet 获取与文档库相关的组。此数据与组的其他一些详细信息一起存储在 $Report 变量中,可以根据需要导出。
##Return all Unified Groups
[array]$Groups = Get-MgGroup -Filter "groupTypes/any(x:x eq 'Unified')" -All
##Create Report Array
$Report = @()
##Iterate each Group to retrieve the Drive URL and append to the Report
Foreach($Group in $Groups){
$Drive = Get-MgGroupDrive -GroupId $Group.id
$DriveDetails = [PSCustomObject]@{
GroupID = $Group.id
GroupName = $Group.displayname
Email = $Group.mail
URL = $Drive.webURL
}
$Report += $DriveDetails
}
此快速报告(图 4 中所示的输出)显示了无需太多努力即可检索所需信息是多么容易。
批量管理
通过 SDK 定位和报告用户和组很好,但管理 Microsoft 365 环境的很大一部分是更新和创建新对象。许可再次是一个很好的示例,如这篇关于使用 Microsoft Graph PowerShell SDK 对 Azure AD 帐户进行 Microsoft 365 许可证管理的文章中所述。
另一个常见用例是批量创建对象,例如批量用户创建。这里的一个典型场景是通过从 HR 数据库中提取的 CSV 文件来配置用户。通常,我们会配置用户并添加许可证,在本例中,我们将它们添加到 Azure AD 许可组。
使用图 5 中所示的 CSV 文件,下面的脚本使用 firstname.lastname@domain.com 格式配置用户,设置临时密码,并将用户添加到许可组:
##Retrieve the Licensing Group
$LicenseGroup = Get-MgGroup -Filter "Displayname eq 'M365-E3-License'"
##Import the CSV
$csv = Import-Csv C:\temp\NewStaff.csv
##Set the Domain Suffix
$DomainSuffix = "M365x18562375.onmicrosoft.com"
##Loop through each user
foreach($user in $csv){
$PasswordProfile = @{
Password = $user.'Temporary Password'
}
##Provision the user
$UserObject = New-MgUser -DisplayName "$($user.'first name') $($user.surname)" -PasswordProfile $PasswordProfile -AccountEnabled -MailNickname "$($user.'first name').$($user.surname)" -UserPrincipalName "$($user.'first name').$($user.surname)@$DomainSuffix"
##Add the user to the license group
New-MgGroupMember -GroupId $LicenseGroup.id -DirectoryObjectId $UserObject.id
}
概括
在本文中,我研究了一些常见场景,其中 Microsoft Graph PowerShell SDK 可以帮助租户管理员自动化常见流程。对于已经使用 PowerShell 管理租户一段时间的人来说,这并不是什么新鲜事,尽管在一个模块中提供所有可用功能有其优点。一旦掌握了基础知识,从其他模块改编代码就不应该是太大的挑战。在本系列的下一部分中,当我们深入研究与 Teams 和 Exchange 等各个服务的交互并探索使用 Graph 的一些有趣优势时,事情会变得更加复杂。
Active Directory 的网络安全风险管理
了解如何通过这些网络安全风险管理解决方案预防 AD 攻击并从中恢复。
猜你还喜欢
- 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