Возможно, вы захотите развернуть все строки, которые вы используете для создания имени вашей группы безопасности, в чистую переменную - я считаю, что это может быть обидно. Убедитесь, что $secgroup
содержит правильное строковое значение, когда вы его создали.
Вы можете также создать правило вместе с типом объекта в одной строке.
$secgroup = "INTRA\FIL_$($Department)_$($Group)_Modify"
$modifyRule = New-Object System.Security.AccessControl.FileSystemAccessRule($secgroup,'DeleteSubdirectoriesAndFiles, Write, ReadAndExecute, Synchronize','ContainerInherit, ObjectInherit','None','Allow')
Кстати, если, по сути, вы хотите, чтобы ваши пользователи имели права на изменение содержимого без возможности удаления родительской папки, это должно сработать, если вы установите флаг InheritOnly (я его не проверял).
$modifyRule = New-Object System.Security.AccessControl.FileSystemAccessRule($secgroup,'Modify, Synchronize', 'ContainerInherit, ObjectInherit','InheritOnly','Allow')