В Powershell, как я могу использовать переменную для удаления группы из разрешений папок - PullRequest
0 голосов
/ 01 ноября 2019

Я сейчас работаю над тем, чтобы заставить что-то работать. Я пытаюсь сделать следующее;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 в 'и' ', но пока не повезло.

заранее спасибо.

Пол.

1 Ответ

0 голосов
/ 01 ноября 2019

Тьфу ... кажется, что ft делает что-то странное ... в любом случае, удалив это, а затем сославшись на .identityreference в foreach, например, foreach ($ group в $ currentgroups.identityreference) добился цели.

allлучший.

Пол.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...