How to: Disk Cleanup in Windows Server 2012 (R2) – DISM

Reading Time: 11 Minutes

The disk cleanup utility is not installed by default on Windows Server 2012, so how do you perform a disk cleanup in Windows Server 2012 R2? Here is how to clean up the WinSxs folder on Windows Server 2012 R2, to reclaim disk space. Delete superseded updates and unused system files to gain Gigabytes of extra disk space with dism.exe‘s disk cleanup options, learn how to move the SoftwareDistribution folder and user’s Documents folder, read on…

WinSxs Cleanup in Windows Server 2012 (R2) – Using DISM and PowerShell

Over time, as your Windows Server runs longer, more and more disk space is eaten. Simply gone! Investigating the disk usage leaves you clueless; there are no large log files, crash dumps, or there is no software to be removed. Where did that space go?

Advertisement:

The answer: Windows Updates, Service Pack, and hotfix installations.

On Windows Server, the Windows component store (C:\Windows\WinSxS) contains all the files that are required for a Windows installation. And, any updates to those files are also held within the component store as the updates are installed (source: KB 2795190 – and do read Manage the Component Store). The WinSxS folder will become large…

Let’s clean up WinSxS!

Regain used disk space with DISM

Deployment Image Servicing and Management (DISM) is a command-line tool that allows you to install, uninstall, configure, and update Windows features, packages, drivers, and international settings. The /Cleanup-Image parameter of dism.exe provides advanced users more options to further reduce the size of the WinSxS folder.

The Dism.exe /online /Cleanup-Image has a few extra parameters (or switches):

  • /AnalyzeComponentStore
  • /StartComponentCleanup
  • /ResetBase with /StartComponentCleanup
  • /SPSuperseded

Throughout this article, I assume you’ll read help options, just add /?: dism.exe /online /Cleanup-Image /?

Psst, if you enjoyed this, you might also enjoy the following post summing up 5 extra ways to clean up disk space in Windows Server!

Analyze WinSxS folder (Component Store) with /AnalyzeComponentStore

Use the /AnalyzeComponentStore to analyze the size of the Component Store (WinSxS folder) in Windows. The AnalyzeComponentStore option is available in Windows 8.1 Windows Server 2012 R2.

dism.exe /online /Cleanup-Image /AnalyzeComponentStore
dism.exe /online /Cleanup-Image /AnalyzeComponentStore
dism.exe /online /Cleanup-Image /AnalyzeComponentStore

/StartComponentCleanup parameter #

Dism.exe removes superseded and unused system files from a system with the /StartComponentCleanup parameter.

dism.exe /online /Cleanup-Image /StartComponentCleanup
dism.exe /online /Cleanup-Image /StartComponentCleanup
dism.exe /online /Cleanup-Image /StartComponentCleanup

The StartComponentCleanup task can also be started from the command line:

schtasks.exe /Run /TN "\Microsoft\Windows\Servicing\StartComponentCleanup"

The /StartComponentCleanup parameter is supported on Windows 8 and Windows Server 2012.

/ResetBase switch with /StartComponentCleanup parameter #

Using the /ResetBase switch with the /StartComponentCleanup parameter of dism.exe, all superseded versions of every component in the component store is removed.

dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase
dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase
dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase

All existing service packs and updates cannot be uninstalled after this command is completed. This will not block the uninstallation of future service packs or updates.

The /ResetBase parameter is supported on Windows 8.1 and Windows Server 2012 R2.

/SPSuperseded parameter #

The /SPSuperseded parameter removes any backup components needed for de-installation of a service pack. The service pack cannot be uninstalled after this command is completed.

dism.exe /online /Cleanup-Image /SPSuperseded

The Service Pack cannot be uninstalled after this command is completed.

The /SPSuperseded parameter is supported on Windows 7 or Windows Server 2008 R2 Service Pack 1, 2012, 2012 R2.

The /AnalyzeComponentStore option is available in Windows 8.1 and Windows Server 2012 R2. Use this to analyze the size of the Component Store (WinSxS folder) in Windows.

Disk Cleanup Tool on Windows Server 2012 & R2

The Disk Cleanup Tool is available in Windows Server 2012, if you install the Desktop Experience-feature. If you don’t want to install the Desktop Experience feature, you can simply copy cleanmgr.exe and cleanmgr.exe.mui to C:\Windows\system32 and C:\Windows\system32\en-Us from a Windows 2008 R2 server. The Applied Innovations post explains where to find the files in the WinSxS folder on Windows Server 2008 R2. This may not work on all versions of Windows Server 2012 (R2).

Disk Cleanup Wizard addon on Windows Server 2008 R2
Microsoft KB2852386 adds a Disk Cleanup option on Windows Server 2008 R2, similar to the Windows 7 update. I’ve tested this on Windows Server 2012. It may not clean up everything, but at least a lot.

Here’s how to make cleanmgr.exe available on Windows Server 2012 Standard without installing the Desktop Experience feature:

Microsoft Windows [Version 6.2.9200]
(c) 2012 Microsoft Corporation. All rights reserved.

PS C:\Users\jan> $osversion = [System.Environment]::OSVersion.Version
PS C:\Users\jan> write-host $osversion
6.2.9200.0

C:\Windows\System32>cd ..

C:\Windows>copy WinSxS\amd64_microsoft-windows-cleanmgr.resources_31bf3856ad364e35_6.2.9200.16384_en-us_b6a01752226afbb3\cleanmgr.exe.mui \Windows\system32\en-US
        1 file(s) copied.

C:\Windows>copy WinSxS\amd64_microsoft-windows-cleanmgr_31bf3856ad364e35_6.2.9200.16384_none_c60dddc5e750072a\cleanmgr.exe \Windows\system32
        1 file(s) copied.

C:\Windows>system32\cleanmgr.exe

C:\Windows>

Unfortunately, this no longer works on Windows Server 2012 R2, probably due to KB2821895. There might be a way to use cleanmgr.exe on Windows Server 2012 R2, follow these steps (found on StackOverflow):

  1. install the Desktop-Experience feature: PS C:\Windows> Install-WindowsFeature Desktop-Experience
  2. reboot
  3. copy cleanmgr.exe and cleanmgr.exe.mui to a temporary location, e.g c:\temp
  4. remove Desktop-Experience feature: PS C:\Windows> Uninstall-WindowsFeature Desktop-Experience
  5. reboot
  6. from your temporary file location, copy cleanmgr.exe to c:\Windows\System32, and cleanmgr.exe.mui to c:\Windows\System32\en-US

You can copy the files over the network to other Win2012r2 servers to use the Disk Cleanup utility:

PS C:\Users\jan> copy '\\server\c$\temp\cleanmgr.exe' C:\Windows\System32
PS C:\Users\jan> copy '\\server\c$\temp\cleanmgr.exe.mui' C:\Windows\System32\en-US
PS C:\Users\jan> cleanmgr
PS C:\Users\jan>

As Aaron pointed out in the comments, the above solution to copy over the cleanmgr.exe and cleanmgr.exe.mui files doesn’t always work well. Fortunately, the functionality is back in Windows Server 2016 (TP5).

Disk Cleanup in Windows Server 2016 TP5
Disk Cleanup in Windows Server 2016 TP5

Reboot required after disk cleanup
Don’t forget to reboot your computer – or server – after doing the disk cleanup. The actual cleanup of the WinSxs directory occurs during the next reboot.

Error 0x800f0906 with DISM /Online /Cleanup-Image, PowerShell Install-WindowsFeature and SFC /scannow #

Some reports are available explaining Microsoft Security Bulletin MS14-046 broke DISM /Online /Cleanup-Image /RestoreHealth, PowerShell Install-WindowsFeature with -Source parameter, and SFC /scannow.

An update is made available by Microsoft: KB3005628

Update for the .NET Framework 3.5 on Windows 8, Windows 8.1, Windows Server 2012, and Windows Server 2012 R2. This update resolves an issue that prevents the optional Microsoft .NET Framework 3.5 feature from being enabled after you install security update 2966827 or 2966828 (described in Microsoft Security Bulletin MS14-046) for the Microsoft .NET Framework 3.5.

Move Windows SoftwareDistribution folder

Over time, your Windows Updates SoftwareDistribution folder in c:\Windows\SoftwareDistribution can become quite large, for example when multiple updates were not installed successfully. Windows Update files are downloaded to this folder and removed after successful installation. When you find yourself in a situation where your C: partition is rather small, and SoftwareDistribution folder eats up too much disk space, follow these steps to move the SoftwareDistribution folder to a different location.

All in a cmd.exe shell (Start > Run > cmd and press enter). In this example the new location is D:\Windows-SoftwareDistribution.

  1. Stop the Windows Update service: net stop wuauserv
  2. Rename the folder c:\Windows\SoftwareDistribution to c:\Windows\SoftwareDistribution.old: rename c:\windows\SoftwareDistribution SoftwareDistribution.old
  3. Create a link using Windows Sysinternals Junction, or Windows mklink
    • Create the new directory:
      mkdir D:\Windows-SoftwareDistribution
    • Create the Junction:
      c:\>junction C:\Windows\SoftwareDistribution "D:\Windows-SoftwareDistribution"
      c:\>mklink /J C:\Windows\SoftwareDistribution "D:\Windows-SoftwareDistribution"
  4. Restart the Windows Update Service: net start wuauserv

When, after a while, everything seems to run and update fine, delete your SoftwareDistribution.old folder.

Move User Documents folder

Another way for you to gain some extra free space is to move the User Documents folder (and others, like Downloads), for instance from C:\Users\$USER$\Documents to D:\User\$USER$\Documents (substitute $USER$ with the username whose Documents folder you want to move). Here are the steps for you to follow (screenshots taken from Windows Server 2016 TP5):

  1. Open Explorer and right click on the Documents folder and then Properties
  2. Choose Location
  3. Change the location where files are stored
  4. When the destination does not exist, Windows asks to create the folder for you
  5. After completion, files are moved to their new location.
Move a Windows User Documents Folder, step 01
Move a Windows User Documents Folder, step 01
Move a Windows User Documents Folder, step 02
Move a Windows User Documents Folder, step 02
Move a Windows User Documents Folder, step 03
Move a Windows User Documents Folder, step 03

Conclusion #

Yes, the Windows component store (WinSxS folder) can become very large. But fortunately, Microsoft provides us the tools to monitor, manage and clean up the WinSxS folder to regain disk space.

If you are comfortable with installing the Desktop Experience Windows feature on your system, you can have the Disk Cleanup utility on your system. Else, you can use the DISM (Deployment Image Servicing and Management) command for cleaning up.

To gain some extra free space, you can also move the Windows SoftwareDistribution folder to a different partition.

11 Replies to “How to: Disk Cleanup in Windows Server 2012 (R2) – DISM”

  1. You said “I’ve tested this on Windows Server 2012. It may not clean up everything, but at least a lot.” – I’m wondering how given trying to install the Windows6.1-KB2852386-v2-x64.msu on a Windows Server 2012 OS gives the typical error of “Not applicable to this Operating System”?

  2. In Server 2012 R2, it appears that while cleanmgr runs after following your directions, it becomes almost useless, because after uninstalling the desktop experience you lose all the extended cleanup options such as previous windows installations, windows update cleanup etc and even temporary files cleanup. Some sort of system hook is missing that lets it scan these system areas.

  3. Hi,
    Thank you for the article. Here is my little contribution.
    To see Windows Update Cleanup :
    copy \\$MACHINE\C$\Windows\System32\scavengeui.dll c:\windows\System32\
    copy \\$MACHINE\C$\Windows\System32\en-us\scavengeui.dll.mui c:\windows\system32\en-US\
    regsvr32 c:\windows\System32\scavengeui.dll

    I am not sure if this is necessary though, because after dism steps mentioned above i do not see anything to clean up anyway.

    For Setup File Cleanup:
    setupcln.dll
    Temporary Internet Files:
    ieframe.dll
    Thumbnails:
    thumbcache.dll

  4. The information you have shared about DISM is very useful and it seems to be the simplest way to gain disk space in your system and so performance can be improved. So, thanks for sharing such a useful information.

    1. Thank you Sneha for your comment. Seems like you like to spam www [.] diskanalyzerpro [.] com a lot in comments, so I’ve edited your comment and removed the link.

  5. Awesome to see that you found Disk Cleanup back in Server 2016. By default I assume – don’t need to add any roles/features?

Hi! Join the discussion, leave a reply!