Question
Insertion de groupe avec ACL
- Tépinier
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 9 ans 9 mois #21992
par Tépinier
Réponse de Tépinier sur le sujet Re:Insertion de groupe avec ACL
Bonjour,
J'ai bien avancé, merci pour ton aide ! Il me reste un tout petit problème. Voici le script :
(désolé si c'est pas très propre ..)
[code:1]Clear-Host
Import-Module NTFSSecurity
echo \"Importation du fichier CSV\"
$arborescence = Import-Csv -Path \"C:\Users\Administrator\Desktop\NewArbo\Arbo1.txt\" -Delimiter \";\"
################################# Création de l'arboresence ######################################
echo \"Création de l'arborescence en cours ...\"
foreach($dossiers in $arborescence){
$path = \"c:\Shares\"+($dossiers.chemin) #c:\Shares\
#$path.ToUpper(\"c:\Shares\"+($dossiers.chemin))
$name = ($dossiers.nom)
echo \"création du dossier $path\$name en cours ...\"
New-Item -Name $name -ItemType directory -Path $path -Force
################################## Pour supprimer l'héritage sur toute l'arborescence ##########################################
echo \"Suppression de l'héritage... \"
Disable-NTFSAccessInheritance -Path $path'\'$name #-RemoveInheritedAccessRules
echo \"Héritage supprimé pour $Name\" `n
#####################Création des groupes #######################
###################################################
$PathG = \"OU=Security;OU=Groupes;DC=test;DC=lan\"
$acl = Get-Acl $path
$pathR = ($dossiers.chemin).replace(\"\\",\"_\"«»)
#$pathR.ToUpper(($dossiers.chemin).replace(\"\\",\"_\"«»))
###################################################
#############################################################################################################
$GroupGL_A = \"GL$pathR\"+\"_$name`_A\"
echo \"construction de $GroupGL_A\" `n `n `n
New-ADGroup $GroupGL_A -GroupScope DomainLocal -Path $PathG
$permission_A = \"test.lan\$GroupGL_A\", \"Traverse\", \"Allow\"
$regle_A = New-Object System.Security.AccessControl.FileSystemAccessRule $permission_A
$acl.SetAccessRule($regle_A)
#Set-Acl -path $pathR -AclObject $acl
#############################################################################################################
$GroupGL_RW = \"GL$pathR\"+\"_$name`_RW\"
New-ADGroup $GroupGL_RW -GroupScope DomainLocal -Path $PathG
$Permission_RW = \"test.lan\$GroupGL_RW\", \"Write, Read, Traverse, DeleteSubdirectoriesAndFiles\", \"Allow\"
$regle_RW = New-Object System.Security.AccessControl.FileSystemAccessRule $Permission_RW
$acl.SetAccessRule($regle_RW)
#Set-Acl -Path $pathR -AclObject $acl
#############################################################################################################
$GroupGL_RO = \"GL$pathR\"+\"_$name`_RO\"
New-ADGroup $GroupGL_RO -GroupScope DomainLocal -Path $PathG
$Permission_RO = \"test.lan\$GroupGL_RO\", \"ReadAndExecute\", \"Allow\"
$regle_RO = New-Object System.Security.AccessControl.FileSystemAccessRule $Permission_RO
$acl.SetAccessRule($regle_RO)
#Set-Acl -Path $pathR -AclObject $acl
#############################################################################################################
#############################################################################################################
$GroupGG_A = \"GG$pathR\"+\"_$name`_A\"
New-ADGroup $GroupGG_A -GroupScope Global -Path $PathG
$GroupGG_RW = \"GG$pathR\"+\"_$name`_RW\"
New-ADGroup $GroupGG_RW -GroupScope Global -Path $PathG
$GroupGG_RO = \"GG$pathR\"+\"_$name`_RO\"
New-ADGroup $GroupGG_RO -GroupScope Global -Path $PathG
$pathF = \"c:\Shares\"+($dossiers.chemin)+\"\\"+($dossiers.nom)
$acl | Set-Acl -Path $pathF
Add-ADGroupMember -Identity $GroupGL_A -Members $GroupGG_A
Add-ADGroupMember -Identity $GroupGL_RW -Members $GroupGG_RW
Add-ADGroupMember -Identity $GroupGL_RO -Members $GroupGG_RO
}[/code:1]
Et oui comme on peut le voir j'utilise bien le module NTFSSecurity pour gérer les ACL.
ce script ajoute bien tous mes groupes correctement, créer arborescence correctement et applique bien les 3 types de groupes sur chaque dossier, et le bon à chaque fois. Seulement, il y un effet d'empilement. J'ai vérifié l'héritage est désactivé, mais les dossiers enfant héritent des droits du dossier parent ... Il est pourtant bien désactivé. Ceci est pas bon du tout car si on ajoute un utilisateur dans le groupe pour qu'il ai le droit sur un dossier, il aura les mêmes droits sur toute ses dossiers enfants ... Pas bon ...
Une idée ?
J'ai bien avancé, merci pour ton aide ! Il me reste un tout petit problème. Voici le script :
(désolé si c'est pas très propre ..)
[code:1]Clear-Host
Import-Module NTFSSecurity
echo \"Importation du fichier CSV\"
$arborescence = Import-Csv -Path \"C:\Users\Administrator\Desktop\NewArbo\Arbo1.txt\" -Delimiter \";\"
################################# Création de l'arboresence ######################################
echo \"Création de l'arborescence en cours ...\"
foreach($dossiers in $arborescence){
$path = \"c:\Shares\"+($dossiers.chemin) #c:\Shares\
#$path.ToUpper(\"c:\Shares\"+($dossiers.chemin))
$name = ($dossiers.nom)
echo \"création du dossier $path\$name en cours ...\"
New-Item -Name $name -ItemType directory -Path $path -Force
################################## Pour supprimer l'héritage sur toute l'arborescence ##########################################
echo \"Suppression de l'héritage... \"
Disable-NTFSAccessInheritance -Path $path'\'$name #-RemoveInheritedAccessRules
echo \"Héritage supprimé pour $Name\" `n
#####################Création des groupes #######################
###################################################
$PathG = \"OU=Security;OU=Groupes;DC=test;DC=lan\"
$acl = Get-Acl $path
$pathR = ($dossiers.chemin).replace(\"\\",\"_\"«»)
#$pathR.ToUpper(($dossiers.chemin).replace(\"\\",\"_\"«»))
###################################################
#############################################################################################################
$GroupGL_A = \"GL$pathR\"+\"_$name`_A\"
echo \"construction de $GroupGL_A\" `n `n `n
New-ADGroup $GroupGL_A -GroupScope DomainLocal -Path $PathG
$permission_A = \"test.lan\$GroupGL_A\", \"Traverse\", \"Allow\"
$regle_A = New-Object System.Security.AccessControl.FileSystemAccessRule $permission_A
$acl.SetAccessRule($regle_A)
#Set-Acl -path $pathR -AclObject $acl
#############################################################################################################
$GroupGL_RW = \"GL$pathR\"+\"_$name`_RW\"
New-ADGroup $GroupGL_RW -GroupScope DomainLocal -Path $PathG
$Permission_RW = \"test.lan\$GroupGL_RW\", \"Write, Read, Traverse, DeleteSubdirectoriesAndFiles\", \"Allow\"
$regle_RW = New-Object System.Security.AccessControl.FileSystemAccessRule $Permission_RW
$acl.SetAccessRule($regle_RW)
#Set-Acl -Path $pathR -AclObject $acl
#############################################################################################################
$GroupGL_RO = \"GL$pathR\"+\"_$name`_RO\"
New-ADGroup $GroupGL_RO -GroupScope DomainLocal -Path $PathG
$Permission_RO = \"test.lan\$GroupGL_RO\", \"ReadAndExecute\", \"Allow\"
$regle_RO = New-Object System.Security.AccessControl.FileSystemAccessRule $Permission_RO
$acl.SetAccessRule($regle_RO)
#Set-Acl -Path $pathR -AclObject $acl
#############################################################################################################
#############################################################################################################
$GroupGG_A = \"GG$pathR\"+\"_$name`_A\"
New-ADGroup $GroupGG_A -GroupScope Global -Path $PathG
$GroupGG_RW = \"GG$pathR\"+\"_$name`_RW\"
New-ADGroup $GroupGG_RW -GroupScope Global -Path $PathG
$GroupGG_RO = \"GG$pathR\"+\"_$name`_RO\"
New-ADGroup $GroupGG_RO -GroupScope Global -Path $PathG
$pathF = \"c:\Shares\"+($dossiers.chemin)+\"\\"+($dossiers.nom)
$acl | Set-Acl -Path $pathF
Add-ADGroupMember -Identity $GroupGL_A -Members $GroupGG_A
Add-ADGroupMember -Identity $GroupGL_RW -Members $GroupGG_RW
Add-ADGroupMember -Identity $GroupGL_RO -Members $GroupGG_RO
}[/code:1]
Et oui comme on peut le voir j'utilise bien le module NTFSSecurity pour gérer les ACL.
ce script ajoute bien tous mes groupes correctement, créer arborescence correctement et applique bien les 3 types de groupes sur chaque dossier, et le bon à chaque fois. Seulement, il y un effet d'empilement. J'ai vérifié l'héritage est désactivé, mais les dossiers enfant héritent des droits du dossier parent ... Il est pourtant bien désactivé. Ceci est pas bon du tout car si on ajoute un utilisateur dans le groupe pour qu'il ai le droit sur un dossier, il aura les mêmes droits sur toute ses dossiers enfants ... Pas bon ...
Une idée ?
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 9 ans 9 mois #21993
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Re:Insertion de groupe avec ACL
Là ce n'est plus un problème \"PowerShell\" mais de gestion des permissions NTFS...
A toi de faire des tests pour trouver l'origine de ton problème.
Arnaud
A toi de faire des tests pour trouver l'origine de ton problème.
Arnaud
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
- Tépinier
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 9 ans 9 mois #21994
par Tépinier
Réponse de Tépinier sur le sujet Re:Insertion de groupe avec ACL
Ok merci ! Je vais voir ça !
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.044 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Insertion de groupe avec ACL