На моем ПК есть несколько дополнительных дисков. Большинство из них содержат старые копии Windows и Program Files. Мой ПК называется "PC", а моего администратора зовут "Tim". Я назначил владельца этих вторых дисков пользователю "PC\Tim", а также предоставил пользователю "PC\Tim" полный доступ к дискам. Затем я пытаюсь удалить папки Windows или Program Files на этих дисках и получаю сообщение.
«Вам необходимо разрешение от PC\Tim для внесения изменений в эту папку».
Текущий владелец этих папок указан как "Тим (PC\Tim)". Действующие разрешения для этих папок указывают, что этот пользователь имеет все права.
Абсурдные «ответы» в сообществе Microsoft, конечно же, предлагают что-то вроде «Используйте очистку диска» (что является откровенно необразованным ответом) или «просто переформатируйте диск» (форматирование позволяет избежать проблемы, а не решить ее).
Каковы правильные шаги по удалению этих старых файлов?
решение1
Откройте командную строку с правами администратора.
Выполните следующие команды по одной (замените «Z:\Program Files» на папку, которую вы хотите удалить):
takeown /F "Z:\Program Files" /A /R /D Y icacls "Z:\Program Files" /T /grant administrators:F rd /s /q "Z:\Program Files"
Примечание 1 - Язык ОС: takeown ... /D Y
Ввод Y означает «Да» и будет отличаться в зависимости от языка ОС. Папка Program Files и администраторы также могут называться по-разному.
Примечание 2. Более старые версии Windows: если icacls
и rd
не поддерживаются, попробуйте использовать cacls
и rmdir
вместо них.
Пояснения и документация:
Проблема может заключаться в том, что у вас нет необходимых разрешений в списки дискреционного контроля доступа (DACL)для папки и ее содержимого. DACLs определяет доверенных лиц, которым разрешен или запрещен доступ к защищаемому объекту. Поэтому простого предоставления права собственности на папку может быть недостаточно, но вам также необходимо предоставить разрешение в DACLs. Вы можете предоставить разрешение с помощью команды icacls, как показано в примере выше.Объяснение списков контроля доступа и DACL
забрать забрать документацию Администратор восстанавливает доступ к каталогам и их содержимому, который ранее был запрещен, делая группу администраторов владельцем./F [каталог]указывает, какой каталог,/Адает право собственности группе администраторов,/Рвыполняет это как рекурсивную операцию над каталогом, всеми файлами и подкаталогами,/Дподавляет запросы на подтверждение, если у пользователя нет разрешения «Список папок» со следующимиИопция, которая становится владельцем каталога. (Примечание: опция Y может отличаться в зависимости от языка ОС).
icacls документация icacls Предоставляет группе администраторов разрешения DAC на полный доступ к каталогу.[каталог]укажите, какой каталог,/Твыполняет операцию над всеми указанными файлами в каталоге и подкаталогах,/грантпредоставляет указанным пользователям права доступа с:Фчто дает полный доступ. (Примечание: имя группы administrators может отличаться в зависимости от языка ОС)
рд документация Удаляет каталог со всеми его подкаталогами и файлами./судаляет указанный каталог и его подкаталоги, включая все файлы,/допределяет тихий режим, поэтому вы не получаете запроса на подтверждение,[каталог]укажите, какой каталог следует удалить.
решение2
Для меня сработала упрощенная версияэто предложение:
- Переименуйте
Windows
папку вWindows.old
- Запустите очистку диска из меню «Пуск».
- Выберите диск, содержащий
Windows.old
папку. - Предыдущая «Установка(и) Windows» затем нажмите «ОК»
решение3
ПРИМЕЧАНИЕ: Теперь, когда я об этом думаю, вы должны иметь возможность начать с шага 4, вам просто нужно нажать кнопку «изменить разрешения», чтобы получить доступ. Я бы проверил, но у меня нет каталогов для удаления.
В Windows 10 (вероятно, также работает с Windows 7 и 8):
- Щелкните правой кнопкой мыши папку->Свойства->Безопасность->Дополнительно.
- Нажмите «Изменить» рядом с владельцем (вверху). Введите свое имя пользователя в поле и нажмите «Проверить имена». (Должно преобразоваться в стиль ИМЯ_МАШИНЫ\ИМЯ_ПОЛЬЗОВАТЕЛЯ.)
- Нажмите ОК, ОК, ОК, чтобы выйти из параметров безопасности.
Теперь вы являетесь владельцем каталога.
- Щелкните правой кнопкой мыши папку->Свойства->Безопасность->Дополнительно. (Снова.)
- Найдите «Пользователи» в списке разрешений. Щелкните по нему, выберите «Изменить» и выберите полный контроль.
- Внизу установите флажок «Заменить все записи разрешений для детей...».
- Нажмите OK, затем выберите Yes в окне предупреждения. Подождите, пока компьютер применит новые разрешения.
Теперь у вас должны быть разрешения, необходимые для удаления файлов. Сделайте это. (Проверено на папках Program Files и Windows.old.)
решение4
Просто переименуйте Program Files в Windows.old и запустите disk clean, чтобы очистить системные файлы. Тот же трюк работает с любой папкой, которую вы не можете удалить.