Разрешения 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 незамедлительный). Иногда вам нужно что-то изменить, но в основном это будет "просто работать".

Для получения дополнительной информации см. Эту статью:

IT Pro сегодня - запуск исполняемых файлов в PowerShell

Другие вопросы по тегам