PowerShell et Excel – Créer des utilisateurs (CSV)

Introduction

On va voir dans cet article comment faire interagir PowerShell avec un fichier CSV (traité depuis Excel) afin de créer des utilisateurs au sein d’un AD. C’est notamment très utile pour faire des traitements en masse ou diverses actions.

Il est également possible de traiter directement avec des fichiers XLS ou XLSX (formats standard de Excel aujourd’hui), mais ça requiert des manipulations plus poussées et aussi certaines conditions, je n’en parlerai donc pas ici.

Je vous donne en fin d’article un script qui permet la création automatique des utilisateurs en se basant sur un fichier CSV.


Création du CSV

Sous Excel, j’ai une liste de 10 utilisateurs que je souhaite créer :

Pour exporter tout ça dans un fichier CSV traitable, je fais :

  • Fichier > Enregistrer sous
  • Et dans « type » je sélectionne : « CSV (séparateur : point-virgule) (*.csv)« 

Si j’ouvre le fichier créé avec un éditeur de texte, je vois donc que toutes les données sont séparées par un délimiteur qui est le point-virgule « ; » :


Fonctionnement avec PowerShell

Pour pouvoir lire ce fichier avec PowerShell, on utilise la commande « Import-Csv » et on précise le « délimiteur » :

J’enregistre la commande dans une variable $file pour faire les choses proprement et faciliter la suite.

On peut ensuite lire les lignes voulues de la manière suivante :

  • $file[0] pour la 1ère ligne (après les en-têtes)
  • $file[1] pour la 2ème ligne
  • etc…

Pour récupérer une donnée spécifique, comme le Nom du 1er utilisateur par exemple, on fait $file[0].Nom :

La méthode décrite ci-dessus vous servira pour des besoins spécifiques, et vous permet de comprendre comment obtenir les informations voulues.

Mais comment faire si on veut traiter automatiquement toutes les entrées du fichier CSV ?

Pour ça rien de compliqué, on va juste utiliser un « foreach » et le jeton « $_ » (qui va faire référence à l’objet dans la boucle foreach). Je ne m’attarde pas dans les explications, un exemple sera plus parlant :

Pas compliqué n’est-ce pas ? 🙂


Création des utilisateurs (script)

On va maintenant intégrer ça dans un script qui va nous permettre de créer des utilisateurs. La commande pour cette action est New-ADUser.

Je vais présenter ici un cas d’utilisation très banal de la commande, mais à vous de personnaliser selon vos besoins.

Notez juste que le seul paramètre obligatoire de cette commande est « Name ».

L’essentiel du script s’effectuera dans la boucle foreach (comme vu précédemment) :

Une fois rentré dans la boucle foreach, on va définir des variables afin de faire des appels plus simples par la suite (sans le jeton « $_« ) :

On peut en ajouter d’autres, comme l’emplacement de l’utilisateur (« Unité d’Organisation » ou « OU »). Dans mon cas, le nom de mes OU comprennent les noms des services. Donc cette commande me permet de définir l’OU selon ce critère :

Pour ce qui est du mot de passe, la commande New-ADUser n’acceptera pas un mot de passe en clair. Il est donc nécessaire d’effectuer une conversion :

Suite à cela on peut lancer la commande New-ADUser avec les paramètres qui vont bien.

Et pour une phase de vérification, on peut enchainer derrière avec un « if-else » et le jeton « $? » qui définit si la dernière commande a fonctionné (True) ou pas (False).


Voici le script reprenant ce qu’on a vu, qui permet de créer tous les utilisateurs présents dans le CSV :

Après son exécution, les utilisateurs sont créés en une fraction de seconde :

Voilà, on a pu voir comment créer des utilisateurs automatiquement avec PowerShell via un fichier CSV.

Et comme vous l’aurez compris, cette méthode ne se limite pas uniquement aux utilisateurs et peut servir pour l’ensemble des objets Active Directory (groupes, OU, etc…). 🙂

Vous aimerez aussi...

3 réponses

  1. Schneider dit :

    Merci beaucoup!!!!

  2. atttab dit :

    merci bien a vous

  3. Dimitri dit :

    Merci d’une aide précieuse pour débuter.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.