Untitled
unknown
plain_text
9 months ago
4.2 kB
4
Indexable
# Démarrer la journalisation
$logPath = "C:\Logs\CreationUtilisateurs.log"
Start-Transcript -Path $logPath
# Chemin du fichier CSV
$CSVFile = "C:\Users\chris\Downloads\Utilisateurs.csv"
$CSVData = Import-CSV -Path $CSVFile -Delimiter ";" -Encoding UTF8
# Vérifier si l'OU principale (Siège) existe
$MainOUPath = "OU=Siège,DC=horizon,DC=local"
if (-not (Get-ADOrganizationalUnit -Filter "DistinguishedName -eq '$MainOUPath'" -ErrorAction SilentlyContinue)) {
# Si l'OU principale n'existe pas, on la crée
try {
New-ADOrganizationalUnit -Name "Siège" -Path "DC=horizon,DC=local"
Write-Output "Création de l'OU principale : Siège"
Write-Output "Création de l'OU principale : Siège" | Out-File -Append $logPath
}
catch {
Write-Error "Erreur lors de la création de l'OU principale Siège. $_"
Write-Error "Erreur lors de la création de l'OU principale Siège. $_" | Out-File -Append $logPath
continue
}
}
# Traitement de chaque utilisateur
Foreach($Utilisateur in $CSVData){
$UtilisateurPrenom = $Utilisateur.Prenom
$UtilisateurNom = $Utilisateur.Nom
$UtilisateurLogin = $UtilisateurPrenom + "." + $UtilisateurNom
$UtilisateurMotDePasse = "Ertyuiop," # Mot de passe par défaut
$UtilisateurOU = $Utilisateur.OU
# Créer le chemin de l'OU en fonction de la colonne OU dans le CSV sous l'OU principale Siège
$OUPath = "OU=$UtilisateurOU,OU=Siège,DC=horizon,DC=local"
# Vérifier si l'OU spécifique existe déjà
if (-not (Get-ADOrganizationalUnit -Filter "DistinguishedName -eq '$OUPath'" -ErrorAction SilentlyContinue)) {
# Si l'OU spécifique n'existe pas, on la crée sous l'OU principale
try {
New-ADOrganizationalUnit -Name $UtilisateurOU -Path "OU=Siège,DC=horizon,DC=local"
Write-Output "Création de l'OU : $UtilisateurOU sous l'OU principale Siège"
Write-Output "Création de l'OU : $UtilisateurOU sous l'OU principale Siège" | Out-File -Append $logPath
}
catch {
Write-Error "Erreur lors de la création de l'OU : $UtilisateurOU sous l'OU principale Siège. $_"
Write-Error "Erreur lors de la création de l'OU : $UtilisateurOU sous l'OU principale Siège. $_" | Out-File -Append $logPath
continue
}
}
# Vérifier si l'utilisateur existe déjà dans l'AD
if (Get-ADUser -Filter {SamAccountName -eq $UtilisateurLogin}) {
Write-Warning "L'utilisateur $UtilisateurLogin existe déjà dans l'AD"
Write-Warning "L'utilisateur $UtilisateurLogin existe déjà dans l'AD" | Out-File -Append $logPath
}
else {
# Création de l'utilisateur dans l'OU spécifique sous l'OU principale
try {
New-ADUser -Name "$UtilisateurNom $UtilisateurPrenom" `
-DisplayName "$UtilisateurNom $UtilisateurPrenom" `
-GivenName $UtilisateurPrenom `
-Surname $UtilisateurNom `
-SamAccountName $UtilisateurLogin `
-UserPrincipalName "$UtilisateurLogin@horizon.local" `
-AccountPassword (ConvertTo-SecureString $UtilisateurMotDePasse -AsPlainText -Force) `
-ChangePasswordAtLogon $true `
-Enabled $true `
-Path $OUPath
Write-Output "Création de l'utilisateur : $UtilisateurLogin ($UtilisateurNom $UtilisateurPrenom) dans l'OU : $UtilisateurOU sous l'OU principale Siège"
Write-Output "Création de l'utilisateur : $UtilisateurLogin ($UtilisateurNom $UtilisateurPrenom) dans l'OU : $UtilisateurOU sous l'OU principale Siège" | Out-File -Append $logPath
}
catch {
Write-Error "Erreur lors de la création de l'utilisateur $UtilisateurLogin sous l'OU principale Siège : $_"
Write-Error "Erreur lors de la création de l'utilisateur $UtilisateurLogin sous l'OU principale Siège : $_" | Out-File -Append $logPath
}
}
}
# Arrêter la journalisation
Stop-Transcript
Editor is loading...
Leave a Comment