我正在尝试查找 Active Directory 用户属性列表,我可以使用这些属性进行自定义,而无需扩展架构。我们使用的是 2008R2 功能级别。
我使用 powershell 导出了所有属性的列表。但我不知道如何分辨哪些是我可以编辑的用户信息(例如 displayname、phone、employee-id)以及哪些是不应该手动编辑的 AD 数据(dn、accountexpires)。我可以从这个列表中看到一些明显的信息,例如 employee-id、extensionAttribute1-15。
Get-QADUser 'username' -IncludeAllProperties | Get-Member -MemberType Properties
我发现一些网站列出了所有属性,但没有一个区分用户信息和 AD 数据。
此 Microsoft 列表将属性划分为属性集:公共信息、用户登录等,但仍未将列表划分为用户信息和 AD 数据。它也不包含员工 ID 或扩展属性 1-15
问题:此 Active Directory 用户属性列表是否存在,我可以使用它们进行自定义?谢谢
编辑:附加信息:我们的开发人员希望将一些信息附加到新应用程序的所有用户帐户。他们想要附加的数据的第一个示例是员工 ID。此字段已存在于 AD 中。我并不反对扩展架构,我只是不想不必要地更改内容或重复已经存在的字段。如果我可以给他们一个列表,可能会有具有适当名称的字段可供我们使用。如果没有,那么我将扩展架构。
重新表述问题:我可以将哪些属性用于自己的目的(例如 displayname、phone、employee-id)?我应该保留哪些属性(dn、lastModifiedDate、accountexpires)?
答案1
简而言之,只有几个属性是专门用于用户帐户的装饰元数据,例如description
和info
。即使是extensionAttributeX
那些不是真正用于你的自定义。它们是 Exchange 架构扩展的一部分,如果您实际运行的是 Exchange,则应将其视为“保留”。
更好的问题是,您为什么要避免扩展架构?这样做本身并没有什么风险。如果您有一个在特定类上添加业务特定自定义元数据的有效用例,请想出一个合乎逻辑的属性名称并添加它。也许确保您的 ldif 文件在您首先提出的临时一次性 DC 上按预期工作。但最终,这是保证其他任何东西都不会踩到它或受其影响的唯一方法。
如果您因为政治问题而试图避免这种情况(您的团队不管理 AD,而 AD 团队反对模式变更),那么为了您的利益,您仍然应该为之奋斗,并为变更提出商业理由(假设您确实有一个良好的商业理由)。
如果您的需求只是暂时的,那么也许只需使用类似description
或info
知道您的用户管理团队可能会意外弄乱数据。但也有可能一些编写不佳的第三方软件有同样的想法并与您的想法相冲突。
您可能还想更新您的问题,提供有关您尝试添加的数据类型的更多详细信息。您可能已经使用过现有的属性,这些属性已经适合您的目的。
回应编辑:正如你所指出的,已经有一个员工ID属性。还有一个员工编号属性也是如此。但同样,问题的根本答案是,没有其他软件不使用的预先存在的可写属性的明确列表。执行您要执行的操作的最佳方法是打开域中用户的属性对话框,选择“属性”选项卡,将过滤器更改为并向Show only writable attributes
下滚动查找尚未包含任何数据但可能符合您的数据定义的内容。然后,谷歌搜索该特定属性名称以查看该属性的预期用途,并进行健全性检查以查看您在环境中使用的任何内容是否也使用它。
答案2
我使用信息属性作为自定义字段。它运行良好,无需更改架构。