He escrito el siguiente archivo por lotes que hace un gran trabajo al revisar todas las carpetas comenzando con el número 3 y aplicar permisos de carpeta a cualquier subcarpeta de 2010. A continuación se muestra un ejemplo de archivos por lotes:
para /D %%f en (D:\Data\3*) haga icacls "%%f\2010" /inheritance:r /grant:r "Domain Admins":(OI)(CI)F
Pregunta: ¿Cómo puedo mejorar este script para permitirme aplicar los permisos a una carpeta específica debajo de CUALQUIER carpeta dentro de las carpetas que comienzan con 3?
Aquí hay un ejemplo de mi intento fallido:
para /D %%f en (D:\Data\3*) haga icacls "%%f*\specificfolder" /inheritance:r /grant:r "Domain Admins":(OI)(CI)F
Respuesta1
Con el siguiente árbol de directorios:
D
Datos
31245 Cliente
cualquier carpeta
carpeta especifica
31246 Cliente
cualquier carpeta
carpeta especifica
El siguiente código aplicará los permisos de seguridad que especificó a ambos directorios llamados "carpeta específica".
@echo off
for /D %%f in ("D:\Data\3*") do for /D %%d in ("%%f\*") do icacls "%%d\specificfolder" /inheritance:r /grant:r "Domain Admins":(OI)(CI)F
NOTA: esto utiliza bucles FOR anidados que no son compatibles con DOS (COMMAND.COM). Esto funcionará bien con un sistema NT (CMD.EXE).