TP N°5 : Script de création d’utilisateurs en masse (import CSV)

Sophie pose enfin le ticket qui a servi de déclencheur à toute cette formation, évoqué dès l’introduction : « 200 comptes à créer pour la rentrée, chacun avec un nom, un prénom et un service. Cette fois, je veux un script solide : s’il y a un souci sur un compte, il ne doit pas bloquer les 199 autres. »

Objectif

Combiner fonctions (5.4), structures de contrôle (5.3) et gestion d’erreurs (5.5) pour construire un script robuste de création de comptes locaux à partir d’un fichier CSV, sans qu’un échec isolé n’interrompe le traitement des autres lignes.

Préparation : le fichier CSV

Créez un fichier comptes.csv avec ce contenu :

Nom,Prenom,Service
Dupont,Julie,Comptabilite
Martin,Paul,Informatique
Durand,Sophie,RH

Consignes

Étape 1 — Importez le fichier CSV dans une variable, avec Import-Csv.
Indice : Import-Csv renvoie directement un tableau d’objets, une ligne CSV = un objet, chaque colonne = une propriété — pas besoin de découper du texte manuellement.

Étape 2 — Écrivez une fonction New-CompteDepuisCSV qui prend en paramètres Nom, Prenom et Service, et qui construit un identifiant de connexion au format p.dupont (première lettre du prénom, point, nom, en minuscules).
Indice : .ToLower() et .Substring(0,1) permettent respectivement de passer en minuscules et de récupérer la première lettre d’une chaîne.

Étape 3 — Dans cette fonction, utilisez try/catch avec -ErrorAction Stop pour tenter la création du compte avec New-LocalUser, sans mot de passe interactif cette fois (générez-en un aléatoire simple pour ce TP).

Étape 4 — Si la création échoue (compte déjà existant, par exemple), affichez un Write-Warning clair, et continuez le traitement des autres comptes.

Étape 5 — Parcourez le CSV importé avec une boucle, en appelant la fonction pour chaque ligne. À la fin, affichez un résumé : nombre de comptes créés avec succès, nombre d’échecs.