bn2023

Rechtevergabe über icacls-Befehl ändern

Hallo,

ich habe eine Batchdatei, mit der ich die Rechte der Gruppe "TEST" ab Level 3 auf "Ändern" setze.
Das funktioniert sehr gut.

Der Code dafür sieht so aus:

icacls "Z:\Start\Level_1\Level_2\Level_3" /grant:r TEST:(CI)(OI)(M)  

Nun möchte ich jedoch gerne für die gleiche Gruppe "TEST" die Rechte für Level 1 + 2 auf "Lesen + Ausführen" ändern. Dort haben sie derzeit auch "Ändern"-Rechte.

Das bekomme ich irgendwie nicht hin...
Könnt Ihr da weiterhelfen?

Danke und Grüße,
BN
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 673455

Url: https://administrator.de/forum/icacls-rechte-aendern-windows-673455.html

Ausgedruckt am: 20.06.2025 um 12:06 Uhr

TK1987
TK1987 18.06.2025 aktualisiert um 16:21:23 Uhr
Goto Top
Moin,

Zitat von @BN2023:
Dort haben sie derzeit auch "Ändern"-Rechte.
Falls die ändern Rechte geerbt sind, Vererbung deaktivieren
icacls "Z:\Start\Level_1" /inheritance:r /grant TEST:(OI)(CI)(RX)  

falls die Rechte explizit vergeben waren, vorher zurücksetzen...
icacls "Z:\Start\Level_1" /reset  
icacls "Z:\Start\Level_1" /grant TEST:(OI)(CI)(RX)  
... oder vorher Löschen
icacls "Z:\Start\Level_1" /remove:g TEST  
icacls "Z:\Start\Level_1" /grant TEST:(OI)(CI)(RX)  

Gruß Thomas
nEmEsIs
nEmEsIs 18.06.2025 um 18:46:53 Uhr
Goto Top
Hi

Am elegantesten löst du dein Problem in dem du List Rechte setzt bzw. Ebene 1 und 2 leserechte und Ebene schreibrechte aber ohne Vererbungsunterbrechung. Das fällt einem sonst auf die Füße.

Hier wäre ein Ansatz allerdings in Powershell lässt sich aber auch mit icacls so umsetzen

NTFS Berechtigungstool mit Active Directory Gruppen Erstellung

Mit freundlichen Grüßen
Nemesis
BN2023
BN2023 19.06.2025 aktualisiert um 10:07:55 Uhr
Goto Top
Vielen Dank für Eure Tips.

Ich würde es gerne über meinen Ansatz machen mit icacls.

Sorry dass ich ein paar Angaben vergessen habe, die ich jetzt nachholen möchte.

Die Einstellungen sind im Moment so:

A) ROOT-Verzeichnis "Start":
- hier ist die Vererbung deaktiviert.
- "Geerbt von" steht auf "Keine"
- die Berechtigungen stehen für beide Gruppen auf "Ändern"

B) Levels 1 - 3:
- hier ist die Vererbung aktiviert
- "Geerbt von" steht auf "Start" (also vom ROOT)
- die Berechtigungen stehen für beide Gruppen auf "Ändern"

Ab Level 3 sollen die Berechtigungen für beide Gruppen ja so stehen bleiben, wie sie jetzt sind (also auf "Ändern"). Da müsste ich also dann wohl nichts ändern. Die Vererbung ist dort ja auch aktiviert, sodass neu erstellte Verzeichnisse dann dort auch das "Ändern"-Recht erhalten sollten... richtig?

Aber für die Level 1 - 2 sollen die Berechtigungen für beide Gruppen geändert werden auf "Lesen & Ausführen".
In diesen beiden Levels müsste dann wohl auch die Vererbung auf "Deaktiviert" geändert werden, nachdem sie korrekt auf "Lesen & Ausführen" gesetzt wurden... richtig?
Das wäre wohl dann der Code von @TK1987 im ersten Code-Feld.

Alle Änderungen sollen natürlich auch für sämtliche Unterverzeichnisse der jeweiligen Ebene gelten. Ist das dann automatisch so?

Grüße,
BN
TK1987
TK1987 19.06.2025 um 10:29:49 Uhr
Goto Top
Ab Level 3 sollen die Berechtigungen für beide Gruppen ja so stehen bleiben, wie sie jetzt sind (also auf "Ändern"). Da müsste ich also dann wohl nichts ändern.
Wenn du die Berechtigungen für Level1 änderst, ändern sich damit auch die Berechtigungen für Level 3 - da diese ja derzeit vererbt werden. Wenn du in Level 1 jetzt die Vererbung deaktivierst, erbt auch Level 3 natürlich nicht mehr von Root.

Du musst zuerst die vererbten Rechte in Level 3 durch explizite Berechtigungen ersetzen:
icacls "Z:\Start\Level_1\Level_2\Level_3" /inheritance:d  

Und dann erst die Vererbung in Level 1 deaktivieren und durch andere explizite Rechte ersetzen:
icacls "Z:\Start\Level_1" /inheritance:r /grant TEST:(OI)(CI)(RX)  GRUPPE2:(OI)(CI)(RX)  

Alle Änderungen sollen natürlich auch für sämtliche Unterverzeichnisse der jeweiligen Ebene gelten. Ist das dann automatisch so?
natürlich, das "(OI)" bedeutet "object inherit", also alle Dateien erben die Rechte und das "(CI)" bedeutet "container inherit", also alle Unterordner erben die Rechte.
BN2023
BN2023 19.06.2025 aktualisiert um 11:18:13 Uhr
Goto Top
Oh, super dass Du mir hier nochmal mit weiterem Code weitergeholfen hast.
Vielen Dank dafür...

Noch kurz zum Verständnis:

Die vererbten Rechte in Level 3 habe ich ja dann durch Code 1 durch explizite Berechtigungen ersetzt.
Danach hätte ich durch Code 2 die Vererbung in Level 1 deaktiviert und durch andere explizite Rechte ersetzt.

Dann hätte Level 3 die gewünschten "Ändern"-Rechte und Level 1 hätte die gewünschten "Lesen & Ausführen" Rechte.
Erhält diese dann Level 2 automatisch auch?

Am Ende soll es ja so sein:

- ROOT (Start) = "Lesen & Ausführen" für beide Gruppen (Test + Test1)
- Level 1 + Level 2 = ebenfalls "Lesen & Ausführen" für beide Gruppen (Test + Test1)
- Level 3 und alles, was darunter erstellt wird = "Ändern" für beide Gruppen (Test + Test1)

Nochmal Grüße und nen angenehmen Feiertag face-wink

BN
TK1987
TK1987 19.06.2025 um 11:28:02 Uhr
Goto Top
Zitat von @BN2023:
Erhält diese dann Level 2 automatisch auch?
Richtig, du sagst ja in Level 1 "TEST: (OI)(CI)(RX)" also die Rechte werden an Unterordner und somit also Level 2 weitervererbt.
Natürlich immer vorrausgesetzt, dass die Vererbung in Level 2 nicht deaktiviert wurde.
BN2023
BN2023 19.06.2025 aktualisiert um 12:13:37 Uhr
Goto Top
Danke Dir...

Ja, die Vererbung in Level 2 ist derzeit aktiviert und das werde ich natürlich auch nicht ändern und Deine Codes ändern das ja auch nicht. Von daher sollte es so funktionieren, wie Du es hier beschrieben hast.

Hmmm... den Code aus Deiner ersten Antwort muss ich doch dann nicht mehr ausführen, obwohl ja in Level 1 derzeit die Rechte aktiviert sind... richtig?

Das war der Code, zu dem Du geschrieben hattest:
Falls die ändern Rechte geerbt sind, Vererbung deaktivieren

icacls "Z:\Start\Level_1" /inheritance:r /grant TEST:(OI)(CI)(RX)    

Nochmals vielen Dank für Deine Hilfe.

Grüße,
BN