Téléverser les fichiers vers "/"
This commit is contained in:
95
insert_users.ps1
Normal file
95
insert_users.ps1
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
# -----------------------------------------------------------
|
||||||
|
# Script : insert_users.ps1
|
||||||
|
# Description : Importation massive d'utilisateurs dans l'AD
|
||||||
|
# depuis un fichier CSV.
|
||||||
|
# Auteur : 7ka1
|
||||||
|
# -----------------------------------------------------------
|
||||||
|
|
||||||
|
# --- CONFIGURATION ---
|
||||||
|
# Chemin vers le fichier CSV (assurez-vous que le nom correspond à votre fichier généré)
|
||||||
|
$CsvFilePath = ".\happy_koalas_employees_with_passwords.csv"
|
||||||
|
|
||||||
|
# Nom de domaine AD (À ADAPTER à votre environnement, ex: "happykoalas.com")
|
||||||
|
$DomainDN = "DC=happykoalas,DC=com"
|
||||||
|
|
||||||
|
# Racine où les OU des départements seront créées (optionnel, sinon à la racine du domaine)
|
||||||
|
# Exemple : "OU=Employees,DC=happykoalas,DC=com"
|
||||||
|
# Ici, on les met à la racine pour simplifier :
|
||||||
|
$BaseDN = $DomainDN
|
||||||
|
|
||||||
|
# --- IMPORTATION DU MODULE AD ---
|
||||||
|
Import-Module ActiveDirectory
|
||||||
|
|
||||||
|
# --- TRAITEMENT ---
|
||||||
|
# Importation du CSV (Délimiteur point-virgule selon votre fichier précédent)
|
||||||
|
$Users = Import-Csv -Path $CsvFilePath -Delimiter ";"
|
||||||
|
|
||||||
|
Write-Host "Début de l'importation des utilisateurs..." -ForegroundColor Cyan
|
||||||
|
|
||||||
|
foreach ($User in $Users) {
|
||||||
|
# Récupération des données de l'utilisateur
|
||||||
|
$FirstName = $User.FirstName
|
||||||
|
$LastName = $User.LastName
|
||||||
|
$SamAccount = $User.UserName
|
||||||
|
$Password = $User.Password
|
||||||
|
$Email = $User.Email
|
||||||
|
$Department = $User.Department
|
||||||
|
$JobTitle = $User.JobTitle
|
||||||
|
|
||||||
|
# Définition du nom complet (CN)
|
||||||
|
$DisplayName = "$FirstName $LastName"
|
||||||
|
|
||||||
|
# 1. Gestion de l'OU (Organisation Unit)
|
||||||
|
# On construit le chemin de l'OU : OU=NomDepartement,DC=...
|
||||||
|
$TargetOU = "OU=$Department,$BaseDN"
|
||||||
|
|
||||||
|
# Vérifier si l'OU existe, sinon la créer
|
||||||
|
try {
|
||||||
|
if (-not (Get-ADOrganizationalUnit -Filter "Name -eq '$Department'" -ErrorAction SilentlyContinue)) {
|
||||||
|
Write-Host "L'OU '$Department' n'existe pas. Création en cours..." -ForegroundColor Yellow
|
||||||
|
New-ADOrganizationalUnit -Name $Department -Path $BaseDN
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
Write-Host "Erreur lors de la vérification/création de l'OU $Department : $_" -ForegroundColor Red
|
||||||
|
continue # Passe à l'utilisateur suivant en cas d'erreur critique sur l'OU
|
||||||
|
}
|
||||||
|
|
||||||
|
# 2. Création de l'utilisateur
|
||||||
|
try {
|
||||||
|
# Vérifier si l'utilisateur existe déjà
|
||||||
|
if (Get-ADUser -Filter "SamAccountName -eq '$SamAccount'" -ErrorAction SilentlyContinue) {
|
||||||
|
Write-Host "L'utilisateur $SamAccount existe déjà. Ignoré." -ForegroundColor DarkGray
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
# Conversion du mot de passe en SecureString
|
||||||
|
$SecurePassword = ConvertTo-SecureString $Password -AsPlainText -Force
|
||||||
|
|
||||||
|
# Paramètres de création
|
||||||
|
$UserParams = @{
|
||||||
|
Name = $DisplayName
|
||||||
|
GivenName = $FirstName
|
||||||
|
Surname = $LastName
|
||||||
|
SamAccountName = $SamAccount
|
||||||
|
UserPrincipalName = "$SamAccount@happykoalas.com" # Adapter le suffixe UPN si besoin
|
||||||
|
Path = $TargetOU
|
||||||
|
AccountPassword = $SecurePassword
|
||||||
|
Enabled = $true
|
||||||
|
ChangePasswordAtLogon = $true # Exigence demandée : changer MDP à la première connexion
|
||||||
|
EmailAddress = $Email
|
||||||
|
Department = $Department
|
||||||
|
Title = $JobTitle
|
||||||
|
Description = "Compte créé via script insert_users.ps1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Création effective
|
||||||
|
New-ADUser @UserParams
|
||||||
|
Write-Host "Utilisateur créé : $SamAccount dans $TargetOU" -ForegroundColor Green
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
Write-Host "Erreur lors de la création de l'utilisateur $SamAccount : $_" -ForegroundColor Red
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "Importation terminée." -ForegroundColor Cyan
|
||||||
Reference in New Issue
Block a user