Creación de un usuario

Para crear un usuario en Servicios de dominio de Active Directory, cree un objeto de usuario en el contenedor de dominio del dominio donde desea colocar el usuario. Los usuarios se pueden crear en la raíz del dominio, dentro de una unidad organizativa o dentro de un contenedor.

Al crear un objeto de usuario, también debe establecer los atributos enumerados en la tabla siguiente para establecer el objeto como un usuario legal reconocido por Servicios de dominio de Active Directory y el sistema de Seguridad de Windows.

Atributo Descripción
Cn Especifica el nombre del objeto de usuario en el directorio. Este será el nombre distintivo relativo del objeto (RDN).
Samaccountname Especifica una cadena que es el nombre que se usa para admitir clientes y servidores de una versión anterior de Windows. SAMAccountName debe tener menos de 20 caracteres para admitir clientes de una versión anterior de Windows.
SAMAccountName debe ser único entre todos los objetos de entidad de seguridad del dominio. Debe realizar una consulta en el dominio para comprobar que sAMAccountName es único dentro del dominio.
sAMAccountName es un atributo opcional. El servidor creará un valor sAMAccountName aleatorio si no se especifica ninguno.

También puede establecer otros atributos. Los siguientes atributos de usuario se establecen con valores predeterminados si no los establece explícitamente en el momento de la creación.

Atributo Descripción
accountExpires Especifica cuándo expirará la cuenta. El valor predeterminado es TIMEQ_FOREVER, lo que indica que la cuenta nunca expirará.
nTSecurityDescriptor Se crea un descriptor de seguridad basado en reglas específicas. Para obtener más información, vea Cómo se establecen los descriptores de seguridad en nuevos objetos de directorio.
objectCategory Especifica la categoría de usuario. El valor predeterminado es "Person".
name Especifica el nombre de usuario. El valor predeterminado es el valor establecido para cn.
pwdLastSet Especifica cuándo el usuario estableció la contraseña por última vez. El valor predeterminado es cero, lo que indica que el usuario debe cambiar la contraseña en el siguiente inicio de sesión.
userAccountControl Contiene valores que determinan varias características de inicio de sesión y cuenta para el usuario.
De forma predeterminada, se establecen las marcas siguientes:
  • UF_ACCOUNTDISABLE : la cuenta está deshabilitada.
  • UF_PASSWD_NOTREQD : no se requiere ninguna contraseña.
  • UF_NORMAL_ACCOUNT : tipo de cuenta predeterminado que representa un usuario típico.
memberOf Especifica el grupo o los grupos de los que el usuario es miembro directo. El valor predeterminado es "Usuarios de dominio".

Un usuario se crea mediante el enlace al contenedor deseado y, a continuación, usa uno de los métodos siguientes. Los atributos cn y sAMAccountName deben establecerse antes de que el usuario se confirme en el servidor.

Método Descripción
IADsContainer.Create El atributo cn se toma del parámetro bstrRelativeName . El nuevo usuario debe confirmarse llamando a IADs.SetInfo o no se creará el objeto . Para obtener más información, vea Código de ejemplo para crear un usuario.
IDirectoryObject::CreateDSObject El atributo cn se toma del parámetro pszRDNName . El nuevo usuario se confirma cuando se llama a CreateDSObject . Para obtener más información, vea Código de ejemplo para crear un usuario.
DirectoryEntries.Add El atributo cn se toma del parámetro name . El nuevo objeto de usuario debe confirmarse llamando a DirectoryEntry.CommitChanges o no se creará el objeto . Para obtener más información, vea Agregar objetos de directorio.

El nuevo usuario debe confirmarse en el servidor antes de que se puedan modificar los atributos que no sean cn y sAMAccountName . Esto se debe a que la cuenta de usuario no existe realmente hasta que el usuario se confirma. Si se recupera o modifica un atributo para un objeto que no existe en el servidor, se producirá un error. Esto incluye llamar al método IADsUser.SetPassword . Por ejemplo, se seguiría la siguiente secuencia al crear un usuario con IADsContainer.Create:

  1. Llame a IADsContainer.Create para crear el usuario en la memoria caché local con el cn especificado.
  2. Establezca el atributo sAMAccountName en el valor deseado con el método IADs.Put .
  3. Ahora, modifique otros atributos, como userAccountControl. Esta restricción también se aplica a las propiedades ADSI, como IADsUser.AccountDisabled, y a métodos como IADsUser.SetPassword.
  4. Llame a IADs.SetInfo para confirmar el nuevo usuario en el servidor.

Cuando se crea una nueva cuenta de usuario, se deshabilita de forma predeterminada. La cuenta debe habilitarse manualmente o mediante programación. Para habilitar mediante programación una cuenta de usuario, quite la marca ADS_UF_ACCOUNTDISABLE del atributo userAccountControl .

Cuando se crea una nueva cuenta de usuario, el atributo userAccountControl para la cuenta tiene automáticamente la marca UF_PASSWD_NOTREQD establecida, lo que indica que no se requiere ninguna contraseña para la cuenta. Si las directivas de seguridad del dominio en el que se crea la cuenta requieren una contraseña para todas las cuentas de usuario, la marca UF_PASSWD_NOTREQD debe quitarse del atributo userAccountControl de la cuenta.

Código de ejemplo para crear un usuario