Разрешения PowerShell Icacls для группы домена
Я пытаюсь использовать icacls для установки разрешений для группы домена, но по какой-то причине это не работает.
icacls "C:\Temp\ACL" /T /C /grant ("Everyone"+':F') ("System"+':F') ("Administrators"+':F') ("DOMAIN\groupname"+':C') >> C:\temp\c.log
Я пытаюсь запустить его с помощью Powershell, но получаю следующую ошибку:
Invalid parameter "DOMAIN\groupname:C"
Я пробовал несколько решений, и это работает без ("DOMAIN\groupname"+':C')
,
2 ответа
У меня был старый скрипт, который делал это... ваш код выглядел правильно, очень похожий на мой. Однако я предоставлял Полный контроль, а ты предоставлял Изменения. Другие инструменты CLI, такие как SUBINACL
, CALCS
использовали "С" для изменения, но казалось бы ICACLS
решил использовать "М" для Modify.
Если вы измените ("DOMAIN\groupname"+':C')
в ("DOMAIN\groupname"+':M')
тебе повезет больше
Из вывода об использовании ICACLS:
perm is a permission mask and can be specified in one of two forms:
a sequence of simple rights:
N - no access
F - full access
M - modify access
RX - read and execute access
R - read-only access
W - write-only access
D - delete access
Как указал Клейтон, контроль доступа будет M
скорее, чем C
, Кроме того, я бы также отметил, что большинство дополнительных символов, которые вы вставляете в командную строку, не являются необходимыми. PowerShell довольно хорошо разбирает командную строку без особой "помощи". Это должно работать как ожидалось:
icacls C:\Temp\ACL /T /C /grant Everyone:F System:F Administrators:F DOMAIN\GroupName:M
Вы должны включать кавычки, только если что-то содержит пробел (это так же, как если бы вы вводили команду в cmd.exe
незамедлительный). Иногда вам нужно что-то изменить, но в основном это будет "просто работать".
Для получения дополнительной информации см. Эту статью: