1

是否可以在属性完整的情况下检索 Active Directory 中用户对象的 RDN。

我对此进行了大量阅读,发现一个 AD 用户对象将 RDN 存储在一个名为“name”的属性中。假设 name (rdn) 属性的值应该类似于 name = "cn=Smith, Joe"。cn 属性是应该返回的内容的一部分。但是,每当我检索对象的名称属性时,“cn=”似乎总是丢失。例如

$foo = get-aduser -filter 'Name -like "Smith, Joe"'

$foo.name

"Smith, Joe"不会返回"cn=Smith, Joe"。有没有办法查询并让完整的 RDN 返回?

4

3 回答 3

2

另一种方法是获取对象的完整 DN,拆分 DN,并显示结果数组中的第一个元素,这将是 RDN,CN= 或其他,取决于对象

$((foo.distinguishedname).split(","))[0]
于 2014-11-11T17:43:34.803 回答
1

不是真正的答案,而是信息:

首先,RDN 属性的 attributeId 由模式固定: 从 RDN 的角度来看,Active-Directory 继承自 X500 标准。也就是说你没有选择你想要创建RDN的属性(在其他LDAP目录中你可以)。在 Active-Directory 中,RDN 属性在类模式中由rDNAttID 给出,它指定 RDN 属性的 attributeId。如果您查看该类的架构,user它是CN.

所以你可以使用:

"CN=$((get-aduser 'Smith, Joe').Name)"

其次进行以下实验: 在 OU 中创建一个名为“Mananegement”的用户,您现在有以下CN=MAnagement,OU=MyOU,...DNOU=MAnagement,OU=MyOU,...一个错误。这个错误让我相信 Active-Directory 以某种方式将“Mananegement”视为 RDN,而不是像其他目录那样将“CN=Mananegement”视为。

于 2012-07-26T03:32:51.530 回答
0

$current.Substring($current.IndexOf('OU='))

于 2019-08-21T21:15:13.383 回答