Salut tout le monde
Je cherche à faire un script qui parcours un répertoire. sur chaque dossier contenant un fichier en extension .config le script doit vérifier les droits et les ajouter si besoin (il y'a 3 droits à ajouter pour 2 users à chaque fois).
Pour l'instant mon script est le suivant :
Pour l'instant ma solution marche, mais cela m'oblige à ajouter tous les droits sur chaque dossier (ce script sera lancé hebdomadairement). J'aimerais qu'il vérifie avant les droits manquants et les ajoutes en conséquence et le loggifie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #Liste des dossiers contenant un .config $fic=Get-ChildItem -recurse -Include *.Config #Ajout des droits sur chaque dossier foreach ($f in $fic) { #Ajout du droit 1 pour le User1 $ace = new-object Security.AccessControl.FileSystemAccessRule("Domaine\user", "ReadPermissions", "Deny") $acl.AddAccessRule($ace) set-acl $f.directory $acl #Ajout du droit 2 pour le User1 .... }
Pour cela j'utilise :
Du coup si je fais un $acl.Access j'ai la liste de tous les droits du dossier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 #Vérification des droits : $acl = Get-Acl $f.directory
Je peux atteindre toutes les données que je veux par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 FileSystemRights : ReadAttributes, ReadPermissions AccessControlType : Deny IdentityReference : Domaine\User1 IsInherited : False InheritanceFlags : ContainerInherit, ObjectInherit PropagationFlags : None FileSystemRights : FullControl AccessControlType : Deny IdentityReference : Domaine\User2 IsInherited : False InheritanceFlags : ContainerInherit, ObjectInherit PropagationFlags : None ....
Honnêtement avec tous ça je vois comment m'en sortir mais ce serait juste pas propre du tout, dans la solution que j'ai en tête j'utiliserai des boucles à valvolo, des flags...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $acl.Access[1].FieSystemRights FullControl
Quelqu'un verrait-il une solution simple à mettre en place ?
D'avance un grand merci pour votre aide et bonne fin de semaine.
Partager