Я пытаюсь использовать 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')
.
Как указал Клейтон, контроль доступа будет M
скорее, чем C
. Я также хотел бы дополнительно отметить, что большинство дополнительных символов, которые вы вставляете в командную строку, не нужны. PowerShell довольно хорошо разбирается в командной строке без особой «помощи». Это должно работать, как ожидалось:
icacls C:\Temp\ACL /T /C /grant Everyone:F System:F Administrators:F DOMAIN\GroupName:M
Вы должны включать кавычки только в том случае, если что-то содержит в себе пробел (это то же самое, как если бы вы вводили команду в cmd.exe
Подсказка). Иногда нужно что-то немного изменить, но в большинстве случаев это «просто работает».
Дополнительные сведения см. В этой статье:
ИТ-профессионал сегодня - запуск исполняемых файлов в PowerShell
У меня был старый скрипт, который делал это ... ваш код выглядел правильно, очень похоже на мой. Однако я предоставлял полный контроль, а вы - изменение. Другие инструменты CLI, такие как SUBINACL
, CALCS
использовали "C" для изменения, но казалось бы ICACLS
решил использовать "M" для модификации.
Если вы измените ("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