Automatiser la création d’utilisateur Active Directory avec New-ADUser

Êtes-vous fatigué d’ouvrir Gestionnaire des utilisateurs et ordinateurs Active Directory (ADUC), de cliquer partout, de faire des fautes de frappe et de suivre les étapes pour créer un nouveau compte utilisateur pour la sixième fois aujourd’hui ? Si c’est le cas, vous devez automatiser le processus très courant d’utilisation d’Active Directory pour ajouter un utilisateur avec PowerShell en utilisant la cmdlet New-ADUser !

On est vendredi soir, une heure avant que vous ne prévoyiez de rentrer chez vous pour le week-end. Cela a été une semaine chargée, donc vous avez décidé de regarder le grand match avec vos amis les plus proches. Mais votre patron s’approche décontracté et demande : « As-tu reçu l’e-mail ? Peux-tu t’en occuper d’ici la fin de la journée ? » Vous ouvrez rapidement Microsoft Outlook et effectivement, c’est un e-mail du département des ressources humaines, avec vous en copie conforme par votre responsable, vous demandant de provisionner 400 nouveaux comptes utilisateurs Active Directory (AD) avant de quitter le bureau. Super. Le match est compromis.

Vous recherchez rapidement sur Internet des options pour accélérer la création de ces comptes utilisateurs et découvrez que vous pouvez automatiser la provision des comptes AD en utilisant la ligne de commande et une cmdlet PowerShell appelée New-ADUser.

Typiquement, les administrateurs créent manuellement des comptes AD en utilisant le Gestionnaire des utilisateurs et ordinateurs Active Directory installé sur votre ordinateur de bureau via les Outils d’administration de serveur distant (RSAT). Mais créer un utilisateur AD de cette manière prend, en moyenne, trois minutes par compte utilisateur. La création de comptes utilisateurs AD n’est pas un travail glamour et est propice à l’automatisation.

Il existe trois façons courantes dont les administrateurs créent des objets de compte utilisateur AD en utilisant la cmdlet New-AdUser.

  1. Ajoutez un compte utilisateur Active Directory en utilisant les paramètres requis et supplémentaires des cmdlets.
  2. Copiez un objet utilisateur AD existant pour créer un nouveau compte en utilisant le paramètre Instance.
  3. Associez le cmdlet Import-Csv avec le cmdlet New-ADUser pour créer plusieurs objets utilisateur Active Directory en utilisant un fichier de valeurs séparées par des virgules (CSV).

Ces pratiques peuvent parfois être combinées ensemble pour créer une solution plus efficace. Par exemple, vous pouvez utiliser les trois options pour créer un compte AD modèle pouvant être copié en utilisant un fichier CSV pour générer plusieurs nouveaux comptes AD.

Dans cet article, vous allez apprendre comment utiliser New-AdUser en tirant parti de chacune de ces méthodes.

Gérez et générez des rapports sur Active Directory, Exchange et Microsoft 365 avec ManageEngine ADManager Plus. Téléchargez l’essai gratuit !

Prérequis/Exigences

Avant de commencer à utiliser le cmdlet New-AdUser, vous devez d’abord vous assurer de remplir quelques prérequis.

  • Windows PowerShell 5.1
  • Le package Outils d’administration de serveur distant (RSAT) est installé. Ce package installe le module PowerShell d’Active Directory, qui contient la cmdlet New-AdUser
  • Connectez-vous à un ordinateur Windows dans le même domaine que les comptes d’utilisateurs que vous souhaitez créer
  • Connectez-vous en tant que compte utilisateur AD avec l’autorisation de créer de nouveaux comptes d’utilisateurs

Une fois ces conditions remplies, vous êtes prêt à partir!

Création d’un seul compte utilisateur à l’aide de la cmdlet New-ADUser

Commençons par créer un seul compte utilisateur pour démontrer comment New-ADUser fonctionne à un niveau de base. Vous constaterez que New-ADUser n’a pas beaucoup de paramètres obligatoires. En fait, le seul paramètre obligatoire est le paramètre Name, mais il est rarement utilisé seul.

Vous utiliserez généralement de nombreux paramètres différents pour créer un compte utilisateur. Heureusement, la plupart des paramètres sont explicites et correspondent bien à ce que vous voyez dans ADUC. Comme le montre l’exemple ci-dessous, vous pouvez facilement utiliser de nombreux paramètres. Chaque paramètre correspond approximativement à un attribut de compte utilisateur unique.

Remarquez que nous utilisons des backticks dans l’exemple. Cela est simplement fait pour éviter une longue ligne unique à des fins de lisibilité.

PS51> New-ADUser `
    -Name "Kevin Sapp" `
    -GivenName "Kevin" `
    -Surname "Sapp" `
    -SamAccountName "kesapp-test" `
    -AccountPassword (Read-Host -AsSecureString "Input User Password") `
    -ChangePasswordAtLogon $True `
    -Company "Code Duet" `
    -Title "CEO" `
    -State "California" `
    -City "San Francisco" `
    -Description "Test Account Creation" `
    -EmployeeNumber "45" `
    -Department "Engineering" `
    -DisplayName "Kevin Sapp (Test)" `
    -Country "us" `
    -PostalCode "940001" `
    -Enabled $True

L’unité organisationnelle (OU) où l’objet utilisateur AD est contenu ne peut pas avoir de SamAccountName en double.

Maintenant que le compte est créé, confirmez que le compte a été créé en utilisant la commande Get-ADUser. Ci-dessous, vous pouvez voir que Get-AdUser renvoie certaines attributs courants pour le compte utilisateur récemment créé.

PS51> Get-ADUser -Identity kesapp-test -Properties State,Department,Country,City

DistinguishedName : CN=Kevin Sapp,CN=Users,DC=mylab,DC=local
Enabled           : True
GivenName         : Kevin
Name              : Kevin Sapp
ObjectClass       : user
ObjectGUID        : 3b18338d-b3c7-4d00-a54a-1d3121e1363f
SamAccountName    : kesapp-test
SID               : S-1-5-21-1181311581-1397355964-1468337501-1109
Surname           : Sapp
UserPrincipalName : kesapp-test@mylab.local

Copier un objet utilisateur AD existant

Une autre méthode de création de compte consiste à copier un objet utilisateur AD existant et à l’utiliser comme modèle pour un nouveau compte AD. Il y a plusieurs avantages à cette approche:

  • Elle économise le temps de spécification de chaque paramètre individuellement
  • Elle contribue à standardiser la création de compte AD
  • Elle évite les erreurs humaines causées par la création manuelle de compte et permet aux employés de la même équipe d’avoir les mêmes attributs AD personnalisés

Pour cet exemple, vous utiliserez le compte récemment créé comme modèle (kesapp-test). Peut-être avez-vous besoin de créer un nouveau compte utilisateur avec les mêmes attributs AD état, emplacement, département, pays, et ville. Ce nouveau compte sera pour l’employé James Brown.

Remarquez qu’il y a une limitation avec cette approche et seules les propriétés de compte AD énumérées dans le lien ci-dessous peuvent être copiées avec ce processus. Pour plus d’informations, consultez la page de documentation Microsoft sur Copier les propriétés d’un utilisateur.

La première étape consiste à trouver le compte utilisateur AD qui servira de modèle tout en veillant à ce que tous les attributs à copier soient fournis via le paramètre Properties. Pour ce faire, utilisez la cmdlet Get-ADUser comme indiqué ci-dessous. Cela stocke simplement l’objet utilisateur AD dans la variable $template_account.

Notez que la deuxième ligne définit la propriété UserPrincipalName (UPN) de l’objet modèle sur $null. Cela est recommandé pour garantir que le UPN du modèle soit unique. Chaque compte utilisateur AD doit avoir un UPN unique.

$template_account = Get-ADUser -Identity kesapp-test -Properties State,Department,Country,City
$template_account.UserPrincipalName = $null

Une fois que vous avez capturé le compte utilisateur modèle, vous pouvez utiliser cet objet comme valeur pour le paramètre Instance et fournir tout paramètre spécifique à l’utilisateur pour remplir les autres attributs comme indiqué ci-dessous.

New-ADUser `
    -Instance $template_account `
    -Name 'James Brown' `
    -SamAccountName 'jbrown' `
    -AccountPassword (Read-Host -AsSecureString "Input User Password") `
    -Enabled $True

Vous devriez maintenant avoir un compte pour James avec tous les attributs AD autorisés transférés par l’objet modèle.

Problèmes courants avec le modèle de compte utilisateur

Une erreur courante avec cette approche est d’utiliser le joker * pour le paramètre Properties lors de la capture de l’objet modèle. Les administrateurs font cela parce qu’ils veulent copier tous les attributs du compte utilisateur en une seule fois. Mais cela ne fonctionne pas.

Par exemple, la commande ci-dessous générera une erreur:

$template_account = Get-ADUser -Identity kesapp-test -Properties *
New-ADUser `
    -Instance $template_account `
    -Name 'James Brown' `
    -SamAccountName 'jbrown' `
    -UserPrincipalName '[email protected]' `
    -AccountPassword (Read-Host -AsSecureString "Input User Password") `
    -Enabled $True

Le problème avec cette approche est que l’attribut UserPrincipalName doit être unique dans la forêt AD. Par conséquent, le UPN devrait être écrasé dans la commande New-ADUser ou défini sur null dans la variable de modèle (comme indiqué ci-dessous).

$template_account.UserPrincipalName = $null

Une autre raison pour laquelle l’approche avec le joker échoue est que certaines des propriétés AD copiées par le joker sont en lecture seule (appartenant au Gestionnaire de comptes de sécurité).

Permission error when copying AD objects

Créer de nouveaux comptes utilisateur avec un fichier CSV

Aller plus loin consiste à lire les comptes d’employés à partir d’un fichier CSV et à utiliser New-ADUser pour créer des comptes utilisateur AD.

Cette solution est souvent utilisée par de nombreuses organisations pour automatiser la création de comptes en conjonction avec des systèmes RH qui créent des fichiers plats pour les informations d’intégration des nouveaux employés.

Disons que vous avez reçu une liste de nouveaux employés dans un fichier CSV. Chaque ligne dans le fichier CSV représente une seule ligne et a les colonnes suivantes : Prénom, Nom de famille, Département, État, Identifiant employé, et Bureau. La convention de nommage pour le compte de connexion de l’utilisateur est la première lettre du prénom de l’employé concaténée avec le nom de famille, par exemple ksapp pour l’employé Kevin Sapp.

FirstName, LastName, Department, State, EmployeeID, Office, UserPrincipalName, SamAccountName, Password
Micheal, Jordan, NBA, Chicago, 23, Chicago Bulls, mjordan@mylab.local, mjordan, p@ssw0rd1
Lebron, James, NBA, Los Angeles,24, LA Lakers,ljames@mylab.local, ljames, p@ssw0rd2
Dwayne, Wade, NBA, Miami, 13, Miami Heat, dwade@mylab.local, dwade, p@ssw0rd3
$import_users = Import-Csv -Path sample.csv

Une fois que vous avez le fichier CSV, utilisez Import-Csv pour lire le fichier CSV et capturer chaque ligne en tant qu’objet unique. Puis itérez sur chacune de ces lignes en passant les champs appropriés du fichier CSV aux paramètres attendus de New-ADUser. Vous pouvez voir un exemple de cela ci-dessous.

$import_users | ForEach-Object {
    New-ADUser `
        -Name $($_.FirstName + " " + $_.LastName) `
        -GivenName $_.FirstName `
        -Surname $_.LastName `
        -Department $_.Department `
        -State $_.State `
        -EmployeeID $_.EmployeeID `
        -DisplayName $($_.FirstName + " " + $_.LastName) `
        -Office $_.Office `
        -UserPrincipalName $_.UserPrincipalName `
        -SamAccountName $_.SamAccountName `
        -AccountPassword $(ConvertTo-SecureString $_.Password -AsPlainText -Force) `
        -Enabled $True
}

Gérez et rapportez Active Directory, Exchange et Microsoft 365 avec ManageEngine ADManager Plus. Téléchargez l’essai gratuit !

Résumé

Dans cet article, vous avez appris comment créer de nouveaux comptes d’utilisateur en utilisant trois méthodes différentes :

  1. Création d’un compte unique
  2. Copie d’un compte utilisateur à partir d’un modèle
  3. Création de plusieurs comptes à l’aide d’un fichier CSV

Ce sont des méthodes de base pour créer de nouveaux utilisateurs dans votre environnement. Ces méthodes fonctionnent très bien lorsqu’elles sont regroupées en créant une fonction PowerShell et un module. Vous pouvez même aller plus loin et créer votre propre processus d’automatisation en utilisant une base de données SQL ou Oracle comme source (au lieu d’un fichier CSV). N’hésitez pas à utiliser chaque méthode en fonction de vos propres besoins et cas d’utilisation uniques.

Espérons que ces informations vous seront utiles en cas de besoin ! Vous avez appris une nouvelle compétence et avez pu participer à la fête avec vos amis sans sacrifier votre équilibre entre vie professionnelle et vie personnelle !

Lecture complémentaire

Source:
https://adamtheautomator.com/new-aduser/