Як отримати дозволи на видалення файлів у Windows 7?


62

Я оновив ОС мого ноутбука з Windows XP до Windows 7. Зараз на комп'ютері є деякі файли, що залишилися з Windows XP. Якщо я спробую їх видалити, отримаю таку помилку:

Для виконання цієї дії потрібен дозвіл.

Для внесення змін у цю папку потрібен дозвіл від S-1 -.....

Що дивно, що я увійшов в систему з єдиним обліковим записом користувача на цій машині, і я маю права адміністратора. Я спробував вимкнути UAC, але не можу видалити файли.

Як змусити видалення цих файлів?

Відповіді:


83

Можливо, коли оновлення, старий користувач 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 .


Команда takeown призводить до помилки: C: \ _ takeown / f olddir / r ПОМИЛКА: поточний зареєстрований користувач не має прав власності на файл (або папку) "C: olddir".
lajos

5
Ви запустили командний рядок правою кнопкою миші на cmd.exe і "Запуск від імені адміністратора"?
harrymc

Дякуємо, що вказали це. Я не працював як адміністратор. Зараз вона працює!
lajos

10
Я все ще отримую "ПОМИЛКА: Доступ заборонено" навіть після запуску cmd як адміністратора!
B T

1
@Pacerier: Так, я називаю "фантом" користувальницьким (не вбудованим) обліковим записом, створеним на одному комп'ютері, і тому не існує на іншому.
harrymc

27

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

takeown /f <directory> /r
/f  filename or directory name pattern
/r  recurse

ПРИМІТКА: cacls тепер застаріла, використовуйте icacls

icacls <directory> /grant <user>:f /t
 f  full access
/t  recurse

4

У моєму випадку браку власності в Windows 7 не вистачило для моїх конкретних обставин (моя інсталяція Windows 7 була зроблена за допомогою Symantec Backup Exec з іншої машини, а папка була під контролем джерел).

Мені довелося виконати ще два кроки:

  1. Клацніть правою кнопкою миші папку з файлами, які потрібно видалити, і виберіть "Властивості" - & gt; "Безпека" - & gt; "Додатково" - & gt; виберіть користувача - & gt; "Змінити дозвіл" - & gt; Позначте пункт "Замінити всі дозволи дочірніх об'єктів на успадкованих дозволів від цього об'єкта"

  2. Видаліть файли в папках вручну від внутрішнього до кореня. Видаліть папки, коли вони будуть порожніми, тобто якщо у вас є "folder1- & gt; folder2", спочатку ви видалите вміст folder2, потім видаліть папку2 тощо

Якщо інших рішень недостатньо, спробуйте виконати наступні кроки.


0

Це S-1-... є GUID, що залишився від попередньої інсталяції. Очевидно NEWSYSTEM\Administrator не є частиною OLDSYSTEM\Administrators групи.

Необхідно взяти на себе право власності на диск, нехай зміни розповсюджуватимуться, тоді ви зможете видалити файли.


0

Зазвичай takeown і (i)cacls виконувати завдання.

Альтернативно, можна використовувати Unlocker видалити його (ймовірно, це вимагатиме перезавантаження),
або використання PsExec отримувати привілеї користувача SYSTEM та видаляти ці файли (ця робота буде працювати на деяких файлах, може не працювати на інших).

Але якщо в цій папці є багато файлів, це займе багато часу takeown привілеї (це зайняло у мене близько 20 хвилин, залежить від швидкості HDD). Таким чином, у цьому випадку будь-який LiveCD / DVD / USB є швидшим, оскільки вони не вимагають привілеїв для видалення папки.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.