2009-06-11 11 views
2

Active Directoryを使用して、ユーザーのマネージャーのSamAccountNameと電子メールを検索しようとしています。Active Directoryでユーザーのマネージャーレコードを検索する

sAMAccountName = Domain \ Accountの検索で、ADにログオンしているユーザーが見つかりました。私は、例えば、次のようになりますマネージャーのプロパティを取得:

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-特有の特性の名前 – dotnetnewb

1

マネージャのエントリは、マネージャのバインド文字列です。マネージャの情報を返すオブジェクトにバインドして、アクティブディレクトリへの要求に戻すことができます。

1

(これは以前の投稿ですが、

あなたはストリッピング文字列を使用して、このようにそれを見つけることができます。

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

全作業クエリ(ちょうどあなた自身にドメインを変更):

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 = ''*'' ') 
関連する問題