How do I get permissions to delete files on Windows 7?
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:
-
Take ownership of the files. Start a Command Prompt (cmd) as an administrator, and enter:
takeown /f file takeown /f directory /r
-
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.
The command line arguments for taking ownership should be in this order
takeown /f <directory> /r
/f filename or directory name pattern /r recurse
NOTE: cacls
is now deprecated, please use
icacls
icacls <directory> /grant <user>:f /t
f full access /t recurse
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:
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"
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.
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.
Usually takeown
and (i)cacls
do the job.
Alternatively,
you can use Unlocker to delete it (probably it will require reboot),
or use Sysinternals' PsExec to get SYSTEM user privileges and delete those files (this one will work on some files, may fail on others).
But if that folder has a lot of files, it will take a lot of time to takeown
privileges (it took me about 20 minutes, depends on HDD speed). So in this case any LiveCD/DVD/USB is faster, as they don't require any privileges to delete the folder.