2013-04-02 56 views
1

我有一個Active Directory根這樣的:LDAP可擴展匹配過濾。在OU文本模式排除羣體基地

dc=ooo,dc=yyy,dc=xx 
這個根目錄下

有幾個組織單位,如:

ou=Applications,dc=ooo,dc=yyy,dc=xx 
ou=PKI,ou=Applications,dc=ooo,dc=yyy,dc=xx 
ou=Servers,dc=ooo,dc=yyy,dc=xx 
ou=Location1,ou=Servers,dc=ooo,dc=yyy,dc=xx 
ou=Department1,dc=ooo,dc=yyy,dc=xx 
ou=Subdepartment1=ou=Department1,dc=ooo,dc=yyy,dc=xx 

我想獲取所有的「部門」,從而表示爲OU的節點,除了特定的OU和他們的孩子(基於OU術語),不代表部門。

例如在上述情況下,我想只抓取Department1及其子部分。但我想通過排除OU應用和它的孩子的作爲也OU服務器和它的子(基於不包括標準搜索)來實現這個...

我執行以下搜索:

scope: subtree 
search dn clause: dc=ooo,dc=yyy,dc=xx (beggining from the root) 
filter: (&(!(ObjectClass=person))(!(ou:dn:=Applications))(!(ou:dn:=Servers)) 

但問題是,它僅排除「應用程序」和「服務器」,但不是他們的孩子,所以它返回我:

ou=PKI,ou=Applications,dc=ooo,dc=yyy,dc=xx 
ou=Location1,ou=Servers,dc=ooo,dc=yyy,dc=xx 
ou=Department1,dc=ooo,dc=yyy,dc=xx 
ou=Subdepartment1=ou=Department1,dc=ooo,dc=yyy,dc=xx 

反正消除他們所有的兒童也?並最終只有

ou=Department1,dc=ooo,dc=yyy,dc=xx 
ou=Subdepartment1=ou=Department1,dc=ooo,dc=yyy,dc=xx 

返回??

回答