NTFS-Ordnerberechtigung ändern mit FOR-Schleife und cacls
Guten Morgen Leute,
ich muss für eine Exchange Migration eine ganz Menge Ordner erstellen, mit bestimmten Berechtigungen für diese.
Um mir das Arbeiten zu erleichtern habe ich eine Batch-Datei, die das für mich übernimmt - aber nicht ganz so funktioniert wie ich will!
Aus einer textdatei sollen alle Benutzer aus den jeweiligen Abteilungen (getrennt in *.TXT Files) in einer Variblen gespeichert und ein neuer Ordner erstellt werden.
Zusätzlich liest die Batch Datei in einem 2. Vorgang die Text-Datei erneut aus und fügt die Benutzer in einer FOR-Schleife mit CACLS hinzu.
Problem ist nur, dass beim ersetzen aller Access Control Entries das ganze mit Sind sie sicher ... J abgearbeitet werden muss....
Das soltle auch noch automatisch in die Batch, aber ich weiß nicht, wie ich das mache.
Evt. nur eine Kleinigkeit... Ich komme aber nicht drauf, obwohl ich schon einiges versucht habe.
Hier der Code:
Der angegeben Pfad ist nur ein Test-Pfad zu einer Datei, wird selbstverständlich noch geändert. Aus dieser Datei werden die User in die Variable gesetzt.
Hinter Zeile 2 wird die erste "Sind Sie sicher"-Abfrage gestartet und zwar so oft, wie auch Einträge in der Text-Datei sind.
Bei 10 Einträgen in der Text-Datei wird man 10 mal gefragt... bisschen nervig bei 300 Usern...
Ich wäre für Hilfe sehr dankbar!
(Nehme auch gerne andere Ratschläge zu meiner Problemlösung an, also Scriptgestaltung. Bezogen auf dieses Script würde ich aber gerne den Fehler wissen, bzw. die Problemlösung)
Mit freundlichen Grüßen
Freaky
ich muss für eine Exchange Migration eine ganz Menge Ordner erstellen, mit bestimmten Berechtigungen für diese.
Um mir das Arbeiten zu erleichtern habe ich eine Batch-Datei, die das für mich übernimmt - aber nicht ganz so funktioniert wie ich will!
Aus einer textdatei sollen alle Benutzer aus den jeweiligen Abteilungen (getrennt in *.TXT Files) in einer Variblen gespeichert und ein neuer Ordner erstellt werden.
Zusätzlich liest die Batch Datei in einem 2. Vorgang die Text-Datei erneut aus und fügt die Benutzer in einer FOR-Schleife mit CACLS hinzu.
Problem ist nur, dass beim ersetzen aller Access Control Entries das ganze mit Sind sie sicher ... J abgearbeitet werden muss....
Das soltle auch noch automatisch in die Batch, aber ich weiß nicht, wie ich das mache.
Evt. nur eine Kleinigkeit... Ich komme aber nicht drauf, obwohl ich schon einiges versucht habe.
Hier der Code:
FOR /F %%i IN (C:\Programme\test\Ordnersolltestheissen.txt) DO @MKDIR "C:\Programme\test\%%i"
FOR /F %%u IN (C:\Programme\test\Ordnersolltestheissen.txt) DO @CACLS "C:\Programme\test\%%u" /T /G "DOMAIN\%%u":F
FOR /F %%a IN (C:\Programme\test\Ordnersolltestheissen.txt) DO @CACLS "C:\Programme\test\%%a" /E /G "DOMAIN\USER1:F
FOR /F %%a IN (C:\Programme\test\Ordnersolltestheissen.txt) DO @CACLS "C:\Programme\test\%%a" /E /G "DOMAIN\administrator:F
Der angegeben Pfad ist nur ein Test-Pfad zu einer Datei, wird selbstverständlich noch geändert. Aus dieser Datei werden die User in die Variable gesetzt.
Hinter Zeile 2 wird die erste "Sind Sie sicher"-Abfrage gestartet und zwar so oft, wie auch Einträge in der Text-Datei sind.
Bei 10 Einträgen in der Text-Datei wird man 10 mal gefragt... bisschen nervig bei 300 Usern...
Ich wäre für Hilfe sehr dankbar!
(Nehme auch gerne andere Ratschläge zu meiner Problemlösung an, also Scriptgestaltung. Bezogen auf dieses Script würde ich aber gerne den Fehler wissen, bzw. die Problemlösung)
Mit freundlichen Grüßen
Freaky
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 98300
Url: https://administrator.de/contentid/98300
Ausgedruckt am: 22.11.2024 um 10:11 Uhr
2 Kommentare
Neuester Kommentar
Moin TobiisFreaky,
die cACLs.exe-Versionen, die ich kenne (egal ob deutsch oder englisch) kennen keinen Schalter /y oder /q für die automatsche Beantwortung der Sicherheitsabfrage.
Aber Du kannst in diesem Fall die Antwort "j" (oder "y" bei der US-Version) per Echo und Pipe geben.
Statt jetzt:: @cacls unterordner ....
Mit Bestätigung: @echo j|cACLs unterordner ....
Grüße
Biber
die cACLs.exe-Versionen, die ich kenne (egal ob deutsch oder englisch) kennen keinen Schalter /y oder /q für die automatsche Beantwortung der Sicherheitsabfrage.
Aber Du kannst in diesem Fall die Antwort "j" (oder "y" bei der US-Version) per Echo und Pipe geben.
Statt jetzt:: @cacls unterordner ....
Mit Bestätigung: @echo j|cACLs unterordner ....
Grüße
Biber