Назад | Перейти на главную страницу

Измените права доступа к сетевой папке Windows с помощью инструментов командной строки

Это можно сделать без скачивания subinacl.exe вообще?

Старый вопрос, но мне недавно нужно было сделать это для нескольких домашних ресурсов, чтобы ограничить «Полный доступ». Хотя вы можете сделать это на уровне NTFS, требуется время для повторного применения, время для отмены, а такие инструменты, как ADUC MMC, могут вернуть разрешения.

Кажется, что нет встроенного инструмента командной строки для управления разрешениями на существующие общие ресурсы, только во время начальной настройки, но вы можете делать несколько грантов, поэтому, если общие ресурсы на мгновение отключаются, это не проблема, которую вы могли бы использовать:

NET SHARE example /DELETE /Y
NET SHARE example=C:\FolderPath /GRANT:Everyone,Change /GRANT:Administrators,Full /UNLIMITED /CACHE:None

Но это был не вариант для меня, поэтому в итоге я использовал отличный инструмент SetACL.exe, который также имеет возможность настраивать имена общих ресурсов.

SetACL.exe -on "example" -ot shr -actn ace -ace "n:S-1-1-0;p:change"
SetACL.exe -on "example" -ot shr -actn ace -ace "n:S-1-5-32-544;p:full"

Обратите внимание, что здесь используется «Хорошо известный SID» для всех (S-1-1-0) и локальных администраторов (S-1-5-32-544). Вы можете использовать это имя, но оно позволяет избежать поиска и любой возможности его смешивания с группой домена.

Для повышения эффективности несколько изменений можно объединить в одну команду:

SetACL.exe -on "example" -ot shr -actn ace -ace "n:S-1-1-0;p:change" -ace "n:S-1-5-32-544;p:full"

Обратите внимание на то, что команда SetACL нацелена на ИМЯ ДОБАВЛЕНИЯ, а не на путь к папке общего ресурса, который обычно используется для разрешений NTFS.

Может быть, на Windows 2003. Не пробовал ...

net share /grant 

Отредактируйте после комментария с машины Win 7 x64.

Обратите внимание [/GRANT:user,[READ | CHANGE | FULL]]

C:\Users\gbn>net share /?
The syntax of this command is:

NET SHARE
sharename
          sharename=drive:path [/GRANT:user,[READ | CHANGE | FULL]]
                               [/USERS:number | /UNLIMITED]
                               [/REMARK:"text"]
                               [/CACHE:Manual | Documents| Programs | BranchCach
e | None]
          sharename [/USERS:number | /UNLIMITED]
                    [/REMARK:"text"]
                    [/CACHE:Manual | Documents | Programs | BranchCache | None]
          {sharename | devicename | drive:path} /DELETE
          sharename \\computername /DELETE


C:\Users\gbn>

Вы смотрели на icacls.exe и cacls.exe? (как в System32 папка, хотя бы на Win7)