Как я могу предоставить разрешения пользователю для каталога (чтение, запись, изменение) с помощью командной строки Windows?
277
Как я могу предоставить разрешения пользователю для каталога (чтение, запись, изменение) с помощью командной строки Windows?
По состоянию на Vista, cacls
устарела. Вот первые несколько строк помощи:
C:\>cacls
NOTE: Cacls is now deprecated, please use Icacls.
Displays or modifies access control lists (ACLs) of files
Вы должны использовать icacls
вместо этого. Вот как вы предоставляете Джону полный контроль над D:\test
папкой и всеми ее подпапками:
C:\>icacls "D:\test" /grant John:(OI)(CI)F /T
Согласно документации MS:
F
= Полный контрольCI
= Container Inherit - этот флаг указывает, что подчиненные контейнеры будут наследовать этот ACE.OI
= Object Inherit - этот флаг указывает, что подчиненные файлы будут наследовать ACE./T
= Применять рекурсивно к существующим файлам и подпапкам. ( OI
и CI
применяется только к новым файлам и подпапкам). Кредит: комментарий @AlexSpence.Для полной документации вы можете запустить " icacls
" без аргументов или посмотреть документацию Microsoft здесь и здесь
C:\>icacls "D:\test" /grant "John:(OI)(CI)F" /T
Вы также можете использовать ICACLS.
Предоставить Пользователи группы Полный доступ к папке:
Чтобы предоставить ИЗМЕНЯЮТ разрешения для пользователей IIS для
C:\MyFolder
(если вам нужен ваш IIS имеет способность R / W файлы в определенную папку):Если вы делаете ICACLS /? Вы сможете увидеть все доступные варианты.
источник
cacls
это прошло, это еще больше оснований для использования icacls ./grant Users:(OI)(CI)F
использовалосьUsers
на что-то еще или НЕТ? По словамicacls "C:\MyFolder" /grant Users:F
Откройте командную строку, затем выполните эту команду:
F
дает полный доступ./q /c /t
применяет разрешения к подпапкам.Примечание: иногда «Запуск от имени администратора» поможет.
источник
Используйте
cacls
команду. Смотрите информацию здесь .источник
cacls
актуально; это все еще доступно вWindows 10
; Microsoft также отказалась быcmd.exe
от поддержки Powershell.cmd.exe
это не считается устаревшим и вряд ли таковым, так что это вовсе не точка зрения в пользуicacls
, а совсем наоборот.cacls.exe
. Я также не упомянул, чтоcmd.exe
это уже устарело. Я думаю, что люди должны по крайней мере знать о его доступности в более высоких версиях даже для обратной совместимости или по любой другой причине.Я пробую следующий способ, и он работает для меня:
1. открыть
cmd.exe
2.
takeown /R /F *.*
3.
icacls * /T /grant [username]:(D)
4.
del *.* /S /Q
Так что файлы могут стать моими собственными правами доступа и назначить «Удалить», а затем я могу удалить файлы и папки.
источник
Поврежденные разрешения: восстановление доступа к папке и ее подобъектам
Хотя большинство ответов, опубликованных в ответ на вопрос, имеют определенную ценность, ИМХО ни один из них не дает полного решения. Следующее (может быть) идеальное решение для Windows 7, если вы заблокированы в папке из-за поврежденных настроек разрешений:
Для Windows 10 пользователь / SID должен быть указан после
/remove:d
опции:,
Примечания :
Команда применяется к указанному каталогу.
Указание пользователя «Все» устанавливает максимально широкое разрешение, поскольку оно включает каждого возможного пользователя.
Параметр "/ remove: d" удаляет любые явные настройки DENY, которые могут существовать, поскольку они переопределяют явные настройки ALLOW: необходимые предварительные условия для создания новой настройки ALLOW. Это всего лишь мера предосторожности, так как часто нет настройки DENY, но лучше, чем потом сожалеть.
Параметр "/ grant" создает новый параметр ALLOW, явное разрешение, которое заменяет (": r") любые и все явные параметры ALLOW, которые могут существовать.
Параметр «F» (т. Е. Созданное разрешение) делает это предоставлением полного контроля.
Параметр "/ T" добавляет рекурсию, применяя эти изменения ко всем текущим подобъектам в указанном каталоге (то есть файлам и подпапкам), а также к самой папке.
Параметры «(OI)» и «(CI)» также добавляют рекурсию, применяя эти изменения к подобъектам, созданным впоследствии.
,
ДОБАВЛЕНИЕ (2019/02/10) -
Командная строка Windows 10 выше была любезно предложена мне сегодня, так что вот она. У меня нет Windows 10, чтобы проверить это, но, пожалуйста, попробуйте, если у вас есть (и тогда вы, пожалуйста, оставьте комментарий ниже).
Изменение касается только удаления настройки DENY в качестве первого шага. Вполне может быть, что нет ни одной настройки DENY, так что эта опция может не иметь значения. Насколько я понимаю, в Windows 7 вам не нужно указывать пользователя после / удалить: d, но я могу ошибаться!
,
ДОБАВЛЕНИЕ (2019/11/21) -
Пользователь astark рекомендует заменить « Все» термином * S-1-1-0, чтобы команда не зависела от языка. У меня установлена английская версия Windows, поэтому я не могу протестировать это предложение, но оно кажется разумным.
источник
Invalid parameter "/remove:d"
Я боролся с этим на некоторое время и только комбинируя ответы в этой теме работал для меня (на Windows 10):
1. Откройте CMD или PowerShell и перейдите в папку с файлами
2. takeown / R / F .
3. icacls * / T / Грант Дан: F
Удачи!
источник
На тот случай, если на этой странице есть кто-то еще, если вы хотите объединить различные разрешения в одной команде, я использовал это:
Обратите внимание на строку csv для различных разрешений.
источник
С помощью сценария Excel VBA для обеспечения и создания учетных записей. Мне нужно было предоставить полные права доступа к папке и подпапкам, которые были созданы инструментом с помощью учетной записи «x» наших администраторов для нашего нового пользователя.
cacls выглядел примерно так: cacls \ FileServer \ Users \ Имя пользователя / e / g Домен \ Имя пользователя: C
Мне нужно было перенести этот код на Windows 7 и выше. Мое решение оказалось:
icacls \ FileServer \ Users \ Имя пользователя / грант: r Домен \ Имя пользователя: (OI) (CI) F / t
/ grant: r - Предоставляет указанные права доступа пользователя. Разрешения заменяют ранее предоставленные явные разрешения. Без: r разрешения добавляются к любым ранее предоставленным явным разрешениям.
(OI) (CI) - это папка, подпапки и файлы.
F - Полный доступ
/ t - пройти через все подпапки, чтобы найти файлы / каталоги.
Это дало мне папку на этом сервере, чтобы пользователь мог видеть только эту папку и создавал подпапки, чтобы они могли читать и записывать файлы. А также создавать новые папки.
источник
XCACLS.VBS - очень мощный скрипт, который будет изменять / редактировать информацию ACL. Справка c: \ windows \ system32 \ cscript.exe xcacls.vbs возвращает все параметры и параметры.
Вы можете получить официальный дистрибутив на странице поддержки Microsoft.
источник
XCACLS.VBS
можно найти?Массовое создание папок и предоставление разрешений работает с помощью приведенного ниже сценария powershell.
Примечание: вы должны создать такое же имя пользователя домена в CSV-файле, в противном случае вы получите проблемы с разрешениями
источник
источник
отличная точка Кэлин Дари
У меня было много скриптов для использования cacls. Я перемещаю их в icacls, но когда я не могу найти скрипт для изменения томов корневого монтирования, пример: d: \ datafolder. Я наконец написал сценарий ниже, который монтирует том как временный диск, затем применяет сек. затем размонтирует его. Это единственный способ, которым я обнаружил, что вы можете обновить безопасность root-монтирования.
1 получает GUID для монтирования папки во временный файл, затем считывает GUID для монтирования тома в качестве временного диска X: применяет сек и регистрирует изменения, затем отключает том только с диска X:, чтобы смонтированная папка не изменялась и не прерывалась. затем применяется сек.
Вот пример моего сценария:
источник
Я являюсь администратором, и какой-то сценарий установил разрешение «Запретить» на мое имя для всех файлов и подпапок в каталоге. Выполнение
icacls "D:\test" /grant John:(OI)(CI)F /T
команды не сработало, потому что казалось, что оно не удаляло право «Запретить» из моего имени из этого списка.Единственное, что сработало для меня, это сброс всех разрешений с помощью
icacls "D:\test" /reset /T
команды.источник
в windows 10 работает без "c:>" и ">"
Например:
(также это исправляет ошибки 2502 и 2503)
источник
Вот что сработало для меня:
Вручную откройте папку, доступ к которой запрещен.
Выберите исполняемый файл / файл приложения в этой папке.
Щелкните правой кнопкой мыши на нем и перейдите к Properties->Compatibility
Теперь посмотрите Privilege Levelи проверьте это наRun As Administrator
Нажмите на Change Settings for all users.
Проблема решена сейчас.
источник