Tell me more ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I updated my laptop's OS from Windows XP to Windows 7. There are some leftover files from Windows XP on the computer now. If I try deleting them I get the following error:

You need permission to perform this action.

You require permission from S-1-.... to make changes to this folder.

What's weird is that I am logged in with the only user account on this machine and I have administrator privileges. I tried turning UAC off, but I still can't delete the files.

How can I force removal of these files?

share|improve this question

4 Answers

up vote 39 down vote accepted

It's possible that by upgrading, the old XP user was not converted well to Windows 7 - therefore these files are owned by a phantom user. You can follow the steps below:

  1. Take ownership of the files. Start a Command Prompt (cmd) as an administrator, and enter:

    takeown /f file
    takeown /f directory /r
    
  2. Give yourself full rights on the file:

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

cacls can be used with wildcards and directory traversal. See also:
Security from the command line with CACLS
CACLS command

For a more evolved Visual Basic script see: Xcacls.vbs to modify NTFS permissions.

share|improve this answer
The takeown command results in an error: C:\>takeown /f olddir /r ERROR: The current logged on user does not have ownership privileges on the file (or folder) "C:\olddir". – lajos Oct 26 '09 at 13:15
3  
Did you launch the command prompt by right-click on cmd.exe and "Run as administrator"? – harrymc Oct 26 '09 at 14:12
Thanks for pointing that out. I did not run as administrator. It's working now! – lajos Oct 26 '09 at 14:26
Few notes: 1. takeown outputs a lot of noise so you can stuck something like "> output" at the end of the command to make it go faster 2. Use /t cacls switch to make go recursively. Otherwise - great tips! – Evgeniy Dolzhenko Sep 22 '11 at 9:24
Thank you!!! Saved me big time! – Michael Dorgan Jan 8 at 22:53
show 1 more comment

In relation to the answer by harrymc above:

The command line arguments for taking ownership should be in this order:

takeown /f directory /r

Also, when using CACLS I got the message:

NOTE: Cacls is now deprecated, please use Icacls.

The syntax for ICACLS is similar:

icacls directory /grant user:f /t

share|improve this answer

In my case taking ownership was not enough in Windows 7 for my particular circumstances (my Windows 7 installation was made using Symantec Backup Exec from another machine and the folder was under source control).

I had to perform two further steps:

  1. Right click the folder containing the files you want to delete and select 'Properties' -> 'Security' -> 'Advanced' -> select your user -> 'Change permission' -> Check "Replace all child object permissions with inheritable permissions from this object"

  2. Delete the files in the folders manually from the innermost to the root. Delete the folders once they are empty, i.e. if you have "folder1->folder2" first you delete the contents of folder2, then delete folder2 etc.

If the other solutions are not enough, you can try these further steps.

share|improve this answer

That S-1-... is a GUID left over from the previous install. Obviously NEWSYSTEM\Administrator isn't part of the OLDSYSTEM\Administrators group.

You need to take ownership of the drive, let the changes propagate, then you should be able to delete the files.

share|improve this answer

protected by studiohack Jul 3 '11 at 0:42

This question is protected to prevent "thanks!", "me too!", or spam answers by new users. To answer it, you must have earned at least 10 reputation on this site.

Not the answer you're looking for? Browse other questions tagged or ask your own question.