Untitled
# 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
Leave a Comment