Hoi,
Ik ben bezig met het omzetten van de rechten op een folder structuur naar een group-based access via een script, maar ik kan nergens vinden of het commando icacls hetzelfde kan doen als een vinkje zetten bij "Replace all existing inheritable permissions on all descendants with inheritable permissions from this object"
of is er een andere manier om dit te doen vanuit een script?
de folder structuur moet er namelijk zo uit zien qua rechten:
level1: group based read access (all level groups read+write en all level groups read en level2 groups read-only)
level2: group based read access en group base write access ( per level2-folder een andere group)
level3 en verder: reset security naar inheritance van level2 folders
Het probleem zit dus bij de level3 folders, hier moet ik de rechten van resetten zodat ze de rechten van het level erboven hebben. En dat gebeurt niet als ik de rechten van level2 verander en inheritance aanzet. Aangezien het aantal level2 folders enorm is, wil ik dit niet met de hand doen door een vinkje te zetten bij "Replace all existing inheritable....."
Ik hoop dat het zo duidelijk is
heeft iemand een idee hoe ik dit kan doen?
voor de duidelijkheid, het script wat ik gemaakt het staat hieronder, de bedoeling is dat het script de ACL groepen aanmaakt in Active Directory op basis van de folder-naam en de rechten op de betreffende folders erop zet zonder de huidige ACL's weg te halen, vanwege migratie naar de nieuwe rechtenstructuur.
Ik ben bezig met het omzetten van de rechten op een folder structuur naar een group-based access via een script, maar ik kan nergens vinden of het commando icacls hetzelfde kan doen als een vinkje zetten bij "Replace all existing inheritable permissions on all descendants with inheritable permissions from this object"
of is er een andere manier om dit te doen vanuit een script?
de folder structuur moet er namelijk zo uit zien qua rechten:
level1: group based read access (all level groups read+write en all level groups read en level2 groups read-only)
level2: group based read access en group base write access ( per level2-folder een andere group)
level3 en verder: reset security naar inheritance van level2 folders
Het probleem zit dus bij de level3 folders, hier moet ik de rechten van resetten zodat ze de rechten van het level erboven hebben. En dat gebeurt niet als ik de rechten van level2 verander en inheritance aanzet. Aangezien het aantal level2 folders enorm is, wil ik dit niet met de hand doen door een vinkje te zetten bij "Replace all existing inheritable....."
Ik hoop dat het zo duidelijk is
voor de duidelijkheid, het script wat ik gemaakt het staat hieronder, de bedoeling is dat het script de ACL groepen aanmaakt in Active Directory op basis van de folder-naam en de rechten op de betreffende folders erop zet zonder de huidige ACL's weg te halen, vanwege migratie naar de nieuwe rechtenstructuur.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| @echo off
cls
SETLOCAL ENABLEDELAYEDEXPANSION
echo -------------------------------------------------------------
set /P drive=What should be the drive? :
set /P base-dir=What should be the base-directory? :
rem scan dept dirs
for /f "delims=," %%a in ('dir "%drive%\%base-dir%\" /aD /B') do (
rem add acl-group to domain
net localgroup "ACL-%%a-all-R" /ADD /domain
net localgroup "ACL-%%a-all-RW" /ADD /domain
rem Scan dept-subdirs,1 level deep
for /f "delims=," %%b in ('dir "%drive%\%base-dir%\%%a" /aD /B' ) do (
rem add acl-subgroup to domain
net localgroup "ACL-%%a-%%b-R" /ADD /domain
net localgroup "ACL-%%a-%%b-RW" /ADD /domain
rem remove inheritance and copy current acl's on dir
icacls "%drive%%base-dir%\%%a\%%b" /inheritance:d
rem add new acl's on department dir
cacls "%drive%%base-dir%\%%a" /E /P "domainname\ACL-%%a-%%b-R":R
rem add new subdir-acl's on department's subdir
cacls "%drive%%base-dir%\%%a\%%b" /E /P "domainname\ACL-%%a-%%b-RW":C
cacls "%drive%%base-dir%\%%a\%%b" /E /P "domainname\ACL-%%a-%%b-R":R
cacls "%drive%%base-dir%\%%a\%%b" /E /P "domainname\ACL-%%a-all-RW":C
rem add new global acl for on department's subdir
cacls "%drive%%base-dir%\%%a\%%b" /E /P "domainname\ACL-%%a-all-R":R
cacls "%drive%%base-dir%\%%a\%%b" /E /P "domainname\ACL-%%a-all-RW":C
cacls "%drive%%base-dir%\%%a" /E /P "domainname\ACL-%%a-all-R":R
cacls "%drive%%base-dir%\%%a" /E /P "domainname\ACL-%%a-all-RW":C
)
)
pause |
[ Voor 43% gewijzigd door sko op 21-09-2009 17:48 ]