2016-04-15 3 views
0

識別名から、LDAPを使用してActive Directoryユーザーレコードを取得しようとしています。ここでは、私が送信しているクエリです...ユーザーを返すLDAPクエリ

(&(objectCategory=person)(objectClass=user)(CN=George Hutchins,OU=Contractors,DC=MYCO,DC=LOCAL)) 

しかし、これは結果を返しません。私が使用している場合は

...

(&(objectCategory=person)(objectClass=user)(CN=George Hutchins)) 

私はレコードが返され得ます。私はちょうど後者のクエリを使用しますが、ジョージハッチンズが2つある場合は、私が探しているものの代わりに2つのレコードを取得します。

識別名(CN = George Hutchins、OU = Contractors、DC = MYCO、DC = LOCAL)で正確なユーザーを取得する方法はありますか? Btw、私はActive Directoryのグループレコード(メンバープロパティ)からそれを引っ張ったので、この文字列が正しいことを知っています。

+0

George Hutchensが2つあり、どちらも契約者であれば、これはあなたを救うことはできません。エントリは、DITの位置に関係なく一意であることを確認する必要があります。つまり、UID、電子メール、「スクリーン名」など、検索のためにユーザーに固有の何かを使用することを意味します。 – EJP

答えて

1

完全に識別された名前は常にLDAP内で一意になります。

似たように単純なクエリ:

(&(objectCategory=person)(objectClass=user)) 

とに検索ベースを設定:

(CN=George Hutchins,OU=Contractors,DC=MYCO,DC=LOCAL) 

の検索範囲を持つ:Search Requestは動作するはずです、あなたの内BASE (0)

-jim

1

あなたは、具体的クエリdistinguishedName属性を使用できます。

(distinguishedName=CN=George Hutchins,OU=Contractors,DC=MYCO,DC=LOCAL)

あなたの元のクエリが機能しなかった理由は、このため一部である:(CN=George Hutchins,OU=Contractors,DC=MYCO,DC=LOCAL)。 ADが返すように要求するものは、CN属性の値がGeorge Hutchins,OU=Contractors,DC=MYCO,DC=LOCALのLDAPオブジェクトです。ただし、彼のためのCNGeorge Hutchinsに過ぎません。

関連する問題