2017-06-16 3 views
0

Je tire une liste d'utilisateurs à partir d'Active Directory, mais je souhaite ignorer une unité organisationnelle spécifique nommée "ServiceAccounts". Je crois comprendre que la ligne suivante ne résoudra pas mon problème comme jokers ne fonctionnent pas avec DN:Comment ignorer une unité d'organisation (OU) spécifique tout en obtenant une liste d'utilisateurs à partir d'Active Directory

search.Filter = "(&(objectCategory=person)(objectClass=user)(!(distinguishedName=*ServiceAccounts*))(mail=*))"; 

Cette unité d'organisation contient une liste d'environ 150+ comptes de service que je ne ai pas besoin tout en générant une liste des employés. Ma seule question, comment ne pas obtenir des enregistrements d'une unité d'organisation spécifique?

Merci beaucoup!

Répondre

0

Dans LDAP en général, les recherches de sous-chaîne dans les valeurs DN ne sont pas autorisées.

Microsoft Active Directory spécifiquement the wildcard character cannot be used with Distinguished Name attributes (attributes of data type DN), such as the distinguishedName, memberOf, directReports, and managedBy attributes.

Et comme Microsoft Active Directory que supports specific Extensible Match règles, je ne crois pas que ce soit possible.

En outre, par défaut, le « ou » valeur n'est pas renseigné sur les entrées de l'utilisateur ou vous pourriez être en mesure d'utiliser:

(!(ou=ServiceAccounts)) 

dans le filtre.

Certains environnements de programmation semblent support a non-standard de syntaxe:

(&(objectClass=user)(!(distinguishedName:=%ServiceAccounts%))) 

Peut-être fournir plus d'informations sur votre quelqu'un structure arborescente pourrait fournir une solution.