Hiérarchie des GDL
Introduction
Afin de pouvoir administrer au mieux les droits, il faut une hiérarchie, un exemple avec notre structure de test :
00-Commun
00-Commun\01-Scan
00-Commun\02-Sport
01-RH
01-RH\01-Paie\2025\Janvier
01-RH\01-Paie\2025\Février
01-RH\01-Paie\2025\Mars
01-RH\01-Paie\2025\Avril
01-RH\01-Paie\2025\Mai
01-RH\02-Formation
01-RH\03-Carrière
02-Informatique
02-Informatique\01-Procédures
Ici, il faut que le GDL "01 - RH\01 - Paie\2025\Janvier" qui est lecture écriture donc "GDL_01-01-2025-Janvier_RW" soit membre de "01 - RH\01 - Paie\2025" lecture donc "GDL_01-01-202_RO", qui lui même sera membre de "GDL_01-01_RO" etc etc
De plus, il faut, au contraire que "GDL_01_RW" par exemple ai des droits récursifs sur l'ensemble des enfants, mais cela sera pour une prochaine partie.
Mise ne place de la hiérarchie
On en vient donc au script qui permet de faire ça :
Param(
[string]$CsvPath = "C:\chemin\vers\GDLMapping.csv"
)
Try { Import-Module ActiveDirectory -ErrorAction Stop } Catch {}
# Import CSV avec UTF8
$GDLList = Import-Csv -Path $CsvPath -Encoding UTF8
foreach ($gdl in $GDLList) {
$childRO = $gdl.GDLNameRO
$childRW = $gdl.GDLNameRW
$parentRO = $gdl.ParentGDLRO
if ([string]::IsNullOrEmpty($parentRO)) {
# Pas de parent, on ignore
continue
}
# Vérifier que les groupes existent avant d'ajouter
if (Get-ADGroup -Filter "Name -eq '$parentRO'" -ErrorAction SilentlyContinue) {
Try {
Add-ADGroupMember -Identity $parentRO -Members $childRO,$childRW -ErrorAction Stop
Write-Host "$childRO et $childRW ajoutés à $parentRO"
} Catch {
Write-Warning "Impossible d'ajouter $childRO/$childRW à $parentRO : $_"
}
} else {
Write-Warning "Parent RO $parentRO non trouvé dans l'AD"
}
}
Avec cela, chaque enfant RO et RW est membre de son parent RO direct.
Prochaine étape appliquer les ACL aux répertoires du partage !

No comments to display
No comments to display