Skript Ordnererstellen und User Berechtigen
Hallo zusammen,
im Zuge einer AD-abhängigen Landschaft würde ich gern ein Script schreiben, welches Berechtigungen für einen User auf einen Ordner setzt.
Hallo zusammen,
Das Script sollte abfragen, wie die VZ Struktur ist, welcher Ordner berechtig werden soll, und der User der berechtigt werden soll.
Sollte der Ordner nicht vorhanden sein, sollte dieser erstellt werden.
Wenn der Ordner bereits existiert bekomme ich einen User auf diesen Ordner berechtigt. Die Vererbung für diesen User ist auch ausgeschaltet.
Mein großes Problem ist jetzt, wenn der Ordner noch nicht vorhanden ist, soll er erstellt werden (Dies allein stellt nicht das Problem dar). Das Porblem ist jetzt, die Vererbung für alle Vorhanden Nutzer (Administratoren, SYSTEM, Authentifizierte Nutzer) diese muss ausgeschaltet werden.
Ich habe hier auf der Seite gesucht und einen ähnlichen Beitrag gefunden, in dem es hieß, man solle die Berechtigungen für alle Nutzer einfach überschreiben. Aber so bekomme ich nur SYSTEM und Administratoren rein. Die Authentifizierten Nutzer nicht.
Hat da jemand ne Idee? Ich benutzte in meinem Skript cacls. Ich schreibe das Skript für Server 2003. Wenn ich das ganze für 2008 Schreiben würde/müsste muss ich ja mit icacls arbeiten. Sind dort die Befehle die gleichen? Bzw. die Syntax? Ich kann das jetzt so nicht testen. Kann da jemand was zu sagen?
Hier mal das Desaster:
@echo off
set /p vz=Bitte geben Sie die Struktur an, in welcher sich der Ordner befinden soll:
set /p ordner=Bitte geben Sie den Ordnernamen an, auf welchem der User berechtigt werden soll:
set/p user=Bitte geben Sie den User-Namen an:
if exist %vz%\%ordner% goto ende
if not exist %vz%\%ordner% md %vz%\%ordner%
goto ende2
:ende
echo Der Ordner war schon vorhanden
cacls %vz%\%ordner% /E /G %user%:F SYSTEM:F
:ende2
echo Der Ordner wurde erstellt
cacls %vz%\%ordner% /G %user%:F
cacls %vz%\%ordner% /E /G Administratoren:F
cacls %vz%\%ordner% /E /G SYSTEM:F
cacls %vz%\%ordner% /E /G Authentifizierte*:C
Wie gesagt letzte Zeile Funktioniert nicht, da er halt nörgelt gibts nicht, bzw. nicht findet.
Ach eine Kleinigkeit noch, eigentlich sollte der User mit Speziellem Recht berechtig werden. So wie ich das Skript geschrieben habe bekommt er zur Zeit Vollzugriff (F) gibt es da auch ne Möglichkeit als Speziell das zu setzen? Nach der Syntax habe ich nichts gefunden.
Gruß,
Sascha
im Zuge einer AD-abhängigen Landschaft würde ich gern ein Script schreiben, welches Berechtigungen für einen User auf einen Ordner setzt.
Hallo zusammen,
Das Script sollte abfragen, wie die VZ Struktur ist, welcher Ordner berechtig werden soll, und der User der berechtigt werden soll.
Sollte der Ordner nicht vorhanden sein, sollte dieser erstellt werden.
Wenn der Ordner bereits existiert bekomme ich einen User auf diesen Ordner berechtigt. Die Vererbung für diesen User ist auch ausgeschaltet.
Mein großes Problem ist jetzt, wenn der Ordner noch nicht vorhanden ist, soll er erstellt werden (Dies allein stellt nicht das Problem dar). Das Porblem ist jetzt, die Vererbung für alle Vorhanden Nutzer (Administratoren, SYSTEM, Authentifizierte Nutzer) diese muss ausgeschaltet werden.
Ich habe hier auf der Seite gesucht und einen ähnlichen Beitrag gefunden, in dem es hieß, man solle die Berechtigungen für alle Nutzer einfach überschreiben. Aber so bekomme ich nur SYSTEM und Administratoren rein. Die Authentifizierten Nutzer nicht.
Hat da jemand ne Idee? Ich benutzte in meinem Skript cacls. Ich schreibe das Skript für Server 2003. Wenn ich das ganze für 2008 Schreiben würde/müsste muss ich ja mit icacls arbeiten. Sind dort die Befehle die gleichen? Bzw. die Syntax? Ich kann das jetzt so nicht testen. Kann da jemand was zu sagen?
Hier mal das Desaster:
@echo off
set /p vz=Bitte geben Sie die Struktur an, in welcher sich der Ordner befinden soll:
set /p ordner=Bitte geben Sie den Ordnernamen an, auf welchem der User berechtigt werden soll:
set/p user=Bitte geben Sie den User-Namen an:
if exist %vz%\%ordner% goto ende
if not exist %vz%\%ordner% md %vz%\%ordner%
goto ende2
:ende
echo Der Ordner war schon vorhanden
cacls %vz%\%ordner% /E /G %user%:F SYSTEM:F
:ende2
echo Der Ordner wurde erstellt
cacls %vz%\%ordner% /G %user%:F
cacls %vz%\%ordner% /E /G Administratoren:F
cacls %vz%\%ordner% /E /G SYSTEM:F
cacls %vz%\%ordner% /E /G Authentifizierte*:C
Wie gesagt letzte Zeile Funktioniert nicht, da er halt nörgelt gibts nicht, bzw. nicht findet.
Ach eine Kleinigkeit noch, eigentlich sollte der User mit Speziellem Recht berechtig werden. So wie ich das Skript geschrieben habe bekommt er zur Zeit Vollzugriff (F) gibt es da auch ne Möglichkeit als Speziell das zu setzen? Nach der Syntax habe ich nichts gefunden.
Gruß,
Sascha
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 205505
Url: https://administrator.de/forum/skript-ordnererstellen-und-user-berechtigen-205505.html
Ausgedruckt am: 23.04.2025 um 01:04 Uhr
6 Kommentare
Neuester Kommentar
Hallo Sascha,
Probiers mal mit
Wenn du im Befehl das /E weglässt werden die Berechtigungen ersetzt anstatt bearbeitet.
Die Vererbung kannst mit folgenden Optionen von cacls festlegen:
weitere infos zu cacls und icacls => http://ss64.com/nt/cacls.html
#Grüße Uwe
Zitat von @Saotan:
cacls %vz%\%ordner% /E /G Authentifizierte*:C
Wie gesagt letzte Zeile Funktioniert nicht, da er halt nörgelt gibts nicht, bzw. nicht findet.
cacls %vz%\%ordner% /E /G Authentifizierte*:C
Wie gesagt letzte Zeile Funktioniert nicht, da er halt nörgelt gibts nicht, bzw. nicht findet.
Probiers mal mit
cacls %vz%\%ordner% /E /G "Authenticated Users":C
Die Vererbung kannst mit folgenden Optionen von cacls festlegen:
Inherited folder permissions are displayed as:
OI - Object inherit - This folder and files. (no inheritance to subfolders)
CI - Container inherit - This folder and subfolders.
IO - Inherit only - The ACE does not apply to the current file/directory
These can be combined as follows:
(OI)(CI) This folder, subfolders, and files.
(OI)(CI)(IO) Subfolders and files only.
(CI)(IO) Subfolders only.
(OI) (IO) Files only.
weitere infos zu cacls und icacls => http://ss64.com/nt/cacls.html
#Grüße Uwe
Prinzipiell werden ja bei einer Ordnerstellung die User (SYSTEM usw.) automatisch hinzugefügt und gesetzt. Gibt es keine
Möglichkeit die Vererbung schon bei der Ordnererstellung auszuschalten?
Normalerweise nicht, außer man setzt im Root des Laufwerks die Zugriffsrechte für "System" etc. das diese nicht für Unterordner gelten, dann werden sie beim Erstellen eines Objektes nicht vererbt.Möglichkeit die Vererbung schon bei der Ordnererstellung auszuschalten?
Ansonsten muss nach Erstellen des Ordners eben die Rechte "Ersetzen" anstatt sie zu bearbeiten. Mit ICACLS geht das Entfernen mit der Option /inheritance:r / bei cacls lässt man die Option /E weg
Zitat von @Saotan:
Danke für die schnelle Antwort. Das hatte ich im /help beim cacls Befehl schon gelesen, aber verstehe dann nicht, wie die
Syntax funktioniert.
Danke für die schnelle Antwort. Das hatte ich im /help beim cacls Befehl schon gelesen, aber verstehe dann nicht, wie die
Syntax funktioniert.
die Vererbung wird vor dem jeweiligen Recht eingesetzt also z.B. so:
cacls "ORDNER" /G "User":(OI)(CI)C