Как установить наследование прав для дочерних папок

Все об администрировании Windows NT/2000/2003/2008/2012 Server (в т.ч. R2) серверов. Групповые политики, домены, безопасность и пр. То, чего не найдешь в бескрайних просторах Интернета. Решения тех проблем, которые не решаются типовыми ответами, которые можно получить в техподдержке Майкрософта - а именно: переустановить продукт или купить какой-ть другой лицензионный диск.


Модератор: UncleFather

Аватара пользователя
UncleFather
Site Admin
Сообщения: 1505
Зарегистрирован: 17 авг 2004 16:20, Вт
Контактная информация:

Как установить наследование прав для дочерних папок

Сообщение UncleFather »

Проблема:

Имеется файловый сервер с папкой, в которой лежит множество пользовательских папок. По условиям задачи - права от родительской папки на пользовательские папки наследовать нельзя! Необходимо добавить нового пользователя с правами на изменение ко всем пользовательским папкам так, чтобы эти права распространились и на дочерние папки.

Решение:

Создаем PowerShell скрипт (файлик с именем ChgPerm.ps1)

Код: Выделить всё

$inheritCO = [system.security.accesscontrol.InheritanceFlags]"ContainerInherit, ObjectInherit"
$propagationIO = [system.security.accesscontrol.PropagationFlags]"InheritOnly"
$PropagationN = [system.security.accesscontrol.PropagationFlags]"None"
foreach ($item in Get-ChildItem -LiteralPath D:\Users_Dirs\ -Force | Where-Object {!$item.PSIsContainer}) {
echo $item
$ACL = Get-Acl D:\Users_Dirs\$item
$AccessRule = new-object System.Security.AccessControl.FileSystemAccessRule(
    "Domain\User1", "Modify", $inheritCO, $propagationN,  "Allow"
)
$ACL.SetAccessRule($AccessRule)
$AccessRule = new-object System.Security.AccessControl.FileSystemAccessRule(
    "Domain\User2", "Modify", $inheritCO, $propagationN,  "Allow"
)
$ACL.SetAccessRule($AccessRule)
$AccessRule = new-object System.Security.AccessControl.FileSystemAccessRule(
    "SYSTEM", "FullControl", $inheritCO, $propagationN,  "Allow"
)
$ACL.SetAccessRule($AccessRule)
$ACL | Set-Acl D:\Users_Dirs\$item
}

здесь:

  • $propagationIO - используем в случае, если права нужно ставить ТОЛЬКО на дочерние папки пользовательских папок;

  • $propagationN - используем в случае, если права нужно ставить и на дочерние папки и на пользовательские папки;

Этот пример добавит к существующим следующие права с наследованием на все дочерние подпапки папки "D:\Users_Dirs\":

  • Domain\User1 - на изменение

  • Domain\User12- на изменение

  • System - полные права


Alexander A. Manaeff©

Понравилась статья? Будем крайне признательны за репосты в соцсетях! Материально поддержать проект можно здесь

Мои странички:
ВКонтакте
Одноклассники
Youtube
Facebook
Instagram

Изображение
Изображение
Изображение
Изображение