2009-06-11 88 views
2

使用Active Directory時,我試圖找到用戶經理的SamAccountName和電子郵件。在Active Directory中查找用戶的經理記錄

我通過搜索在AD中找到登錄用戶,其中sAMAccountName = Domain \ Account。然後,我檢索管理器屬性,它看起來像這樣,例如:

CN=Doe\, Jane E.,OU=Employees,OU=Users,OU=Detroit,OU=United States,DC=na,DC=gmc,DC=gmc,DC=com" 

我如何使用這個推測鍵找到這個人的用戶記錄?我會匹配什麼領域?

回答

2

如果我沒記錯,那是他們的專有名稱,這意味着你可以使用它作爲直接引用他們的個人資料

LDAP://CN=Doe, Jane E.,OU=Employees,OU=Users,OU=Detroit,OU=United States,DC=na,DC=gmc,DC=gmc,DC=com 

我也覺得如果配置文件存在,它會返回該名稱。如果它已被刪除,那麼我相信它運行某種類型的GUID(基於內存 - 這可能是不正確的)

+0

從那裏,我如何直接得到使用這個解決方案的電子郵件地址,我在我的問題中引用這篇文章http://stackoverflow.com/questions/11897812/query-active-directory-to-get-the-email-財產的-A-傑出的名稱,directl – dotnetnewb 2012-08-10 09:02:18

1

經理的條目是經理的綁定字符串。您可以將其反饋到活動目錄的請求中,方法是將其綁定到將返回管理器信息的對象。

1

(這是一箇舊的帖子,但我認爲可能對社區中的其他人有用)

您可以使用字符串剝離並發現它是這樣的:

REPLACE(SUBSTRING(manager, 4, CHARINDEX('OU=', manager)-5), '\', '')

全部工作查詢(只是改變DOMAIN你自己):

SELECT Top 901 manager, REPLACE(SUBSTRING(manager, 4, CHARINDEX('OU=', 
manager)-5), '\', '') 
FROM OPENQUERY(ADSI, 'SELECT manager FROM ''LDAP://DC=DOMAIN,DC=local'' 
    WHERE objectCategory = ''Person'' AND objectClass= ''user'' 
    AND userprincipalname = ''*'' AND mail = ''*'' AND SN = ''*'' ') 
相關問題