Remove the Windows.old folder manually
Windows creates the folder Windows.old on a PC running Windows when you upgrade the PC to a new version of the operating system.
The Windows.old folder contains files and folders of the old installation of Windows, and the main reason it is there is that it is used to restore the old system if the user wants to go back to it.
This folder may take up a sizeable amount of space, but will get deleted automatically usually by Windows after a set period of time.
Windows users may also use the disk cleanup tool to remove the folder as described here. Sometimes however it happens that the folder and its content is not removed, and that a manual removal does not work either.
When you try to delete the folder manually in Explorer, you get permission errors as the folder is associated with SYSTEM and not a user or administrator account.
What happens usually is that you get a permission request first to run the operation with administrative privileges, and then the Folder Access Denied error.
Remove the Windows.old folder manually
You need to run the following commands remove the Windows.old folder manually.
- Open an elevated command prompt. EAsiest way to do so is to tap on Windows, type cmd.exe, hold down the Shift-key and the Ctrl-key, and launch the elevated command prompt with a tap on the Enter-key.
- takeown /F c:\Windows.old\* /R /A /D Y
- cacls c:\Windows.old\*.* /T /grant administrators:F
- rmdir /S /Q c:\Windows.old
Lets take a closer look at the commands to better understand what they do:
takeown /f c:\Windows.old\* /r /a /d y
Takeown can be used to make the administrators group the owner of a file or directory.
- /f c:\Windows.old\* -- This specifies the location and files that the operation will be run on.
- -r -- performs a recursive operation on all files (means all files are included that are in the Windows.old folder).
- -a -- gives ownership to the Administrators group.
- -d Y -- surpresses the confirmation prompt when the current user does not have the "List Folder" permission.
cacls c:\Windows.old\*.* /t /grant administrators:f
This command displays or modifies DACL (discretionary access control list) files.
- c:\Windows.old\*.* -- The files you want the operation to run on.
- /t -- This changes the DACL of the files in the selected directory and all subdirectories.
- /grant administrators:f -- This grants full access rights to the administrators group (The F stands for full)
rmdir /s /q c:\Windows.old
The command removes a directory.
- /s -- this parameter makes the command remove the directory that is specified, and all of its subdirectories and files.
- /q -- runs the program in quiet mode without confirmation prompts.
- c:\Windows.old -- specifies the directory the operation should be run on.
Nothing else worked, including manually taking ownership, system tools, etc., but this did the trick. Thank you for your service.
Does not work, take ownership runs but is incomplete, but cacls fails with multiple access denied even after ownership take. Yes, ran CLI in CMD as administrator, and using administrator account. Thus rmdir fails badly since ownership and cacls both fail. So as of the date of this comment, your solutions fails.
Brilliant – just what I was needed. For some inexplicable reason the usual windows10 cleanup utility of temporary files didn’t have an option to remove the previous install. (why not ???). Many thanks.
Hmmm. Copied the text into a batch file and ran it… and promptly toasted the computer. If copied directly from the web page, there are spaces in the command which affect how it runs. Before I could do anything, many directories were obliterated. Fortunately, it was a test machine and I could afford to lose that stuff, but still have to rebuild that system from scratch.
i get a bunch of errors in feedback on the first cmd, and access denied when i run the second or third…
Old thread but wanted to say thanks, the folder was renamed during the win10 upgrade and the system wouldn’t do it automatically. Great advice, worked perfectly and freed up 15G!
THANK YOU! I don’t know why everyone thinks that disk cleanup will ALWAYS work. I never had an option to remove the previous version of windows. You made my day!
THANK YOU SOO MUCH SAVED ME 20GB been looking for this , the app unlocker takes ages to delete 100mb
Excellent!
had to run it twice, but it did the trick
Disk cleanup doesn’t see the Windows.old folder in many cases. This article was a lifesaver, thank you!
Good God.
Why would you want to memorize all those long and dangerous commands?
Just use Windows “disk cleanup” and click the checkbox.
Ugh.
This WORKED!!!! THANK YOU! THANK YOU! THANK YOU!
The execution of the 2 cmd
“cacls C:\Windows.old\*.* /T /grant administrators:F”
stops after a while with the error:
“the data area path to a system call is too small”
What do i do?
Costa are you doing this from a command prompt or from powershell? I had a similar error in Powershell but it worked just fine in command prompt.
Dear Ghacks.net Administrator: Please note that in the command sequence noted above (takeown /F c:\Windows.old\* /R /A /D Y) to manually remove Windows.old directory and its contents has a typographical error… the command shown om example 2. is “takeown /F c:\Windows.old\* /R /A /D Y”. Tried this and it was not successful in changing the ownership conditions of any files in the target directory. On examination of the explanation text below the suggested commands, I noted that the trailing command switches to the command should have a dash (-) preceding the command switches instead of the slash (/) as shown in the example. I retried the takeown command with the following changes…”takeown /F c:\Windows.old\* -R -A -D Y” which was successful in changing the ownership conditions on all files in the Windows.old directories. The following commands shown in example 3. and 4. were successful as well.
I know you strive for excellence in your advice to your readers. Please try to update the information I have noted above. Sincerely, RDH, an appreciative reader
Thank you RDH. “takeown /F c:\Windows.old\* -R -A -D Y” worked for me. Thanks.
Although no files show in Explorer, the excuse given for not deleting is ‘folder not empty’ – that was BEFORE your code and still after your code.
access denied
you are irrelevant don’t write things and confuse us
Great worked great for me
It worked!
Thanks.
_____THANK_____YOU !!!!!!!!!!!!!!!!!!!!!
I wrestled with this for about an hour. Cortana would not give up the ghost.
I rebooted into safe mode, and applied your fix, and WINDOWS.OLD is now GONE !!!!!
Thank you! This worked perfectly where windows.old would not remove through all other methods.
Thank you
Worked like a charm. Keep up the good work
“Zuordnungen von Kontennamen und Sicherheitskennungen wurden nicht durchgeführt”
Meaning: “Assignments of accounts and security-states are Not altered.”
“Zuordnungen von Kontennamen und Sicherheitskennungen wurden nicht durchgeführt ”
Meaning:”Assignments of accounts and security-states are Not altered.”
I used Google to search the German phrase and translate the result to English. Perhaps https://community.norton.com/de/forums/zuordnungen-von-kontennamen-und-sicherheitskennungen-wurden-nicht-durchgef%C3%BChrt-vista-32-gho-0 will help from Norton.
LoHa
command 2 answered:”Zuordnungen von Kontennamen und Sicherheitskennungen wurden nicht durchgeführt.”
What to do?
aloha
I’ve seen another method where you run Disc Cleanup and it deletes it.
Yes, Disk Cleanup deletes it usually, but there are situations where this won’t work, or where leftovers remain.
When i typed: rmdir /S /Q c:\Windows.old
Only access is denied error shows up even if the takedown command worked how come nothing works for me while it works for everybody else,
Yes, disk cleanup deleted the files but not the folder. When I tried to delete the folder manually, I got the response that the file was corrupted and unreadable. I searched the Web for an answer, which was to use Chkdsk. When I did that, I was told that the file was in use by another program(?). I was asked if I wanted to run Chkdsk on the the next restart. I answered yes, and restarted. Chkdsk worked seemingly very quickly, and when I tried to delete Windows.Old, I got the same response. I repeated the process, and this time Chkdsk worked more slowly. Then I was finally able to delete Windows.Old.
The Chkdsk command that I used from an administration account was chkdsk C: /F. I tried another version using /B but it did not work. This was on Windows 8.1.
Boot from a Linux live cd / dvd, go te the folder where windows.old is located, delete it, done
Bastante para ahora–
takeown /F C:\Windows.old\* /R /A
pause
cacls C:\Windows.old\*.* /T /grant administrators:F
pause
rmdir /S /Q C:\Windows.old\
pause
Copy-paste this in Notepad and save it as a .bat file.
thank bro..
Thank you, it worked perfectly! It saved me 15GB on my tiny SSD Woop woop! I hope you have a good day sir :D
Thank you Sir.
This guy is a friggin’ hero.
Awesome, love it!
worked well for me thanks @ jasray
if on domain may work bit different, can rt click folder properties-security-advanced-change permissions.
then where it lists owner click change and use domain admin acct.
click the replace all child object box.
then apply, ec then delete.
have had to do it to 15 or so of them lately..