Untitled
TssrNetro
plain_text
7 months ago
5.0 kB
4
Indexable
# Importer le module Active Directory (ajouté pour s'assurer que les commandes AD fonctionnent)
Import-Module ActiveDirectory
# Chemin du fichier CSV
$csvPath = "C:\Users\Administrateur\Documents\AD.csv"
# Lire le fichier CSV
# Assurez-vous que les en-têtes du CSV sont sans accents (Prenom, Nom, Groupe)
$users = Import-Csv -Path $csvPath -Delimiter ";"
# Utiliser un chemin de domaine cohérent partout
$domainPath = "DC=ComputeSys,DC=lan"
# Création des Unités d'Organisation (OU) avec protection contre les erreurs
try {
New-ADOrganizationalUnit -Name "ComputeSystem" -Path $domainPath -ErrorAction Stop
Write-Host "OU ComputeSystem créée avec succès" -ForegroundColor Green
} catch {
Write-Host "Erreur lors de la création de l'OU ComputeSystem: $_" -ForegroundColor Red
}
# Mettre à jour le chemin de base pour les sous-OUs
$basePath = "OU=ComputeSystem,$domainPath"
# Créer les sous-OUs
try {
New-ADOrganizationalUnit -Name "Utilisateurs" -Path $basePath -ErrorAction Stop
New-ADOrganizationalUnit -Name "Groupes" -Path $basePath -ErrorAction Stop
New-ADOrganizationalUnit -Name "DL" -Path $basePath -ErrorAction Stop
Write-Host "Sous-OUs créées avec succès" -ForegroundColor Green
} catch {
Write-Host "Erreur lors de la création des sous-OUs: $_" -ForegroundColor Red
}
# Création des groupes GG dans l'OU Groupes (uniques)
$groupesPath = "OU=Groupes,$basePath"
$groupes = $users | Select-Object -ExpandProperty Groupe | Sort-Object | Get-Unique
foreach ($groupe in $groupes) {
try {
New-ADGroup -Name $groupe `
-GroupScope Global `
-GroupCategory Security `
-Path $groupesPath `
-ErrorAction Stop
Write-Host "Groupe $groupe créé avec succès" -ForegroundColor Green
} catch {
Write-Host "Erreur lors de la création du groupe $groupe: $_" -ForegroundColor Red
}
}
# Création des utilisateurs dans l'OU Utilisateurs
$usersPath = "OU=Utilisateurs,$basePath"
foreach ($user in $users) {
# Utiliser les noms de colonnes sans accents
$prenom = $user.Prenom # Assurez-vous que c'est "Prenom" sans accent dans le CSV
$nom = $user.Nom
$groupe = $user.Groupe
try {
# Créer l'utilisateur dans l'OU Utilisateurs
New-ADUser -Name "$prenom $nom" `
-GivenName $prenom `
-Surname $nom `
-SamAccountName "$prenom.$nom".ToLower() `
-UserPrincipalName "$prenom.$nom@computesys.lan".ToLower() `
-Path $usersPath `
-Enabled $true `
-AccountPassword (ConvertTo-SecureString "Ertyuiop," -AsPlainText -Force) `
-ErrorAction Stop
Write-Host "Utilisateur $prenom $nom créé avec succès" -ForegroundColor Green
# Ajouter l'utilisateur au groupe correspondant
Add-ADGroupMember -Identity $groupe -Members "$prenom.$nom".ToLower() -ErrorAction Stop
Write-Host "Utilisateur $prenom $nom ajouté au groupe $groupe" -ForegroundColor Green
} catch {
Write-Host "Erreur lors de la création/affectation de l'utilisateur $prenom $nom: $_" -ForegroundColor Red
}
}
# Création des groupes DL dans l'OU DL
$dlPath = "OU=DL,$basePath"
$dlGroups = @(
"DL-DIRECTION-RW",
"DL-COMMERCIAUX-RW",
"DL-COMPTABILITE-R",
"DL-COMPTABILITE-RW",
"DL-ADMINISTRATEUR-RW",
"DL-SUPPORT-02-R",
"DL-SUPPORT-02-RW",
"DL-SUPPORT-01-RW"
)
foreach ($dl in $dlGroups) {
try {
New-ADGroup -Name $dl `
-GroupScope DomainLocal `
-GroupCategory Security `
-Path $dlPath `
-ErrorAction Stop
Write-Host "Groupe DL $dl créé avec succès" -ForegroundColor Green
} catch {
Write-Host "Erreur lors de la création du groupe DL $dl: $_" -ForegroundColor Red
}
}
# Association des groupes GG aux groupes DL correspondants
$mapping = @{
"GG-DIRECTION" = @("DL-DIRECTION-RW")
"GG-COMPTABILITE" = @("DL-COMPTABILITE-R", "DL-COMPTABILITE-RW")
"GG-SUPPORT-01" = @("DL-SUPPORT-01-RW")
"GG-SUPPORT-02" = @("DL-SUPPORT-02-R", "DL-SUPPORT-02-RW")
"GG-ADMINISTRATEUR" = @("DL-ADMINISTRATEUR-RW")
}
foreach ($gg in $mapping.Keys) {
foreach ($dl in $mapping[$gg]) {
try {
$members = Get-ADGroupMember -Identity $gg -ErrorAction Stop
if ($members) {
Add-ADGroupMember -Identity $dl -Members $members -ErrorAction Stop
Write-Host "Membres du groupe $gg ajoutés au groupe $dl" -ForegroundColor Green
} else {
Write-Host "Le groupe $gg ne contient aucun membre" -ForegroundColor Yellow
}
} catch {
Write-Host "Erreur lors de l'ajout des membres du groupe $gg au groupe $dl: $_" -ForegroundColor Red
}
}
}Editor is loading...
Leave a Comment