2012-07-25 58 views
1

是否可以在Active Directory中檢索用戶對象的RDN並保持屬性不變。從Active Directory用戶對象中檢索RDN

我已經做了大量的閱讀,發現AD用戶對象將RDN存儲在名爲「name」的屬性中。據說名稱(rdn)屬性的值應該是類似於name =「cn = Smith,Joe」的值。 cn屬性是應該返回的部分。然而,無論何時我檢索一個對象的名稱屬性,「cn =」似乎總是缺失。例如

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

$foo.name

將返回"Smith, Joe""cn=Smith, Joe"。有沒有辦法查詢並獲取完整的RDN?

+0

任何原因'「CN = $ {foo.name}」'不符合您的需求?用戶對象的RDN始終以'CN ='開頭。 – ig0774 2012-07-26 00:31:26

回答

0

不是一個真正的答案,但信息:

首先RDN屬性的屬性ID是由固定的模式: 所述視RDN點主動目錄從X500標準繼承。也就是說,您不選擇要創建RDN的屬性(在其他LDAP目錄中可以)。在Active-Directory中,RDN屬性在類架構中由rDNAttID給出,它指定了RDN屬性的attributeId。如果您查看類user的模式,那麼這是CN

所以,你可以使用:

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

二做了以下實驗: OU中創建一個名爲「Mananegement」你有以下DN CN=MAnagement,OU=MyOU,...現在嘗試創建,在同一個OU用戶,一個名爲「Mananegement」的OU應該創建一個具有以下DN OU=MAnagement,OU=MyOU,...的對象,但會收到錯誤消息。這個錯誤讓我相信Active-Directory認爲'Mananegement'是RDN而不是'CN = Mananegement'與其他目錄一樣。

1

一種替代,是抓住該對象的完整DN,分裂DN,並顯示所得到的陣列中的第一個元素,這將是RDN,無論是CN =或以其它方式,對象依賴

$((foo.distinguishedname).split(","))[0] 
相關問題