Применяет ли эта команда ICACLS параметры к дочерним элементам?

Я пытаюсь использовать ICACLS в powershell, чтобы установить несколько разрешений.

Применяет ли эта команда ICACLS также разрешение к дочерним элементам в том же запуске?

icacls "D:\Folder" /grant "Domain\ADGroup":(OI)(CI)RX

Если да, то есть ли способ отключить это? Разве я не могу установить разрешения только для родительской папки?

Я все равно полностью сбрасываю каждый дочерний элемент после этого, чтобы каждое беспорядочное разрешение/владелец удалялось, и каждый дочерний элемент снова наследовал правильные разрешения.

Но это займет двойное количество времени, если предыдущая команда уже выполняет каждый дочерний элемент и применяет указанное мной разрешение.


person mariu5    schedule 29.08.2016    source источник
comment
Это не powershell, это cmd и icalcs (устаревшее приложение). Ты пробовал? Несколько тестовых папок, чтение icacls /? и проверка с помощью Свойства->Безопасность->Дополнительно будут иметь большое значение. :-)   -  person Frode F.    schedule 29.08.2016
comment
(OI) обозначает наследование объекта (файлы), а (CI) обозначает наследование контейнера (папки). Вы, вероятно, захотите удалить их обоих, если это действительно то, что вам нужно. ACL иногда могут быть очень сложными, будьте осторожны;)   -  person Poorkenny    schedule 29.08.2016
comment
@Poorkenny Это наследство, которое он хочет. Ему не нужны прямые ACE по каждому пункту.   -  person Frode F.    schedule 29.08.2016
comment
@ФродеФ. Хорошая точка зрения. Тогда я не думаю, что есть что-то изменить. IIRC вам нужно указать /T, если вы хотите рекурсивно применять к подпапкам.   -  person Poorkenny    schedule 29.08.2016
comment
@ФродеФ. Да, точно. я хочу, чтобы наследование было установлено, но не применяло разрешение к дочерним элементам в одном и том же запуске, поскольку позже я сбрасываю их по отдельности. Я, возможно, должен был разъяснить это немного лучше. Извини за это. и да, я провел довольно много тестов :), но я не мог понять, как добиться того, чего я хочу прямо сейчас.   -  person mariu5    schedule 30.08.2016


Ответы (1)


Нет, разрешения применяются только к D:\Folder, но вложенные папки и файлы наследуют разрешения, указанные вами.

Если бы вы использовали /T, он установил бы права доступа для каждого файла, поэтому старайтесь избегать этого.

/t Выполняет операцию со всеми указанными файлами в текущем каталоге и его подкаталогах.

Icacls

person Frode F.    schedule 29.08.2016
comment
Да, я знаю об этом переключателе. но делает ли это то же самое, что и использование /reset для каждого дочернего элемента? или он просто применяет новое разрешение, которое я указал для родительской папки, ко всем дочерним элементам и оставляет все остальное как есть? моя цель - установить одну новую группу с разрешением на чтение и выполнение в родительской папке, а затем рекурсивно сбросить каждый дочерний элемент. я хочу убедиться, что все остальные разрешения, которые я не указал в родительской папке, удалены. но тогда как я могу применить разрешение к родительской папке с наследованием, не применяя это уже к дочерним элементам? - person mariu5; 30.08.2016
comment
Нет, icacls "D:\Folder" /grant "Domain\ADGroup":(OI)(CI)RX не будет сбрасывать вложенные папки. Он только добавит разрешение в Folder и позволит дочерним элементам наследовать их. Если бы вы использовали /T, он также применялся бы ко всем подэлементам напрямую, а все остальное оставалось бы как есть. Вам нужно запустить сброс до или после добавления разрешения. Опять пробовали? Или прочитать справку по ссылке, которую я дал? Вам потребуется 3 папки и 5 минут, чтобы проверить это самостоятельно, это лучший способ научиться. :-) - person Frode F.; 30.08.2016
comment
Да, как я уже сказал, я провел довольно много тестов, а также взглянул на вашу ссылку. Я в основном спрашиваю здесь, есть ли способ применить новое разрешение, не запуская его сразу для всех дочерних элементов. Но похоже, что это невозможно. Спасибо за помощь в любом случае :) - person mariu5; 30.08.2016
comment
Я не понимаю. Вы специально просите удалить (сбросить) старые разрешения для всех дочерних элементов, но не хотите, чтобы они запускались для всех дочерних элементов. Чтобы сбросить разрешения для всех элементов, вам нужно разрешить ему касаться всех элементов, он не может удалить то, что не видит. Затем вы применяете одно разрешение (в вашем вопросе) к верхнему уровню. Удачи - person Frode F.; 30.08.2016
comment
Я думаю, вы неправильно понимаете. Неважно, что я делаю сначала (устанавливаю новое разрешение или сбрасываю каждый дочерний элемент). Оба раза он будет проходить через все дочерние элементы. Чего я пытаюсь добиться, так это того, что только один пробегает все дочерние элементы, в которых каждый дочерний элемент сбрасывается, а также наследует мое новое примененное разрешение. но это возможно только в том случае, если icacls "D:\Folder" /grant "Domain\ADGroup":(OI)(CI)RX не передает свои настройки сразу всем дочерним элементам после запуска команды. но опять же, кажется, что это невозможно. - person mariu5; 30.08.2016