Dans une grosse entreprise, on ne peut pas se permettre de rajouter un utilisateur à la fois dans l’Active Directory, il est donc important de pouvoir scripter l’ajout.
Création du script
En premier lieu, on importe le module » activedirectory »
Import-Module activedirectory
On déclare la variable fichiercsv qui n’est d’autre que le fichier que la secrétaire des ressources humaines à remplie.
Pour ne pas vous tromper dans le chemin du fichier, vous pouvez rester appuyer sur shift et appuyer sur » Copier en tant que chemin d’accès » puis le coller après votre -path 😉
Le -delimiter sera simplement ce qui sépare vos arguments, vous pouvez le voir en ouvrant votre fichier dans un bloc-note, il se peut que cela soit un « , »
$fichiercsv = import-csv -path "C:\Users\Administrateur\Documents\arrivants.csv" -delimiter ";"
Ensuite on créer une boucle, qui créer un utilisateur par colonne dans la variable qui se nomme fichiercsv qui est le fichier importé précédemment.
Dans ce cas, le fichier contient deux colonnes, une avec le prenom, et l’autre avec le nom.
Le Path doit être le distinguishedName, il peut-être composé de:
-CN = Common Name
-OU = Organizational Unit
-DC = Domain Component
Dans ce cas l’utilisateur sera créer dans l’unité d’organisation test, qui se trouve dans le domaine info.local
Enabled 1 permet d’activer le compte directement.
foreach($user in $fichiercsv)
{
$prenom = $user.prenom
$nom = $user.nom
New-ADUser -GivenName $prenom -Name $nom -Path "OU=test,DC=info,DC=local" Enabled 1 -AccountPassword (ConvertTo-SecureString ("Azerty.123") -AsPlainText -force)
}
Voici une liste d’attribut que l’on peut mettre:
https://docs.microsoft.com/en-us/powershell/module/addsadministration/new-aduser?view=win10-ps
Script final
Import-Module activedirectory
$users = import-csv -path "C:\Users\Administrateur\Downloads\vl.csv" -delimiter ","
foreach($user in $users)
{
$Prenom = $user.Prenom
$Nom = $user.Nom
$formation = $user.formation
New-ADUser -name $Nom -GivenName $Prenom -Path "ou=test,dc=info,dc=local" -Enabled 1 -AccountPassword (ConvertTo-SecureString ("Azerty.123") -AsPlainText -force)
}