2009-06-11 8 views
2

En utilisant Active Directory, j'essaie de trouver le SamAccountName et l'adresse électronique du gestionnaire de l'utilisateur.Recherche d'un enregistrement de gestionnaire d'utilisateur dans Active Directory

Je trouve l'utilisateur connecté dans l'AD par une recherche où sAMAccountName = Domain \ Account. Je puis récupérer la propriété du gestionnaire, qui ressemble à ceci, par exemple:

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

Comment puis-je utiliser cette clé pour trouver le présumé enregistrement de l'utilisateur pour cette personne? Dans quel domaine devrais-je correspondre?

Répondre

2

Si je me souviens bien, c'est un nom distinctif, ce qui signifie que vous pouvez l'utiliser comme référence directe à leur profil

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

Je pense aussi qu'il retournera ce nom si le profil existe. Si elle a été supprimée alors je crois qu'elle exécute un GUID de quelque sorte (basé sur la mémoire - cela peut être incorrect)

+0

De là, comment obtenir directement l'adresse e-mail en utilisant cette solution, je référence ce post dans ma question http://stackoverflow.com/questions/11897812/query-active-directory-to-get-the-email- propriété-d'-un-nom-distingué-directl – dotnetnewb

1

L'entrée pour le gestionnaire est la chaîne de liaison du gestionnaire. Vous pouvez le réinjecter dans une demande de répertoire actif en le liant à un objet qui renverra les informations du gestionnaire.

1

(Ceci est un post de l'ancien temps, mais je pensais que pourrait être utile pour les autres dans la communauté)

Vous pouvez utiliser la chaîne de décapage et de trouver comme ceci:

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

requête de travail complet (il suffit de changer DOMAIN votre propre):

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 = ''*'' ')