У меня такая же проблема, как и у "леосенко". Мой сценарий ниже;
$groupperm = @(
('(RW)',$readwrite,$inheritanceFlag,$propagationFlag),
('(RO)',$readonly,$inheritanceFlag,$propagationFlag),
('(LF)',$Listfolder,'None','None'))
foreach ($group in $groupperm){
$grouptxt = "FS1-$groupname " + $group[0]
$accessControlEntry = New-Object System.Security.AccessControl.FileSystemAccessRule @($grouptxt, $group[1], $group[2], $group[3], $type)
$objACL.AddAccessRule($accessControlEntry)
Set-ACL $folderpath $objACL
$accessControlEntry
}
Группы применяются к $ folderpath просто отлично, но в последней группе "применяется к" вместо того, чтобы быть "Только эта папка", это "Эта папка, подпапки и файлы"согласно другим.
Если я проверяю ACL с (Get-ACL $folderpath).Access
, я получаю
FileSystemRights : Read, Synchronize
AccessControlType : Allow
IdentityReference : MELTD\FS1-testing (LF)
IsInherited : False
InheritanceFlags : ContainerInherit, ObjectInherit
PropagationFlags : None
для последней группы, но вывод из $ accesscontrolentry при запуске сценария (дляпоследняя группа) показывает;
FileSystemRights : Read, Synchronize
AccessControlType : Allow
IdentityReference : FS1-testing (LF)
IsInherited : False
InheritanceFlags : None
PropagationFlags : None
Может ли кто-нибудь пролить мне свет?
заранее спасибо,
Пол.
РЕДАКТИРОВАТЬ .. Хорошо, после некоторого тестирования ... если я установлю разрешение с помощью
icacls $folderpath /grant $grouptxt":(R)"
, я получу желаемый набор разрешений "только для этой папки", однако, если я добавлю эту строку в сценарий и приму только первуюдва разрешения одна и та же строка устанавливает разрешение для «этой папки, вложенных папок и файлов», например
$groupperm = @(
('(RW)',$readwrite,$inheritanceFlag,$propagationFlag),
('(RO)',$readonly,$inheritanceFlag,$propagationFlag)
)
$grouptxt = 'FS1-'+$groupname+' (LF)'
icacls $folderpath /grant $grouptxt":(R)"
foreach ($group in $groupperm){
$grouptxt = "FS1-$groupname " + $group[0]
$accessControlEntry = New-Object System.Security.AccessControl.FileSystemAccessRule @($grouptxt, $group[1], $group[2], $group[3], $type)
$objACL.AddAccessRule($accessControlEntry)
Set-ACL $folderpath $objACL
$accessControlEntry
}
Что-то очень сломано!