Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 从Active Directory用户对象检索RDN_Powershell_Active Directory_Powershell 2.0 - Fatal编程技术网

Powershell 从Active Directory用户对象检索RDN

Powershell 从Active Directory用户对象检索RDN,powershell,active-directory,powershell-2.0,Powershell,Active Directory,Powershell 2.0,是否可以在属性完整的情况下检索Active Directory中用户对象的RDN 我对此做了大量阅读,发现AD用户对象将RDN存储在一个名为“name”的属性中。假设name(rdn)属性的值应该类似于name=“cn=Smith,Joe”。cn属性是应该返回的内容的一部分。但是,每当我检索对象的name属性时,“cn=”似乎总是丢失。比如说 $foo = get-aduser -filter 'Name -like "Smith, Joe"' $foo.name 将返回“Smith,Joe”

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

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

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


将返回
“Smith,Joe”
而不是
“cn=Smith,Joe”
。是否有办法查询并获取完整的RDN以返回?

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

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

因此,您可以使用:

"CN=$((get-aduser 'Smith, Joe').Name)"
第二步做以下实验:
在OU中创建一个名为“ManAngement”的用户您有以下DN
CN=MAnagement,OU=MyOU,…
现在尝试在同一OU中创建一个名为“ManAngement”的OU。它应该创建一个具有以下DN
OU=MAnagement,OU=MyOU,…
的对象,但您收到一个错误。这个错误使我相信,Active Directory将“MangeEngess”视为RDN,而不是像其他目录一样“Cn= MangeGeMeung. 另一种方法是获取对象的完整DN,拆分DN,并显示结果数组中的第一个元素,该元素将是RDN,CN=或其他依赖于对象的元素

$((foo.distinguishedname).split(","))[0]
$current.Substring($current.IndexOf('OU='))

是否有任何原因
“CN=${foo.name}”
不能满足您的需要?用户对象的RDN总是以
CN=
开头。