Accorder en masses des Droits de lecture sur des dossiers

adgm1 Messages postés 273 Date d'inscription jeudi 4 octobre 2007 Statut Membre Dernière intervention 29 juin 2024 - 10 juin 2024 à 17:08
barnabe0057 Messages postés 14452 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 3 août 2024 - 15 juin 2024 à 13:26

Bonjour,

j'essaye de configurer des droits en lecture seule sur des dossiers d'utilisateurs dans un AD. Le but est de trouver tous les dossiers documents, images, vidéos.. des profils users et leurs attribuer un droits spécifique (à savoir les 3 options : "lecture et execution", "affichage du contenu" et "lecture"). cela pour permettre au groupe "PROF" de lire et copier/coller les fichiers des eleves sans pour autant pouvoir les supprimer ou modifier.

Mon script ne fonctionne pas je ne sais pas ce qui bloque. Une idée?

FOR /F "tokens=1 skip=1 delims= " %%a in ('wmic UserAccount get Name') DO SET user=%%a
FOR /F "tokens=1 skip=1 delims= " %%b in ('wmic Group get Name') DO SET classe=%%b


REM Droits en lecture et execution pour les profeseurs sur les dossiers des users eleves
SET user=%user%
SET classe=%classe%
IF EXIST \\srv-dc1\d$\KoXoDATA\ELEVES\%classe%\%user%\documents icacls "\\srv-dc1\d$\KoXoDATA\ELEVES\%classe%\%user%\documents" /inheritance:r /grant:r professeurs:R /T

pause


Windows / Firefox 123.0

2 réponses

barnabe0057 Messages postés 14452 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 3 août 2024 4 917
Modifié le 12 juin 2024 à 14:52

Bonjour,

Tu fais 2 boucles pour récupérer plusieurs valeurs je suppose, mais tu fais la modification des permissions sur une seule valeur ???

De plus, je ne sais pas si la commande IF EXIST supporte les chemins UNC.

Moi j'aurais fait plutôt comme ça :

SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION

FOR /F "tokens=1 skip=1 delims= " %%a in ('wmic UserAccount get Name') DO SET "user=%%a"
FOR /F "tokens=1 skip=1 delims= " %%b in ('wmic Group get Name') DO SET "classe=%%b"

REM Droits en lecture et execution pour les professeurs sur les dossiers des users eleves
SET "profil=\\srv-dc1\d$\KoXoDATA\ELEVES\!classe!\!user!\documents"
PUSHD !profil! && icacls !profil! /inheritance:r /grant:r professeurs:R /T

En supposant que les variables user et classe récupèrent bien la bonne valeur


0
adgm1 Messages postés 273 Date d'inscription jeudi 4 octobre 2007 Statut Membre Dernière intervention 29 juin 2024 10
15 juin 2024 à 13:16

merci pour cette astuce je vais la tester. J'ai Bobot l'IA qui m'a aussi répondu ça

@echo off
SETLOCAL EnableDelayedExpansion
FOR /F "tokens=1 skip=1 delims= " %%a in ('wmic UserAccount get Name') DO (
SET user=%%a
FOR /F "tokens=1 skip=1 delims= " %%b in ('wmic Group get Name') DO (
SET classe=%%b
REM Droits en lecture et execution pour les professeurs sur les dossiers des users eleves
IF EXIST "\\srv-dc1\d$\KoXoDATA\ELEVES\!classe!\!user!\documents" (
icacls "\\srv-dc1\d$\KoXoDATA\ELEVES\!classe!\!user!\documents" /inheritance:r /grant:r professeurs:R /T
)
)
)
pause

Le probleme c'est que dans ce cas je supprimes touts les droits préexistants et je les remplace par le nouveau (professeurs). Mon idée et juste d'ajouter un nouveau groupe de sécurité parmis ceux deja existant.

0
barnabe0057 Messages postés 14452 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 3 août 2024 4 917
Modifié le 15 juin 2024 à 13:27

Dans ce cas il suffit d'enlever le /inheritance:r et d'enlever le :r de /grant

1