Как получить разрешения на удаление файлов в Windows 7?

64

Я обновил операционную систему моего ноутбука с Windows XP до Windows 7. Теперь на компьютере есть несколько оставшихся файлов из Windows XP. Если я пытаюсь удалить их, я получаю следующую ошибку:

Вам нужно разрешение для выполнения этого действия.

Вам необходимо разрешение от S-1 -.... для внесения изменений в эту папку.

Что странно, так это то, что я вошел в систему с единственной учетной записью пользователя на этом компьютере, и у меня есть права администратора. Я попытался отключить UAC, но все еще не могу удалить файлы.

Как я могу принудительно удалить эти файлы?

Лайош
источник

Ответы:

85

Возможно, что при обновлении старый пользователь XP не был хорошо преобразован в Windows 7 - поэтому эти файлы принадлежат фантомному пользователю. Вы можете выполнить следующие шаги:

  1. Взять на себя ответственность за файлы. Запустите командную строку (cmd) от имени администратора и введите:

    takeown /f file
    takeown /f directory /r
    
  2. Дайте себе полные права на файл:

    cacls file /G username:F
    cacls directory /T /G username:F
    

caclsможет использоваться с подстановочными знаками и обходом каталогов. См. Также:
Безопасность из командной строки с помощью команды CACLS
CACLS.

Для более развитого сценария Visual Basic см .: Xcacls.vbs для изменения разрешений NTFS .

harrymc
источник
1
Команда takeown приводит к ошибке: C: \> takeown / f olddir / r ОШИБКА: текущий вошедший в систему пользователь не имеет прав владения файлом (или папкой) "C: \ olddir".
Лайос
6
Вы запустили командную строку, щелкнув правой кнопкой мыши на cmd.exe и «Запуск от имени администратора»?
harrymc
1
Спасибо что подметил это. Я не работал в качестве администратора. Теперь это работает!
Лайос
11
Я по-прежнему получаю сообщение «ОШИБКА: доступ запрещен» даже после запуска cmd от имени администратора!
BT
2
@Pacerier: Да, я называю «фантом» учетную запись пользователя (не встроенную), созданную на одном компьютере, и поэтому не существует на другом.
harrymc
29

Аргументы командной строки для принятия права собственности должны быть в таком порядке

takeown / f <каталог> / r
/ f имя файла или шаблон имени каталога
/ г рекурс

ПРИМЕЧАНИЕ: caclsсейчас устарела, пожалуйста, используйте icacls

icacls <каталог> / grant <пользователь>: f / t
 полный доступ
/ т рекурс
Лессан Ваэзи
источник
5

В моем случае владения в Windows 7 было недостаточно для моих конкретных обстоятельств (моя установка Windows 7 была сделана с использованием Symantec Backup Exec с другого компьютера, и папка находилась под контролем исходного кода).

Мне пришлось выполнить еще два шага:

  1. Щелкните правой кнопкой мыши папку, содержащую файлы, которые вы хотите удалить, и выберите «Свойства» -> «Безопасность» -> «Дополнительно» -> выберите своего пользователя -> «Изменить разрешение» -> «Отметить». Замените все разрешения дочернего объекта наследуемыми разрешениями из этот объект "

  2. Удалите файлы в папках вручную от самого внутреннего до корня. Удалите папки, когда они пусты, т. Е. Если у вас есть «folder1-> folder2», сначала вы удаляете содержимое folder2, затем удаляете folder2 и т. Д.

Если других решений недостаточно, вы можете попробовать эти дальнейшие шаги.

Durden81
источник
1

Это S-1-...GUID, оставшийся от предыдущей установки. Очевидно NEWSYSTEM\Administrator, не является частью OLDSYSTEM\Administratorsгруппы.

Вы должны стать владельцем диска, позволить изменениям распространяться, и тогда вы сможете удалить файлы.

tsilb
источник
1

Обычно так takeownи (i)caclsделают.

Кроме того, вы можете использовать Unlocker, чтобы удалить его (вероятно, потребуется перезагрузка),
или использовать PsExec от Sysinternals, чтобы получить привилегии пользователя SYSTEM и удалить эти файлы (этот будет работать для некоторых файлов, может не работать для других).

Но если в этой папке много файлов, takeownпривилегиям потребуется много времени (это заняло у меня около 20 минут, в зависимости от скорости жесткого диска). Так что в этом случае любой LiveCD / DVD / USB работает быстрее, так как им не требуются какие-либо привилегии для удаления папки.

форсунка
источник