Нет, вы не можете использовать один-единственный запрос LDAP.
Фильтр (member=1)
не работает, потому что он просто пытается сопоставить недопустимый dn ('1'). Кстати, весь фильтр неверен, вам не нужно ни вкладывать условия, ни добавлять &
операторов для каждого. Однако вы все равно можете добавить (!(member=*))
, чтобы исключить группы, в которых нет ни одного участника. Итак, в вашей ситуации правильный фильтр должен выглядеть так:
(&(objectCategory=group)(objectClass=group)(proxyAddresses=*@domain.com)(!(member=*)))
Чтобы отфильтровать группы, состоящие только из одного члена, на первом этапе вам нужно будет найти группы, используя фильтр, указанный выше, затем перебрать каждую запись группы, прочитать атрибут члена, чтобы получить счет вручную, и исключить группы с более чем одним членом.
Вы также можете добавить настраиваемый атрибут к групповым объектам, чтобы вы могли хранить в нем количество участников и, наконец, иметь возможность применять фильтры, как вы планировали, в первую очередь (например, memberCount = 1), то есть в одном запросе. НО это, конечно, также требует сохранения атрибута.
person
EricLavault
schedule
16.11.2017