Untitled
TssrNetro
plain_text
5 days ago
5.0 kB
2
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