Partager via


Création d’un utilisateur

Pour créer un utilisateur dans services de domaine Active Directory, créez un objet utilisateur dans le conteneur de domaine du domaine où vous souhaitez placer l’utilisateur. Les utilisateurs peuvent être créés à la racine du domaine, dans une unité d’organisation ou dans un conteneur.

Lorsque vous créez un objet utilisateur, vous devez également définir les attributs répertoriés dans le tableau suivant pour définir l’objet en tant qu’utilisateur légal reconnu par services de domaine Active Directory et le système Sécurité Windows.

Attribut Description
Cn Spécifie le nom de l’objet utilisateur dans le répertoire. Il s’agit du nom unique relatif (RDN) de l’objet.
Samaccountname Spécifie une chaîne qui est le nom utilisé pour prendre en charge les clients et les serveurs d’une version précédente de Windows. Le sAMAccountName doit comporter moins de 20 caractères pour prendre en charge les clients d’une version précédente de Windows.
Le sAMAccountName doit être unique parmi tous les objets de principal de sécurité au sein du domaine. Vous devez effectuer une requête sur le domaine pour vérifier que sAMAccountName est unique au sein du domaine.
sAMAccountName est un attribut facultatif. Le serveur crée une valeur sAMAccountName aléatoire si aucune n’est spécifiée.

Vous pouvez également définir d’autres attributs. Les attributs utilisateur suivants sont définis avec des valeurs par défaut si vous ne les définissez pas explicitement au moment de la création.

Attribut Description
accountExpires Spécifie le moment où le compte expirera. La valeur par défaut est TIMEQ_FOREVER, ce qui indique que le compte n’expirera jamais.
nTSecurityDescriptor Un descripteur de sécurité est créé en fonction de règles spécifiques. Pour plus d’informations, consultez Définition des descripteurs de sécurité sur les nouveaux objets d’annuaire.
objectCategory Spécifie la catégorie d’utilisateur. La valeur par défaut est « Person ».
name Spécifie le nom d'utilisateur. La valeur par défaut est la valeur définie pour cn.
pwdLastSet Spécifie quand l’utilisateur a défini le mot de passe pour la dernière fois. La valeur par défaut est zéro, ce qui indique que l’utilisateur doit modifier le mot de passe à la prochaine ouverture de session.
userAccountControl Contient des valeurs qui déterminent plusieurs fonctionnalités d’ouverture de session et de compte pour l’utilisateur.
Par défaut, les indicateurs suivants sont définis :
  • UF_ACCOUNTDISABLE : le compte est désactivé.
  • UF_PASSWD_NOTREQD : aucun mot de passe n’est requis.
  • UF_NORMAL_ACCOUNT : type de compte par défaut qui représente un utilisateur standard.
memberOf Spécifie le ou les groupes dont l’utilisateur est un membre direct. La valeur par défaut est « Utilisateurs du domaine ».

Un utilisateur est créé en lisant au conteneur souhaité, puis en utilisant l’une des méthodes suivantes. Les attributs cn et sAMAccountName doivent être définis avant que l’utilisateur soit commité sur le serveur.

Méthode Description
IADsContainer.Create L’attribut cn est extrait du paramètre bstrRelativeName. Le nouvel utilisateur doit être validé en appelant IADs.SetInfo , sinon l’objet n’est pas créé. Pour plus d’informations, consultez Exemple de code pour la création d’un utilisateur.
IDirectoryObject::CreateDSObject L’attribut cn est extrait du paramètre pszRDNName . Le nouvel utilisateur est validé lorsque CreateDSObject est appelé. Pour plus d’informations, consultez Exemple de code pour la création d’un utilisateur.
DirectoryEntries.Add L’attribut cn est extrait du paramètre name. Le nouvel objet utilisateur doit être commité en appelant DirectoryEntry.CommitChanges , sinon l’objet n’est pas créé. Pour plus d’informations, consultez Ajout d’objets d’annuaire.

Le nouvel utilisateur doit être commité sur le serveur avant que des attributs autres que cn et sAMAccountName puissent être modifiés. Cela est dû au fait que le compte d’utilisateur n’existe pas réellement tant que l’utilisateur n’est pas commité. Si un attribut est récupéré ou modifié pour un objet qui n’existe pas sur le serveur, une erreur se produit. Cela inclut l’appel de la méthode IADsUser.SetPassword . Par exemple, la séquence suivante est suivie lors de la création d’un utilisateur avec IADsContainer.Create :

  1. Appelez IADsContainer.Create pour créer l’utilisateur dans le cache local avec le cn spécifié.
  2. Définissez l’attribut sAMAccountName sur la valeur souhaitée avec la méthode IADs.Put .
  3. Maintenant, modifiez d’autres attributs, tels que userAccountControl. Cette restriction s’applique également aux propriétés ADSI, telles que IADsUser.AccountDisabled, et aux méthodes telles que IADsUser.SetPassword.
  4. Appelez IADs.SetInfo pour valider le nouvel utilisateur sur le serveur.

Lorsqu’un compte d’utilisateur est créé, il est désactivé par défaut. Le compte doit être activé manuellement ou par programmation. Pour activer un compte d’utilisateur par programmation, supprimez l’indicateur ADS_UF_ACCOUNTDISABLE de l’attribut userAccountControl .

Lorsqu’un compte d’utilisateur est créé, l’attribut userAccountControl du compte a automatiquement l’indicateur UF_PASSWD_NOTREQD défini, ce qui indique qu’aucun mot de passe n’est requis pour le compte. Si les stratégies de sécurité du domaine dans lequel le compte est créé nécessitent un mot de passe pour tous les comptes d’utilisateur, l’indicateur UF_PASSWD_NOTREQD doit être supprimé de l’attribut userAccountControl pour le compte.

Exemple de code pour la création d’un utilisateur