Задача: в домене domain.local в общей папке SHARE на сервере srv01 создать в автоматическом режиме личные папки для пользователей организационного подразделения Company, назначить такие права, при которых каждый пользователь имел бы доступ только в свою папку, не мог бы ее удалить/переименовать, мог бы создавать/удалять подпапки и файлы, но не мог бы становиться их владельцем. Для выполнения данной задачи используем утилиту icacls.
Import-Module ActiveDirectory
$users = Get-ADUser -SearchBase 'OU=Company,DC=domain,DC=local' -filter * | select samAccountName,Name
$share = '\\srv01\SHARE\';
$users | foreach {
$path = $share + $_.name
md $path
$acc = 'DOMAIN\' + $_.samAccountName
$cmd1 = 'icacls "' + $path + '" /inheritance:d /grant "' + $acc + '":(OI)(CI)(IO)M'
$cmd2 = 'icacls "' + $path + '" /grant "' + $acc + '":(AD,R,WD)'
cmd /c ($cmd1)
cmd /c ($cmd2)
}
В итоге права пользователя выглядят таким образом:

Осталось только на папку SHARE назначить всем пользователям разрешения "Только для чтения".
Import-Module ActiveDirectory
$users = Get-ADUser -SearchBase 'OU=Company,DC=domain,DC=local' -filter * | select samAccountName,Name
$share = '\\srv01\SHARE\';
$users | foreach {
$path = $share + $_.name
md $path
$acc = 'DOMAIN\' + $_.samAccountName
$cmd1 = 'icacls "' + $path + '" /inheritance:d /grant "' + $acc + '":(OI)(CI)(IO)M'
$cmd2 = 'icacls "' + $path + '" /grant "' + $acc + '":(AD,R,WD)'
cmd /c ($cmd1)
cmd /c ($cmd2)
}
В итоге права пользователя выглядят таким образом:
Осталось только на папку SHARE назначить всем пользователям разрешения "Только для чтения".
 
Комментариев нет:
Отправить комментарий