2012-03-27 29 views

cevap

55

memberOf (AD içinde) distinguishedNames listesi olarak saklanır. Filtreniz gibi bir şey olması gerekir: Henüz ayırt edici adı yoksa

(&(objectCategory=user)(memberOf=cn=MyCustomGroup,ou=ouOfGroup,dc=subdomain,dc=domain,dc=com)) 

, sizinle arayabilmek:

(&(objectCategory=group)(cn=myCustomGroup)) 

ve niteliğini distinguishedName dönün. Durum önemli olabilir.

+1

ou = ouOfGroup nedir? –

+6

Genellikle, Active Directory'de, yapıyı içeren bir dizi Organizasyon Birimi vardır. Gruplar için varsayılan kök OU Gruplardır. Muhtemelen cn = MyCustomGroup, ou = Gruplar, dc = subdomain, dc = domain, dc = com sizin için çalışacaktır. Eğer grubunuz için bir LDAP araması yapmamanızı öneririm (& (objectCategory = group) (cn = MyCustomGroup)) ve sonuç kümesindeki distinguishedName özniteliğini içerir. Bu, diğer sorgunuzda kullanmak için hangi dizgiyi kullanacağınızı tam olarak söyleyecektir – Kodra

+0

Ben söylediklerini yaptım ama aşağıdakileri kullanarak hiçbir sonuç aldım: (& (objectCategory = user) (memberOf = cn = SingleSignOn, ou = Groups, dc = tis, dc = örn., dc = ddd, DC = com)) –

9

Active Directory kullanıcıları için, bunu yapmak için alternatif bir yol - tüm gruplarınızın OU=Groups,DC=CorpDir,DC=QA,DC=CorpName - sorgulandığında (&(objectCategory=group)(CN=GroupCN)) sorgusunu kullanmasıdır. Bu 1500'den az üye ile tüm gruplar için iyi çalışacaktır. Büyük bir AD grubunun tüm üyelerini listelemek isterseniz, aynı sorgu işe yarayacaktır, ancak tüm üyeleri, bir seferde 1500 kayıtları almak için ranged retrieval'u kullanmanız gerekir.

Aralıklı geri alma işlemlerini gerçekleştirmenin anahtarı, bu sözdizimini kullanarak özniteliklerdeki aralığı belirtmektir: özniteliği; aralık = düşük yüksek. Yani, bir AD Group'un tüm üyelerini 3000 üyeyle getirmek için, önce member;range=0-1499 özniteliğini soran yukarıdaki sorguyu çalıştırın, ardından member;range=1500-2999 özniteliği için.

+0

'(CN = GroupCN)' belirtmeyi unutmayın. Tüm grupları talep etmeye çalıştım ve bunu belirleyene kadar çalışmadı. Ayrıca aralığı belirttiğinizde yıldız işareti kullanabilirsiniz: 'üye; aralık = 1500- *' - aynı zamanda iyi çalışıyor. – Stalinko