Ordner Berechtigungen auf Server ändern
Hallo zusammen,
ich hoffe Ihr könnt mir bei meinem kleinen Problem helfen.
Wir haben mehrere File-Server bei denen wir die Berechtigungen ändern müssen.
Es gibt leider kein einheitliches Berechtigungskonzept und jetzt soll die lokale Administratoren Gruppe auf jeden Ordner Vollzugriff erhalten.
Bis jetzt sind die Ordner meistens nur auf die berechtigten User beschränkt.
Da die Vererbung bei sehr vielen Ordnern deaktiviert ist, ist es leider nicht möglich die benötigte Berechtigung nur auf dem obersten Ordner zu vergeben.
Wenn die Berechtigung durchgedrückt werden sind leider die ursprünglichen Berechtigungen überschrieben.
Gibt es vielleicht eine Möglichkeit über ein Script die benötigten Berechtigung auf alle Ordner, Unterordner und Dateien hinzuzufügen?
Ich danke euch sehr für eure Hilfe.
ich hoffe Ihr könnt mir bei meinem kleinen Problem helfen.
Wir haben mehrere File-Server bei denen wir die Berechtigungen ändern müssen.
Es gibt leider kein einheitliches Berechtigungskonzept und jetzt soll die lokale Administratoren Gruppe auf jeden Ordner Vollzugriff erhalten.
Bis jetzt sind die Ordner meistens nur auf die berechtigten User beschränkt.
Da die Vererbung bei sehr vielen Ordnern deaktiviert ist, ist es leider nicht möglich die benötigte Berechtigung nur auf dem obersten Ordner zu vergeben.
Wenn die Berechtigung durchgedrückt werden sind leider die ursprünglichen Berechtigungen überschrieben.
Gibt es vielleicht eine Möglichkeit über ein Script die benötigten Berechtigung auf alle Ordner, Unterordner und Dateien hinzuzufügen?
Ich danke euch sehr für eure Hilfe.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 232936
Url: https://administrator.de/contentid/232936
Ausgedruckt am: 15.11.2024 um 07:11 Uhr
11 Kommentare
Neuester Kommentar
Hallo lukyluky!
Sollte direkt aus einer CMD-Shell etwa so gehen:
Damit wird für alle Ordner (und Unterordner und Unterunterordner und ...) unterhalb von "D:\Startordner" in den Sicherheitseinstellungen einzeln die Gruppe Administratoren mit Vollzugriff hinzugefügt. Wenn Du "
Grüße
bastla
Sollte direkt aus einer CMD-Shell etwa so gehen:
for /d /r "D:\Startordner" %i in (*) do cacls "%i" /c /e /g Administratoren:F
/d
" weg lässt, werden Dateien bearbeitet.Grüße
bastla
Hallo lukyluky!
anzeigen lassen - es werden dann ausgehend von "D:\Startordner" die aktuellen Berechtigungen für alle Ordner und Dateien in die Datei "D:\Berechtigungen.txt" geschrieben.
Zum Testen solltest Du übrigens besser einmal "klein" anfangen und einen Ordner mit nur wenigen Unterordnern / Dateien als "Startordner" verwenden. Da jedes einzelne Objekt "angefasst" werden muss, wird die ganze Aktion vermutlich eine Weile dauern ...
Zur Kontrolle der vergebenen Berechtigungen könntest Du auch "AccessChk" und "AccessEnum" verwenden.
Grüße
bastla
Was meinst du mit "Dateien werden bearbeitet wenn man /d weglässt?"
Damit meine ich, dass mit "/d
" die Ordner und ohne "/d
" die Dateien bearbeitet werden.Wird der Administrator in deinem Beispiel ersetzt oder wird ein weiterer Administrator mit Vollzugriff hinzugefügt?
Es wird die Gruppe "Administratoren" hinzugefügt.Gibt es vielleicht noch die möglichkeit ein Log erstellen zu lassen um nachweisen zu können das alle Ordner und Dateien die Berechtigung erhalten haben?
Das kannst Du im Nachhinein mit einemcacls "D:\Startordner" /T>"D:\Berechtigungen.txt"
Zum Testen solltest Du übrigens besser einmal "klein" anfangen und einen Ordner mit nur wenigen Unterordnern / Dateien als "Startordner" verwenden. Da jedes einzelne Objekt "angefasst" werden muss, wird die ganze Aktion vermutlich eine Weile dauern ...
Zur Kontrolle der vergebenen Berechtigungen könntest Du auch "AccessChk" und "AccessEnum" verwenden.
Grüße
bastla
Hallo lukyluky!
Dann etwa so:
Inhalt der Datei "D:\Ordnerauswahl.txt"
Batch (ungetestet):
Grüße
bastla
Dann etwa so:
Inhalt der Datei "D:\Ordnerauswahl.txt"
d:\startordner\1
d:\startordner\2
d:\startordner\3
@echo off & setlocal
set "Liste=D:\Ordnerauswahl.txt"
for /f "usebackq delims=" %%o in ("%Liste%") do (
for /d /r "%%o" %%i in (*) do cacls "%%i" /c /e /g Administratoren:F
for /r "%%o" %%i in (*) do cacls "%%i" /c /e /g Administratoren:F
)
bastla
Hallo lukyluky!
Verwende zum Posten von Code (und auch der Ausgabezeilen) bitte die pasende Formatierung ...
Wenn Du jeden einzelnen Schritt per
Ansonsten kannst Du eigentlich nur testen, was bei Direkteingabe mit zB
passiert (das "
Wenn Du übrigens in "e:\dummies" nur eine Unterordnerebene hast, müsste in Deiner "e:\dummies\ordner.txt" als Startordner natürlich "e:\dummies" stehen, da ja nur unterhalb des jeweiligen Startordners liegenden Ordner verarbeitet werden (gilt nicht für Dateien - es werden auch direkt im Startordner befindliche Dateien einbezogen) ...
Grüße
bastla
Verwende zum Posten von Code (und auch der Ausgabezeilen) bitte die pasende Formatierung ...
Wenn Du jeden einzelnen Schritt per
echo
dokumentieren willst, musst Du das natürlich innerhalb der entsprechenden Schleifen machen, daher eher:echo off & setlocal
set "liste=e:\dummies\ordner.txt"
for /f "usebackq delims=" %%o in ("%liste%") do (
echo Bearbeite "%%o"
pause
for /d /r "%%o" %%i in (*) do (
echo Bearbeite "%%~fi"
cacls "%%i" /c /e /g administratoren:F
)
for /r "%%o" %%i in (*) do (
echo Bearbeite "%%~fi"
cacls "%%i" /c /e /g administratoren:F
)
)
pause
cacls "e:\dummies\1\Testdatei.txt" /e /g administratoren:F
/c
" habe ich absichtlich weggelassen) ...Wenn Du übrigens in "e:\dummies" nur eine Unterordnerebene hast, müsste in Deiner "e:\dummies\ordner.txt" als Startordner natürlich "e:\dummies" stehen, da ja nur unterhalb des jeweiligen Startordners liegenden Ordner verarbeitet werden (gilt nicht für Dateien - es werden auch direkt im Startordner befindliche Dateien einbezogen) ...
Grüße
bastla