Você pode querer usar o provedor LDAP em vez do provedor pré-2000 WinNT , que tem algumas limitações de capacidade em comparação com LDAP .
A string userDirectoryEntry deve começar com LDAP:// em vez de WinNT://
Se o exemplo do msdn com credenciais não funcionar, tente inicializar o objeto DirectoryEntry com as credenciais:
new DirectoryEntry(userDN,callerUsername,callerPwd);