在Active Directory中查找用户的经理记录

时间:2009-06-11 14:57:50

标签: active-directory adsi

使用Active Directory,我正在尝试查找用户管理员的SamAccountName和电子邮件。

我通过搜索在AD中找到登录用户,其中sAMAccountName = Domain \ Account。然后我检索manager属性,看起来像这样,例如:

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

如何使用此假定密钥查找此人的用户记录?我会在哪个领域匹配?

3 个答案:

答案 0 :(得分:2)

如果我没记错的话,那就是他们的专有名称,这意味着你可以用它作为他们个人资料的直接参考

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

我还认为如果配置文件存在,它将返回该名称。如果它已被删除,那么我相信它会运行某种GUID(基于内存 - 这可能是不正确的)

答案 1 :(得分:1)

管理员的条目是经理的绑定字符串。您可以通过将其绑定到将返回管理器信息的对象将其反馈到对活动目录的请求中。

答案 2 :(得分: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 = ''*'' ')