Créez des utilisateurs dans l’AD à partir d’un fichier CSV

Créer des utilisateurs dans l’AD à partir d’un CSV

Êtes-vous fatigué de créer manuellement des utilisateurs dans l’Active Directory (AD) ? Aimeriez-vous gagner du temps en utilisant un script PowerShell simple ? Eh bien, vous êtes au bon endroit !

I. Présentation

Dans ce chapitre, nous allons découvrir comment créer un ensemble d’utilisateurs dans l’AD à partir d’un fichier CSV. Peu importe si vous avez un utilisateur ou une centaine, ce script PowerShell fera tout le travail pour vous. Plus besoin de perdre du temps à créer manuellement chaque utilisateur et à remplir chaque champ !

II. Le fichier CSV avec les utilisateurs

En entreprise, vous obtiendrez probablement un fichier CSV à partir d’une base de données ou d’un ERP. Ce fichier peut contenir différentes colonnes, certaines d’entre elles étant peut-être inutiles pour créer les comptes dans l’AD. Mais cela ne pose pas de problème.

Prenons l’exemple suivant :

Prenom;Nom;Fonction
Gérard;Mensoif;Directeur
Sophie;Fonfek;Secrétaire
John;Doeuf;Comptable
Juda;Nanas;Secrétaire
Cécile;Ourkessa;Secrétaire

Ce fichier contient simplement trois valeurs : le prénom, le nom et la fonction. Nous allons utiliser ces informations pour créer les comptes utilisateurs dans l’AD. L’idée est d’injecter ces valeurs dans les champs appropriés de l’AD et de créer des identifiants sous la forme “p.nom” (première lettre du prénom, suivie du nom, séparées par un point). L’adresse e-mail sera également générée avec le domaine de l’entreprise, en reprenant le login.

III. Importer le fichier CSV dans un script

La première étape consiste à récupérer le contenu du fichier CSV dans une variable afin d’obtenir une collection de données à traiter. Utilisez la commande Import-CSV pour cela :

$CSVFile = "C:ScriptsAD_USERSUtilisateurs.csv"
$CSVData = Import-CSV -Path $CSVFile -Delimiter ";" -Encoding UTF8

Maintenant que nous avons les données dans une variable, nous pouvons réaliser des actions sur ces données :

  • Construire l’identifiant dans le format “p.nom” en utilisant la méthode Substring()
  • Créer l’utilisateur dans l’AD
À lire aussi  Le business des conventions de stage : entre précarité et recherche d’expérience

Pour effectuer des traitements sur chaque ligne de notre collection de données, nous allons utiliser une boucle Foreach en PowerShell.

IV. Créer les utilisateurs AD en masse

Pour créer les utilisateurs en masse dans l’AD, nous allons commencer par déclarer la boucle Foreach avant de la remplir :

Foreach($Utilisateur in $CSVData){
}

Commençons par stocker le prénom et le nom dans deux variables différentes. Ces informations seront injectées dans l’objet AD de chaque utilisateur :

Foreach($Utilisateur in $CSVData){
    $UtilisateurPrenom = $Utilisateur.Prenom
    $UtilisateurNom = $Utilisateur.Nom
}

Maintenant, nous allons construire le login en respectant la convention de nommage “p.nom”. Pour obtenir la première lettre du prénom, nous allons utiliser la méthode Substring() sur la variable $UtilisateurPrenom.

De la même manière, nous pouvons générer l’adresse e-mail avec le domaine de messagerie @it-connect.fr :

Foreach($Utilisateur in $CSVData){
    $UtilisateurPrenom = $Utilisateur.Prenom
    $UtilisateurNom = $Utilisateur.Nom
    $UtilisateurLogin = ($UtilisateurPrenom).Substring(0,1) + "." + $UtilisateurNom
    $UtilisateurEmail = "$UtilisateurLogin@it-connect.fr"
}

Maintenant, ajoutons le mot de passe et la fonction de l’utilisateur dans la boucle :

Foreach($Utilisateur in $CSVData){
    $UtilisateurPrenom = $Utilisateur.Prenom
    $UtilisateurNom = $Utilisateur.Nom
    $UtilisateurLogin = ($UtilisateurPrenom).Substring(0,1) + "." + $UtilisateurNom
    $UtilisateurEmail = "$UtilisateurLogin@it-connect.fr"
    $UtilisateurMotDePasse = "IT-Connect@2020"
    $UtilisateurFonction = $Utilisateur.Fonction
}

Maintenant que nous avons formaté les données, il ne reste plus qu’à intégrer la commande New-ADUser dans la boucle. Ajoutons également une condition pour vérifier si l’utilisateur existe déjà dans l’AD :

Foreach($Utilisateur in $CSVData){
    $UtilisateurPrenom = $Utilisateur.Prenom
    $UtilisateurNom = $Utilisateur.Nom
    $UtilisateurLogin = ($UtilisateurPrenom).Substring(0,1) + "." + $UtilisateurNom
    $UtilisateurEmail = "$UtilisateurLogin@it-connect.fr"
    $UtilisateurMotDePasse = "IT-Connect@2020"
    $UtilisateurFonction = $Utilisateur.Fonction

    # Vérifier la présence de l'utilisateur dans l'AD
    if (Get-ADUser -Filter {SamAccountName -eq $UtilisateurLogin}) {
        Write-Warning "L'identifiant $UtilisateurLogin existe déjà dans l'AD"
    } else {
        New-ADUser -Name "$UtilisateurNom $UtilisateurPrenom" `
            -DisplayName "$UtilisateurNom $UtilisateurPrenom" `
            -GivenName $UtilisateurPrenom `
            -Surname $UtilisateurNom `
            -SamAccountName $UtilisateurLogin `
            -UserPrincipalName "$UtilisateurEmail" `
            -EmailAddress $UtilisateurEmail `
            -Title $UtilisateurFonction `
            -Path "OU=Personnel,DC=IT-CONNECT,DC=LOCAL" `
            -AccountPassword (ConvertTo-SecureString $UtilisateurMotDePasse -AsPlainText -Force) `
            -ChangePasswordAtLogon $true `
            -Enabled $true

        Write-Output "Création de l'utilisateur : $UtilisateurLogin ($UtilisateurNom $UtilisateurPrenom)"
    }
}

Et voilà ! Le code complet est prêt. Maintenant, exécutez le script pour créer les utilisateurs dans l’annuaire Active Directory.

À lire aussi  L’aide du gouvernement pour la VMC à 1 euro

Conclusion

Félicitations ! Vous venez de créer des comptes utilisateurs dans l’Active Directory à partir d’un fichier CSV. J’ai pris le temps d’expliquer les étapes une par une pour que ce soit clair et facile à suivre.

N’oubliez pas que ce script peut être adapté en fonction de vos besoins spécifiques et de vos compétences en PowerShell. Amusez-vous bien !