Créer le fichier CSV
Nous devons déjà créer le tableau avec les informations de nos utilisateurs. Les en-têtes sont importantes, car elles seront reliées à notre script PowerShell.
Name | ID | Service | Groupe |
Marie Dupont | marie.dupont | Direction | GRP_Direction |
Claire Martin | claire.martin | RH | GRP_RH |
Julien Robert | julien.robert | Informatique | GRP_IT |
Nicolas Dubois | nicolas.dubois | Commercial | GRP_Commercial |
Camille Renaud | camille.renaud | Support | GRP_Support |
Une fois notre tableau finalisé, nous l'exportons au format CSV. Si nous ouvrons le fichier CSV avec un éditeur de texte, nous obtiendrons ce résultat.
Si votre fichier doit contenir des accents, veillez à l'exporter en CSV UTF-8.
Name;ID;Service;Groupe
Marie Dupont;marie.dupont;Direction;GRP_Direction
Claire Martin;claire.martin;RH;GRP_RH
Julien Robert;julien.robert;Informatique;GRP_IT
Nicolas Dubois;nicolas.dubois;Commercial;GRP_Commercial
Camille Renaud;camille.renaud;Support;GRP_Support
Lien de téléchargement de mon fichier complet.
Script PowerShell
Le script va créer les utilisateurs et les ranger dans les bonnes OUs référencées dans la catégorie Service. Il va aussi les ajouter aux groupes référencés dans la catégorie Groupe.
Le script ne crée pas les OUs et les groupes. Assurez-vous de les avoir créés.
# Définition du chemin du fichier CSV contenant les informations des utilisateurs
$CSVFile = "C:\Scripts\utilisateurs.csv"
# Importation des données du fichier CSV
# Le fichier est délimité par des points-virgules et encodé en UTF-8
$CSVData = Import-CSV -Path $CSVFile -Delimiter ";" -Encoding UTF8
# Parcours de chaque utilisateur dans les données importées
Foreach($Utilisateur in $CSVData){
# Extraction des différentes catégories du CSV
$UtilisateurOU = $Utilisateur.Service
$UtilisateurName = $Utilisateur.Name
$UtilisateurLogin = $Utilisateur.ID
$UtilisateurGroupe = $Utilisateur.Groupe
# création de l'adresse du compte, modifiez le nom domaine pour faire correspondre
$UtilisateurEmail = "$UtilisateurLogin@morgan-informatique.local"
# le mot de passe par défault des utilisateurs
$UtilisateurMotDePasse = "user"
# 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
{
# création de l'utilisateur
New-ADUser -Name $Utilisateur.Name `
-DisplayName $Utilisateur.Name `
-SamAccountName $UtilisateurLogin `
-UserPrincipalName $UtilisateurEmail `
-EmailAddress $UtilisateurEmail `
-Path "OU=$UtilisateurOU,OU=Utilisateurs,DC=morgan-informatique,DC=local" ` # modifiez le chemin pour faire correspondre
-AccountPassword(ConvertTo-SecureString $UtilisateurMotDePasse -AsPlainText -Force) `
-ChangePasswordAtLogon $False ` # passez en true si vous voulez que les utilisateurs doivent changer de mot de passe pour leur première connexion
-Enabled $true
# ajout au groupe correspondant
Add-AdGroupMember -Identity $UtilisateurGroupe -Members $UtilisateurLogin
Write-Output "Création de l'utilisateur : $UtilisateurLogin $UtilisateurName"
}
}