Berechtigungen via Skript einstellen. Skript setzt Lesen-Verweigerungseintrag?
Moin,
ich stehe leider total auf dem Schlauch und komme nicht mehr weiter. Aber erst einmal etwas zum Hintergrund:
wir haben hier einen Windows Storage Server 2008 R2 Standard als Mitgliedsserver eine Windows Domäne auf welchen wir unsere Projekte ablegen. Die Ordnerstruktur sieht abgekürzt wie folgt aus
\\Server\Projekte\2016\16000
\\Server\Projekte\2016\16001
\\Server\Projekte\2016\16002
...usw. Die Struktur geht zwar noch tiefer, aber das ist erstmal irrelevant.
Von den Berechtigungen soll das ganze so aussehen, dass die Mitarbeiter nichts ändern oder löschen können außer ab der 3. Ebene, also alles was tiefer im Ordner 16000 beispielsweise kommt, da können die User wilde Sau spielen.
Da das sehr viele Ordner sind, wollte ich ein kleines Batch-Skript mit icacls schreiben, welches mir die Berechtigungen setzt, da das händisch sehr aufwändig wäre. Mein Skript sieht bisher so aus:
Meine Logik war, dass ich quasi alles erlaube für diesen Ordner, Unterordner und Dateien und dann einen Verweigerungseintrag für das Löschen nur für diesen Ordner einstelle. Wenn ich diese Berechtigungen so per Hand einstelle, dann funktioniert alles super. Wenn ich das Skript laufen lasse, dann sieht auf dem ersten Blick alles erfolgreich aus, allerdings haben die User dann nicht mehr weiter als Order 2016. Ich sehe zwar noch die einzelnen aber wenn ich darauf klicke, erhalte ich eine Fehlermeldung:
Sobald ich aber händisch in die GUI zum Einstellen der Berechtigungen gehe (es sieht alles so aus wie als hätte ich es auch händisch eingestellt, auch die effektiven Berechtigungen sehen alle super aus), und dort nur eine oder irgendeine weitere Berechtigung anlege oder entferne zu der bestehenden dann funktioniert der Zugriff wieder tadellos.
Vielleicht hat ja jemand eine Idee oder weiß sofort Bescheid, was ich falsch gemacht habe und kann mir helfen.
Ansonsten wünsche ich schon mal allen ein frohes Fest und einen guten Rutsch!
ich stehe leider total auf dem Schlauch und komme nicht mehr weiter. Aber erst einmal etwas zum Hintergrund:
wir haben hier einen Windows Storage Server 2008 R2 Standard als Mitgliedsserver eine Windows Domäne auf welchen wir unsere Projekte ablegen. Die Ordnerstruktur sieht abgekürzt wie folgt aus
\\Server\Projekte\2016\16000
\\Server\Projekte\2016\16001
\\Server\Projekte\2016\16002
...usw. Die Struktur geht zwar noch tiefer, aber das ist erstmal irrelevant.
Von den Berechtigungen soll das ganze so aussehen, dass die Mitarbeiter nichts ändern oder löschen können außer ab der 3. Ebene, also alles was tiefer im Ordner 16000 beispielsweise kommt, da können die User wilde Sau spielen.
Da das sehr viele Ordner sind, wollte ich ein kleines Batch-Skript mit icacls schreiben, welches mir die Berechtigungen setzt, da das händisch sehr aufwändig wäre. Mein Skript sieht bisher so aus:
@ECHO OFF
SET I=0
:PR10
IF %I% == 10 GOTO PR100
icacls \\Server\Projekte\2016\1600%I% /grant "Domäne\Mitarbeiter":(OI)(CI)(D,RC,GR,GW,GE,RD,WD,AD,REA,WEA,X,DC,RA,WA)
icacls \\Server\Projekte\2016\1600%I% /deny "Domäne\Mitarbeiter":(D)
SET /A I=%I%+1
GOTO PR10
:PR100
...
..
.
Meine Logik war, dass ich quasi alles erlaube für diesen Ordner, Unterordner und Dateien und dann einen Verweigerungseintrag für das Löschen nur für diesen Ordner einstelle. Wenn ich diese Berechtigungen so per Hand einstelle, dann funktioniert alles super. Wenn ich das Skript laufen lasse, dann sieht auf dem ersten Blick alles erfolgreich aus, allerdings haben die User dann nicht mehr weiter als Order 2016. Ich sehe zwar noch die einzelnen aber wenn ich darauf klicke, erhalte ich eine Fehlermeldung:
"\\Server\Projekte\2016\16001" ist nicht verfügbar. Wenn sich der Speicherort auf diesem PC befindet, stellen Sie sicher, dass das Gerät oder Laufwerk angeschlossen oder der Datenträger eingelegt ist, und wiederholen Sie den Vorgang. Stellen Sie im Fall eines Netzwerkspeicherorts sicher, dass Sie mit dem Netzwerk oder Internet verbunden sind, und wiederholen Sie den Vorgang. Falls der Speicherort weiterhin nicht gefunden wird, wurde er möglicherweise verschoben oder gelöscht.
Sobald ich aber händisch in die GUI zum Einstellen der Berechtigungen gehe (es sieht alles so aus wie als hätte ich es auch händisch eingestellt, auch die effektiven Berechtigungen sehen alle super aus), und dort nur eine oder irgendeine weitere Berechtigung anlege oder entferne zu der bestehenden dann funktioniert der Zugriff wieder tadellos.
Vielleicht hat ja jemand eine Idee oder weiß sofort Bescheid, was ich falsch gemacht habe und kann mir helfen.
Ansonsten wünsche ich schon mal allen ein frohes Fest und einen guten Rutsch!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 291594
Url: https://administrator.de/forum/berechtigungen-via-skript-einstellen-skript-setzt-lesen-verweigerungseintrag-291594.html
Ausgedruckt am: 26.12.2024 um 16:12 Uhr
3 Kommentare
Neuester Kommentar
Guck Dir mal https://social.technet.microsoft.com/Forums/windows/en-US/430f61ee-b278- ... an.
Laut dem hat icacls einen Bug was das Verweigern angeht.
Laut dem hat icacls einen Bug was das Verweigern angeht.