Я написал следующий пакетный файл, который отлично справляется со своей задачей, прочесывая все папки, начинающиеся с цифры 3, и применяя разрешения к любой подпапке 2010. Пример пакетных файлов приведен ниже:
для /D %%f в (D:\Data\3*) do icacls "%%f\2010" /inheritance:r /grant:r "Администраторы домена":(OI)(CI)F
Вопрос: Как улучшить этот скрипт, чтобы иметь возможность применять разрешения к определенной папке, находящейся ниже ЛЮБОЙ папки внутри папок, начинающихся с 3?
Вот пример моей неудачной попытки:
для /D %%f в (D:\Data\3*) do icacls "%%f*\specificfolder" /inheritance:r /grant:r "Администраторы домена":(OI)(CI)F
решение1
Со следующим деревом каталогов:
Д
Данные
31245 Клиент
любаяпапка
конкретнаяпапка
31246 Клиент
любаяпапка
конкретнаяпапка
Приведенный ниже код применит указанные вами разрешения безопасности к обоим каталогам с именем «specificfolder».
@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
ПРИМЕЧАНИЕ. Здесь используются вложенные циклы FOR, которые не поддерживаются DOS (COMMAND.COM). Это будет работать нормально с системой NT (CMD.EXE).