[玩转系统] 如何通过 PowerShell 使用 Entra ID 目录扩展
作者:精品下载站 日期:2024-12-14 04:11:43 浏览:15 分类:玩电脑
如何通过 PowerShell 使用 Entra ID 目录扩展
用于自定义 Entra ID 对象存储数据的目录扩展
如果您使用过 PowerShell 来处理 Exchange 邮箱,您可能了解 15 个单值自定义属性和 5 个多值自定义属性。组织可以在选择存储有关邮箱、通讯组列表和其他启用邮件的对象的信息时使用自定义属性。 Entra ID 将邮箱的自定义属性同步到拥有邮箱的用户帐户,并将值存储在 onPremisesExtensionAttributes 属性中。多值自定义属性不会从 Exchange 同步到 Entra ID。
Exchange 中自定义属性的使用多种多样,从存储有关对邮箱执行的某些处理的详细信息到有关邮箱所有者的静态详细信息(如徽章号码)。关键是微软并没有规定组织如何使用自定义属性,这些属性的存在是为了让 Exchange 对客户更有用。
目录扩展与 Entra ID 等效。与 Exchange 自定义属性不同,目录扩展特定于各个租户,并与 Entra ID 注册的应用程序相关联。
听起来很复杂?嗯,实践中更简单,所以让我们使用 Microsoft Graph PowerShell SDK 定义和使用一些目录扩展。不幸的是,微软当前的文档使用 Azure AD 模块,但在查阅目录扩展如何工作的基于图形的描述后,很容易切换到现已弃用的 cmdlet。
创建目录扩展
第一步是创建注册的 Entra ID 应用程序或选择现有的注册应用程序来保存扩展属性。我们可以使用 PowerShell 或通过 Entra ID 管理中心创建新应用程序。需要注意的重要信息是应用程序的标识符(ID 属性),因为创建目录扩展需要它。此代码创建一个新应用程序及其服务主体。
$ExtensionApp = New-MgApplication -DisplayName "Extension App to Store Properties for My Tenant"
New-MgServicePrincipal -AppId $ExtensionApp.AppId
有了应用程序,我们就可以添加一些目录扩展。此示例演示如何向应用程序添加两个目录扩展。第一个目录扩展(“CostCenter”)只能与用户对象一起使用,而另一个目录扩展(“Subsidiary”)可用于用户和组。其他支持的类型包括设备、应用程序和管理单元。目录扩展名中不能包含空格:
$ExtensionProperty1 = New-MgApplicationExtensionProperty -Name "CostCenter" -DataType "String" -TargetObjects "User" -ApplicationId $ExtensionApp.Id
$ExtensionProperty2 = New-MgApplicationExtensionProperty -Name "Subsidiary" -DataType "String" -TargetObjects "User", "Group" -ApplicationId $ExtensionApp.Id
与 PowerShell 变量不同,目录扩展是强类型的。在本例中,两者都被定义为字符串,并且最多可以存储 256 个字符。其他支持的数据类型包括二进制、布尔值、日期时间、整数和大整数。
要检查为注册应用定义的目录扩展集并查看扩展可用于哪些对象,请运行 Get-MgApplicationExtensionProperty cmdlet:
Get-MgApplicationExtensionProperty -ApplicationId $ExtensionApp.Id | Format-Table Name, DataType, TargetObjects
Name DataType TargetObjects
---- -------- -------------
extension_450c03488bae4eb98cc22699c0b46690_Subsidiary String {User, Group}
extension_450c03488bae4eb98cc22699c0b46690_CostCenter String {User}
该文档表示,“所有者”应用程序最多可以保存五个定义(如图 1 所示,文档的这方面可能不正确或过时),并且组织可以为每种资源类型支持最多 100 个目录扩展(例如用户)。
使用目录扩展
要将值写入目录扩展,我们创建一个哈希表来保存要更新的扩展的名称和要分配的值。在此示例中,我们使用刚刚定义的两个目录扩展名和要分配的值填充哈希表。您可以组合不同应用程序拥有的扩展程序。
$Properties = @{}
$Properties.Add('extension_450c03488bae4eb98cc22699c0b46690_CostCenter', "8ZW")
$Properties.Add('extension_450c03488bae4eb98cc22699c0b46690_Subsidiary', "Contoso U.S.A")
$UserId = (Get-MgUser -UserId [email protected]).Id
Update-MgUser -UserId $UserId -AdditionalProperties $Properties
要检索存储在目录扩展中的值,请在运行 Get-MgUser 时指定扩展名称:
$User = Get-MgUser -UserId $UserId -Property ` extension_450c03488bae4eb98cc22699c0b46690_CostCenter,
extension_450c03488bae4eb98cc22699c0b46690_Subsidiary
$User.AdditionalProperties | Format-List
Key : @odata.context
Value : https://graph.microsoft.com/v1.0/$metadata#users(extension_450c03488bae4eb98cc22699c0b46690_Subsidiary,extension_450c03488bae4eb98cc22699c0b46690_CostCenter)/$entity
Key : extension_450c03488bae4eb98cc22699c0b46690_CostCenter
Value : 8ZW
Key : extension_450c03488bae4eb98cc22699c0b46690_Subsidiary
Value : Contoso U.S.A
编写脚本时,通过查找 additionalProperties 属性中保存的数据,可以更轻松地检索目录扩展的值。例如:
$User.AdditionalProperties['extension_450c03488bae4eb98cc22699c0b46690_Subsidiary']
Contoso U.S.A
目录扩展名是可过滤的。这些示例演示如何使用过滤器查找目录扩展中具有特定值的所有用户帐户:
[array]$Users = Get-MgUser -Filter "extension_450c03488bae4eb98cc22699c0b46690_CostCenter eq '8ZW'"
[array]$Users = Get-MgUser -Filter "extension_450c03488bae4eb98cc22699c0b46690_SeniorityDate ge '1983-10-02T23:59:00'"
[array]$Users = Get-MgUser -Filter "extension_450c03488bae4eb98cc22699c0b46690_WorkRemote eq 'true'"
如上所述,Update-MgUser cmdlet 更新存储在目录扩展中的值。该规则的例外情况是当您想要将空值写入目录扩展时。 Update-MgUser cmdlet 目前无法执行此操作(无法处理 $Null 特殊变量是 Graph SDK 的缺点之一)。解决方法是传递包含目录扩展名称和 $Null 值的哈希表,并使用该表作为由 Invoke-MgGraphRequest cmdlet 运行的补丁请求的输入:
$PropertyNull = @{}
$PropertyNull.add("extension_450c03488bae4eb98cc22699c0b46690_Subsidiary", $Null)
Invoke-MgGraphRequest -Method PATCH -Uri "https://graph.microsoft.com/v1.0/users/[email protected]" -Body $PropertyNull
删除目录扩展
会犯错误,有时需要删除目录扩展名。为此,首先找到扩展的标识符:
Get-MgApplicationExtensionProperty -ApplicationId $ExtensionApp.Id | Format-Table Id, Name
Id Name
-- ----
cad8d83d-eada-47c7-9bf4-5c9ef87beed9 extension_450c03488bae4eb98cc22699c0b46690_HiringManager
b4948d37-ce31-4214-b885-8b44f5fbefe3 extension_450c03488bae4eb98cc22699c0b46690_RetirementDate
6af6c7fe-a516-4b3b-ba28-b80d0b91bd9a extension_450c03488bae4eb98cc22699c0b46690_BadgeNumber
de02f69a-d599-4f68-9cb1-9a2b07e8c395 extension_450c03488bae4eb98cc22699c0b46690_LeaveAllowance
7ba15153-d8b6-4ffc-8265-edd8ede66cbf extension_450c03488bae4eb98cc22699c0b46690_Subsidiary
5ce0873c-dc0f-4df0-bdeb-a0db895d5c2b extension_450c03488bae4eb98cc22699c0b46690_CostCenter
然后运行Remove-MgApplicationExtensionProperty cmdlet 以删除目录扩展。在此示例中,我将删除存储子公司信息的目录扩展名。在删除目录扩展之前,cmdlet 不会提示确认。删除它会消除扩展中保存的其他 Entra ID 对象的任何数据,因此请务必在运行 cmdlet 之前继续操作。
Remove-MgApplicationExtensionProperty -ApplicationId $ExtensionApp.Id -ExtensionPropertyId 7ba15153-d8b6-4ffc-8265-edd8ede66cbf
可以重新创建同名的目录扩展。但是,新的目录扩展具有不同的标识符,并且不会恢复删除其他目录扩展时删除的数据。
值得考虑目录扩展
在将数据存储在自定义属性中时,Microsoft 租户有很多选择。 Exchange 自定义属性可供使用 Exchange Online 的每个租户使用和访问,但您只能使用 15 个属性。 Entra ID 目录扩展不依赖于任何其他应用程序,您可以定义更多扩展(最多达到前面提到的限制),并且它们支持更多对象类型(请参阅此比较以获取一些有用的背景信息)。您现在可能不需要使用目录扩展,但您永远不知道将来会发生什么。
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