Accorder en masses des Droits de lecture sur des dossiers

adgm1 Messages postés 289 Date d'inscription   Statut Membre Dernière intervention   -  
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   -

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

A voir également:

2 réponses

barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 

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 289 Date d'inscription   Statut Membre Dernière intervention   10
 

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 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 

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

1