Espero que isso resolva pelo menos alguns dos seus problemas.
A primeira coisa que você precisa fazer é remover objectCategories e objectClasses incorretas.
Em seguida, você deve definir seu searchDN como a raiz da OU que deseja pesquisar:
Por exemplo, se você deseja pesquisar por:
domain.local
|- OUNameLvl1
|-OUNameLvl2
SearchDN=OU=OUNameLvl2,OU=OUNameLvl1,DC=domain,DC=local
Então você pode tentar:
(&(objectCategory=person)(objectClass=user)(sAMAccountName=vvishwakarma))
EDITAR : Acabei de perceber que você disse que está fazendo isso no Active Directory.
Se estiver usando Usuários e Computadores do Active Directory, você pode definir uma consulta personalizada onde fará o mesmo conforme descrito acima - coloque sua raiz de pesquisa na UO que deseja pesquisar e use a mesma consulta LDAP.