Subinacl mit for-Schleife, um Berechtigungen auf eine Liste von Ordnern anzuwenden

390
cecinestpasunnom

Ich habe ein Problem mit subinacl und hoffte, dass jemand helfen könnte. Ich habe versucht, diese Website und verschiedene Websites online zu durchsuchen und konnte die Antwort nicht finden, nach der ich gesucht habe. (Vielleicht kenne ich einfach nicht die richtigen Suchbegriffe, die gesucht werden sollen.)

Ich verwende Windows Server 2008 R2 Enterprise. Ich habe eine Reihe von Ordnern, die ursprünglich mit bestimmten Berechtigungen eingerichtet wurden, um den Benutzer daran zu hindern, bestimmte Aufgaben in und auf bestimmte Ordner zu erledigen (Verschieben der Ordner, Löschen und / oder Erstellen neuer), aber irgendwann hat jemand Dinge durcheinander gebracht up und die Berechtigungen wurden geändert, so dass Benutzer vollen Zugriff auf alles haben.

Ich habe eine Reihe von Ordnern mit den richtigen Berechtigungen eingerichtet. Also habe ich subinacl verwendet, um die Berechtigungen aus dem Beispielordner mit dem folgenden Befehl in einer Batchdatei zu kopieren:

"..\subinacl.exe" /noverbose /nostatistic /outputlog="folder\name.log" /subdirectories "folder\sample_folder_name" /display

Ich habe die Protokolldatei geöffnet, die mit dem obigen Befehl erstellt wurde, und der folgende Text wird angezeigt:

=============================== +File X:\Projects\YEAR\RandomText\StandardText =============================== /control=0x3000 /owner =builtin\administrators /primary group =domain\domain users /audit ace count =0 /perm. ace count =4 /pace =system Type=0x0 Flags=0x3 AccessMask=0x1f01ff /pace =builtin\administrators Type=0x0 Flags=0x3 AccessMask=0x1f01ff /pace =builtin\users Type=0x0 Flags=0x3 AccessMask=0x1200a9 /pace =domain\administrator Type=0x0 Flags=0x3 AccessMask=0x1f01ff 

Ich bearbeite den +FileOrdnernamen oben (die Textzeichenfolge hinterher und speichere ihn als new_folder_name.log. Ich kann eine weitere Batchdatei erstellen und playfiledie Berechtigungen des sample_folder_name auf den Ordner klonen / anwenden, den ich folgendermaßen bearbeitet habe:

"..\subinacl.exe" /nostatistic /playfile "new_folder_name.log"

Aber ich habe eine Reihe von Ordnern, die ich die Berechtigungen, anwenden müssen, und ich habe mich gefragt, ob ich kombinieren könnte subinaclmit for /fund haben die Befehlsschleife durch eine Textdatei mit einer Liste der Ordner, die ich stattdessen die Berechtigungen zu klone von Bearbeiten Sie die Protokolldatei Ordner für Ordner. Ich habe versucht, eine Schleife mit folgendem zu erstellen:

:START FOR /F "Tokens=1" %%a in (ListOfFolders.txt) Do ( IF "%%a" == "END" GOTO END  rem List permissions to log file: CALL "..\subinacl.exe" /noverbose /nostatistic /outputlog="folder\name.log" /subdirectories "folder\sample_folder_name" /display \\%%a\  rem Restore permissions: CALL "..\subinacl.exe" /nostatistic /playfile new_folder_name.log \%%a\  ) :END 

Ich habe die Textdatei ListOfFolders.txt, die alle Projektordner aufführt, für die ich die Berechtigungen von sample_folder_name anwenden möchte. Es sieht jedoch so aus, als würden die Berechtigungen auf den Ordner angewendet, der in der Datei new_folder_name.log (der Textzeichenfolge nach +File) aufgelistet ist, und nicht auf die Liste der Ordner in ListOfFolders.txt.

Ich hoffe, dass dies eine "einfache" Lösung ist und dass mir jemand helfen kann. Bitte lassen Sie mich auch wissen, ob ich etwas klären kann oder ob zusätzliche Informationen hilfreich sind, um eine Lösung zu finden.

0

0 Antworten auf die Frage