Necesito crear un nuevo usuario en Active Directory. He encontrado varios ejemplos como el siguiente:Crear usuario de Active Directory en .NET (C#)
using System;
using System.DirectoryServices;
namespace test {
class Program {
static void Main(string[] args) {
try {
string path = "LDAP://OU=x,DC=y,DC=com";
string username = "johndoe";
using (DirectoryEntry ou = new DirectoryEntry(path)) {
DirectoryEntry user = ou.Children.Add("CN=" + username, "user");
user.Properties["sAMAccountName"].Add(username);
ou.CommitChanges();
}
}
catch (Exception exc) {
Console.WriteLine(exc.Message);
}
}
}
}
Cuando ejecuto el código me sale ningún error, pero no se crea un nuevo usuario.
La cuenta con la que estoy realizando la prueba tiene los privilegios suficientes para crear un usuario en la Unidad organizativa de destino.
¿Me falta algo (posiblemente algún atributo requerido del objeto de usuario)?
¿Alguna idea de por qué el código no da excepciones?
EDITAR
Los siguientes trabajó para mí:
int NORMAL_ACCOUNT = 0x200;
int PWD_NOTREQD = 0x20;
DirectoryEntry user = ou.Children.Add("CN=" + username, "user");
user.Properties["sAMAccountName"].Value = username;
user.Properties["userAccountControl"].Value = NORMAL_ACCOUNT | PWD_NOTREQD;
user.CommitChanges();
Así que en realidad había un par de problemas:
CommitChanges
debe ser llamado enuser
(gracias Rob)- La política de contraseñas impedía la creación del usuario (gracias Marc)
Buena captura !! :-) –
el poder de leer "manuales" en acción :) – balexandre