Essa consulta não é bem formada e tem algumas informações redundantes e incorretas.
Eu especificaria objectCategory = person. E se você fizer isso, você não precisa de objectClass = user, pois está incluído no objectCategory = person.
Você pode tentar isso:
(|
(&(objectCategory=person)(|(samAccountname=a*)(givenname=a*)(mail=a*)))
(&(|(objectCategory=group)(objectClass=groupOfUniqueNames)(objectClass=groupOfNames))(cn=a*))
)
Observe também:
"... se você tiver uma escolha entre usar objectCategory e objectClass, é recomendável usar objectCategory, porque objectCategory é de valor único e indexado, enquanto objectClass é multiuso e não indexado (exceto no Windows Server 2008. e acima.) Uma consulta usando um filtro com objectCategory será mais eficiente do que um filtro semelhante com objectClass.Os controladores de domínio do Windows Server 2008 (e acima) têm um comportamento especial que indexa o atributo objectClass.Você pode tirar proveito disso se todos os seus controladores de domínio são o Windows Server 2008 ou, se você especificar um controlador de domínio do Windows Server 2008 em sua consulta. "
link
< href="http://msdn.microsoft.com/pt-br/library/windows/desktop/ms677612%28v=vs.85%29.aspx"> link