Ordner per Batch erstellen aus Textdatei und Berechtigungen
Hallo Zusammen,
ich möchte mehrere Ordner erstellen.
Die Ordnernamen stehen untereinander in einer Textdatei.
Diese soll ausgelesen werden und entsprechende Ordner erstellen.
Anschließend sollen dem jeweiligen Ordner entsprechende Berechtigungen verpasst werden.
Sicherheitsgruppen mit entsprechenden Mitgliedern sind im AD vorhanden.
Also Berechtigungen für Admin + Sicherheitsgruppe x
Jemand eine Idee? Bei ... hab ich nix gefunden
VG & Thx im Voraus!
ich möchte mehrere Ordner erstellen.
Die Ordnernamen stehen untereinander in einer Textdatei.
Diese soll ausgelesen werden und entsprechende Ordner erstellen.
Anschließend sollen dem jeweiligen Ordner entsprechende Berechtigungen verpasst werden.
Sicherheitsgruppen mit entsprechenden Mitgliedern sind im AD vorhanden.
Also Berechtigungen für Admin + Sicherheitsgruppe x
Jemand eine Idee? Bei ... hab ich nix gefunden
VG & Thx im Voraus!
Please also mark the comments that contributed to the solution of the article
Content-Key: 162841
Url: https://administrator.de/contentid/162841
Printed on: May 4, 2024 at 08:05 o'clock
10 Comments
Latest comment
Hallo Xaero1982!
"
"
"
"
Grüße
bastla
P.S.:
Tatsächlich hast Du weder ein Betriebssystem (ab Vista gibt es "
"
usebackq
" erlaubt die Verwendung von Dateinamen in Anführungszeichen (würden ansonsten als zu zerlegender Text interpretiert)"
delims=
" gibt das oder die Trennzeichen zum Zerlegen der jeweiligen Zeile an - wenn, so wie hier, nach dem "=" nix steht, wird auch nicht zerlegt, sondern die Zeile "am Stück" in die Laufvariable übernommen (wichtig, wenn zB der Ordnername Leerzeichen enthielte, da diese als Default-Trennzeichen gelten)"
2>nul
" unterdrückt die Ausgabe von Fehlermeldungen (hier für den Fall, dass der Ordner bereits existierte)"
echo j|
" gibt die Antwort auf die Frage, ob Du denn tatsächlich sicher wärst, dass die Berechtigungen neu gesetzt werden sollen, gleich vorwegGrüße
bastla
P.S.:
PS: War das Ironie mit den ausführlichen Informationen?!
Wenn Du fragen musst ... Tatsächlich hast Du weder ein Betriebssystem (ab Vista gibt es "
icacls
") genannt, noch den Inhalt der Textdatei näher beschrieben (zB, ob vollständige Pfade oder für jeden Ordner eine oder mehrere zu berechtigende Gruppen enthalten sind, ...).
Hallo Xaero1982!
Wenn es zu jedem Ordner nur eine Gruppe (durch Komma getrennt - und bitte ohne Leerzeichen um das Komma herum) gibt, dann etwa so:
Wenn Du auch noch unterschiedliche Berechtigungen zu vergeben hättest, könntest Du gleich
als Beispiel daher
in die Textdatei schreiben und die Rechte-Angabe in der Zeile 6 weg lassen:
Grüße
bastla
Also was ich noch bräuchte wäre die Möglichkeit die entsprechende Sicherheitsgruppe mit in der Textdatei mit Anzugeben.
Hatte ich eigentlich schon erwartet ... Wenn es zu jedem Ordner nur eine Gruppe (durch Komma getrennt - und bitte ohne Leerzeichen um das Komma herum) gibt, dann etwa so:
@echo off & setlocal
set "Liste=D:\Ordnerliste.txt"
for /f "usebackq tokens=1-2 delims=," %%i in ("%Liste%") do (
md "%%i" 2>nul
echo j|cacls "%%i" /G Administratoren:F %%j:C
)
Ordnername,Sicherheitsgruppe:Berechtigung
Testordner,Sicherheitsgruppe1:C
echo j|cacls "%%i" /G Administratoren:F %%j
bastla
Hallo Xaero1982!
Zum "
"
Grüße
bastla
Zum "
usebackq
" sage ich diesmal nix ... "
tokens=1-2
" legt fest, dass die ersten beiden Teilstücke (entstehen durch die Trennung anhand es "delimiters" Komma) der Zeile verwendet werden sollen (Default wäre nur 1. Teil)Woher nimmt der sich das "%%j"?
Der kennt das Alphabet und weiß daher, was nach "i" kommt ; außerdem weiß er, dass es 2 Teile geben soll - es müssen daher auch 2 Variablen verwendet werden ...Grüße
bastla