2010-04-15 4 views
2

나는 검색을 할 때 내 OU에있는 * 캐릭터가 믿기가 어렵다. OU 그룹은 WorldWide Offices입니다.제목에 *가있는 OU에 대한 LDAP 쿼리. 방법?

주어진 그룹에있는 모든 사용자를 반환하는 루핑 쿼리가 있습니다. 그래서 그룹 이름을 입력하면 그룹이 다시 생깁니다. 그런 다음 그룹을 반복합니다.

이 구성원은 사용자 또는 다른 그룹입니다. 따라서 사용자가 아닌 경우 다시 반복하여 그룹인지 확인합니다. 그룹의 구성원은 항상 DistinguishedName이며, 검색해야합니다.

내가 CN = 스미스 \ 존으로 distinguishedName을 가진 현재 사용자가 있어요., OU = 노트북, OU는 = 사용자, OU = 런던 DC, OU = 영국, OU = 전 세계 지사, DC = OurDomain, DC = LOCAL.

은 내가 DirectorySearcher을하고있어 내 필터는 당신이 볼 수 있듯이, 나는 그것이 제목이 사용자를 찾을 수없는 이유입니다입니다 우리의 OU가 *했다는 사실을 생각

Searcher.Filter = "(&(&(objectClass=user)(!(objectClass=computers)))(distinguishedName=CN=Smith\, John a.,OU=Laptop,OU=Users,OU=London DC,OU=UK,OU=*Worldwide Offices*,DC=OurDomain,DC=LOCAL)) 

입니다. * 안에 *가없는 다른 OU는 작동하는 것 같습니다. 그래서 내가 *가 문제라고 믿는 이유입니다.

OU의 이름을 바꾸는 것 외에 누가 문제를 해결할 수있는 방법을 알고 있습니까?

답변

2
Searcher.Filter = "(&(&(objectClass=user)(!(objectClass=computers)))(distinguishedName=CN=Smith\, John a.,OU=Laptop,OU=Users,OU=London DC,OU=UK,OU=\2aWorldwide Offices\2a,DC=OurDomain,DC=LOCAL)) 

*\2a로 이스케이프해야합니다 - MSDN "Search Filter Syntax"를 참조하십시오

을 다음과 같은 특수 문자의 리터럴로 검색 필터에 표시해야하는 경우, 그들은 에 의해 교체해야합니다 나열된 도망 시퀀스.

* => \2a 
(=> \28 
) => \29 
\ => \5c 
NUL => \00 
/=> \2f 

은 단순히 너무 일을해야 \으로 탈출 : 속성 유형은 몇 가지 문자열 유형 인 경우

Searcher.Filter = "(&(&(objectClass=user)(!(objectClass=computers)))(distinguishedName=CN=Smith\, John a.,OU=Laptop,OU=Users,OU=London DC,OU=UK,OU=\*Worldwide Offices\*,DC=OurDomain,DC=LOCAL)) 
2

는 와일드 카드는 작동합니다. (옥텟 문자열, 유니 코드 문자열). givenName, displayName과 같은 속성을 * agains 사용하면 와일드 카드가 사용됩니다. 하지만 고유 이름은 "고유 이름"유형이므로 서버에서 부분 문자열 일치를 설정하지 않아야합니다.

objectcategory, dn, distinguishedname에 대해 *를 사용하면 와일드 카드가 작동하지 않는 것을 볼 수 있습니다.

로직을 변경해야합니다.

관련 문제