Subinacl com loop for para aplicar permissões a uma lista de pastas

0

Estou tendo um problema com o subinacl e esperava que alguém pudesse ajudar. Tentei pesquisar neste site e em vários sites on-line e não encontrei a resposta que estava procurando. (Talvez eu não saiba os termos apropriados para pesquisar).

Estou usando o Windows Server 2008 R2 Enterprise. Eu tenho um conjunto de pastas que foram originalmente criadas com certas permissões para restringir USUÁRIOS de fazer certas coisas em e para certas pastas (mover as pastas, excluí-las e / ou criar novas), mas em algum momento, alguém mexeu nas coisas e as permissões alteradas, permitindo ao USERS acesso total a tudo.

Eu tenho um conjunto de pastas com as permissões corretas configuradas. Então eu usei subinacl para copiar as permissões da pasta de amostra usando o seguinte comando em um arquivo de lote:

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

Eu abri o arquivo de log que foi criado usando o comando acima, e vejo o seguinte texto:

===============================
+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

Edite o nome da pasta acima (a sequência de texto após +File e salve-a como new_folder_name.log. Posso criar outro arquivo em lote e playfile para clonar / aplicar as permissões do sample_folder_name à pasta que editei usando o seguinte:

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

Mas eu tenho um monte de pastas que eu preciso aplicar as permissões, e eu queria saber se eu poderia combinar subinacl com for /f e ter o comando loop através de um arquivo de texto com uma lista das pastas que Eu quero clonar as permissões para em vez de editar o arquivo de log uma pasta de cada vez. Eu tentei criar um loop usando o seguinte:

: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

Eu tenho o arquivo de texto, ListOfFolders.txt, que lista todas as pastas do projeto que eu quero aplicar as permissões de sample_folder_name. No entanto, parece que as permissões são aplicadas à pasta listada em new_folder_name.log (a sequência de texto após +File ) em vez da lista de pastas em ListOfFolders.txt.

Espero que esta seja uma solução "simples" e que alguém possa me ajudar. Por favor, deixe-me saber se há algo que eu possa esclarecer ou se ter informações adicionais seria útil para produzir uma solução.

    
por cecinestpasunnom 14.06.2018 / 02:14

0 respostas