Это своего рода интересная проблема, поэтому, пожалуйста, медведь со мной здесь:Пакетный скрипт для обеспечения Наследование на 3-й папки уровня
У меня есть три уровня вложенных папок, используемых для синхронизации файлов для конечных пользователей устройств - на на первом уровне у администратора есть разрешения, на втором уровне конечные пользователи имеют (явно & индивидуальных) разрешений, а на третьем уровне есть контент (файлы и обычно больше папок).
Проблема возникает, когда (иногда) содержимое, перемещаемое на третий уровень, не наследует разрешения из папки над ним, поэтому наши пользователи заканчивают тем, что в своих каталогах они не имеют прав (и поэтому , невозможно синхронизировать данные).
Чтобы исправить это, я пытаюсь написать пакетный скрипт (который будет выполняться по ежедневному расписанию), который копается в папках третьего уровня и сбрасывает флаг наследования в списках ACL. Важно, чтобы этот скрипт не касался разрешений на папках второго уровня (поскольку он удалит явные права для конечных пользователей).
Вот сценарий, я работаю с (да это очень просто):
SET base=C:\testPrivate
SET subfolders=.\*
FOR /r %base% %%a in (.) do
(
icacls.exe %subfolders% /reset /t
)
exit /b
Проблема со сценарием я пытаюсь построить в настоящее время является то, что он сбрасывает разрешения на все (в том числе второй уровень) ниже любого каталога, над которым он работает.
Есть ли флаг или переменная, которую я могу использовать, которая обрабатывает рабочий каталог флага/r и передает его в% подпапок%, так что icacls обрабатывает только папки третьего уровня?
Благодарим Вас за отзыв, но я начала работать с этим: 'SET база = C: \ testPrivate FOR/d %% а в (% база% \ *) делать ( icacls.exe %% \ */t/reset >>% base% \ output.txt ) exit/b' – user2363189
Это интересно, но ОК: вы сделали это. – Endoro