Поврежденные разрешения: восстановление доступа к папке и ее подобъектам
Хотя большинство ответов, опубликованных в ответ на вопрос, имеют определенную ценность, ИМХО ни один из них не дает полного решения. Следующее (может быть) идеальное решение для Windows 7 , если вы заблокированы в папке из-за поврежденных настроек разрешений:
icacls "c:\folder" /remove:d /grant:r Everyone:(OI)(CI)F /T
Для Windows 10 пользователь / SID должен быть указан после опции /remove:d
:
icacls "c:\folder" /remove:d Everyone /grant:r Everyone:(OI)(CI)F /T
.
Примечания
Команда применяется к указанному каталогу.
Указание пользователя «Все» устанавливает максимально широкое разрешение, поскольку оно включает каждого возможного пользователя.
Опция "/ remove: d" удаляет любые явные настройки DENY, которые могут существовать, так как они переопределяют явные настройки ALLOW: необходимые предварительные условия для создания новой настройки ALLOW. Это всего лишь мера предосторожности, так как часто отсутствует настройка DENY, но она безопаснее, чем извините.
Параметр "/ grant" создает новый параметр ALLOW, явное разрешение, которое заменяет (": r") любые и все явные параметры ALLOW, которые могут существовать.
Параметр «F» (т. Е. Созданное разрешение) делает это предоставлением полного контроля.
Параметр "/ T" добавляет рекурсию, применяя эти изменения ко всем текущим подобъектам в указанном каталоге (т.е. файлам и подпапках), а также к самой папке.
Параметры "(OI)" и "(CI)" также добавляют рекурсию, применяя эти изменения к подобъектам, созданным впоследствии.
,
ADDENDUM (2019/02/10) -
Командная строка Windows 10 выше была любезно предложена мне сегодня, так что вот она. У меня нет Windows 10 для тестирования, но, пожалуйста, попробуйте, если у вас есть (и тогда, пожалуйста, оставьте комментарий ниже).
Изменение касается только удаления настройки DENY в качестве первого шага. Вполне может быть, что нет ни одного параметра DENY, поэтому этот параметр может не иметь значения. Насколько я понимаю, в Windows 7 вам не нужно указывать пользователя после / remove: d , но я могу ошибаться!