Hi,
ich möchte setACL Berechtigungen über ein Skript für mehrere Ordner setzen. Dieses Skript soll aber später von den Usern gestartet werden.
Das Skript (etwas gekürzt) sieht folgendermaßen aus:
Code:
@echo off
mkdir "%foldername%"
mkdir "%foldername%\TeamA"
mkdir "%foldername%\TeamA\Folder1"
mkdir "%foldername%\TeamA\Folder2"
mkdir "%foldername%\TeamA\Folder3"
mkdir "%foldername%\TeamA\Folder4"
mkdir "%foldername%\TeamA\Folder5"
mkdir "%foldername%\TeamA\Folder6"
mkdir "%foldername%\TeamA\Folder7"
mkdir "%foldername%\TeamA\Folder8"
mkdir "%foldername%\TeamA\Folder9"
mkdir "%foldername%\TeamA\Folder10"
mkdir "%foldername%\TeamB"
mkdir "%foldername%\TeamB\Folder1"
mkdir "%foldername%\TeamB\Folder2"
mkdir "%foldername%\TeamB\Folder3"
mkdir "%foldername%\TeamB\Folder4"
goto setacl_job
:setacl_job
%setacl_bin% ^
-on "%foldername%" -ot file ^
-actn ace -ace "n:domain\it-team;p:read,write,change,write_dacl" -actn setprot -op "dacl:p_nc" -rec cont_obj -actn clear -clr dacl ^
-actn ace -ace "n:domain\TeamA;p:read_ex,write,change,list_folder,write_dacl;i:so,sc;m:set;w:dacl" ^
-actn ace -ace "n:domain\TeamB;p:read_ex,list_folder;i:so,sc;m:set;w:dacl" ^
-actn ace -ace "n:domain\TeamC;p:read_ex,list_folder;i:so,sc;m:set;w:dacl" ^
-actn ace -ace "n:domain\TeamD;p:read_ex,list_folder;i:so,sc;m:set;w:dacl" ^
-actn rstchldrn -rst dacl
goto setacl_TeamA
:setacl_TeamA
%setacl_bin% ^
-on "%foldername%\TeamA" -ot file ^
-actn ace -ace "n:domain\Administrator;p:full;i:so,sc;m:set;w:dacl" ^
-actn ace -ace "n:domain\it-team;p:full;i:so,sc;m:set;w:dacl" ^
-actn ace -ace "n:domain\TeamA;p:read_ex,write,change,list_folder,write_dacl;i:so,sc;m:set;w:dacl" ^
-actn ace -ace "n:domain\TeamB;p:read_ex,list_folder;i:so,sc;m:set;w:dacl" ^
-actn ace -ace "n:domain\TeamC;p:read_ex,list_folder;i:so,sc;m:set;w:dacl" ^
-actn ace -ace "n:domain\TeamD;p:read_ex,list_folder;i:so,sc;m:set;w:dacl" ^
-actn setprot -op "dacl:p_nc" -rec cont_obj ^
-actn clear -clr dacl ^
-actn rstchldrn -rst dacl
goto setacl_TeamB
:setacl_TeamB
%setacl_bin% ^
-on "%foldername%\TeamB" -ot file ^
-actn ace -ace "n:domain\Administrator;p:full;i:so,sc;m:set;w:dacl" ^
-actn ace -ace "n:domain\it-team;p:full;i:so,sc;m:set;w:dacl" ^
-actn ace -ace "n:domain\TeamB;p:read_ex,write,change,list_folder,write_dacl;i:so,sc;m:set;w:dacl" ^
-actn ace -ace "n:domain\TeamA;p:read_ex,list_folder;i:so,sc;m:set;w:dacl" ^
-actn ace -ace "n:domain\TeamC;p:read_ex,list_folder;i:so,sc;m:set;w:dacl" ^
-actn ace -ace "n:domain\TeamD;p:read_ex,list_folder;i:so,sc;m:set;w:dacl" ^
-actn setprot -op "dacl:p_nc" -rec cont_obj ^
-actn clear -clr dacl ^
-actn rstchldrn -rst dacl
:exit
exit
Problem ist, wenn ich mit einem User, der Mitglied der Gruppe TeamA ist, das Skript starte, dann bekomm ich von setACL die Fehlermeldung:
"Writing SD to ... failed. Zugriff verweigert."
Mit dem Administrator funktioniert es ohne Probleme.
Krieg ich das auch ohne Adminrechte zum laufen?
Hat da jemand eine Idee?