Я сейчас работаю над тем, чтобы заставить что-то работать. Я пытаюсь сделать следующее;1. Получить существующие группы с разрешениями на папку (на основе подстановочного знака) 2. Удалить эти группы из папки
Мой скрипт ниже;
$currentgroups = (get-acl $folderpath).access | where-object -property identityreference -like '*FS1*' | ft identityreference
$objACL = Get-ACL $folderpath
foreach ($group in $currentgroups){
$accessremoval = New-Object System.Security.AccessControl.FileSystemAccessRule @($group, 'Modify', 'ContainerInherit', 'None', 'Allow')
$objACL.RemoveAccessRuleAll($accessremoval)
set-acl $folderpath $objACL
}
$ currentgroups работает просто замечательнои если я ввожу его, он возвращает список из двух групп (в этом случае).
Я упал в цикле foreach и, в частности, получил бит $ objacl.removaccessruleAll ($ accessremoval) для работыпоскольку он возвращает следующее:
Исключение, вызывающее «RemoveAccessRuleAll» с аргументом (ами) «1»: «Некоторые или все ссылки на идентификаторы не могут быть переведены.»
Если я ввожу имя группыв $ accessremoval например
$accessremoval = New-Object System.Security.AccessControl.FileSystemAccessRule @('FS1-Engineering (RO)', 'Modify', 'ContainerInherit', 'None', 'Allow')
Работает просто отлично ... что я делаю не так? Я пытался поместить $ Group в 'и' ', но пока не повезло.
заранее спасибо.
Пол.