Cleaning Hard Drive (Part 2)

by May 12, 2022

In the previous post we introduced the Windows tool cleanmgr and its parameters /sageset and /sagerun that you can use to define and run automated hard disk cleanups.

Today we’ll be looking into how you can customize the actual cleanup tasks performed by cleanmgr.exe.

This tool stores all configuration in the Windows Registry at this location: HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerVolumeCaches

Below, you find keys for every cleanup task that cleanmgr can do. In our previous tip we defined a custom cleanup task like so (remember to run it with full Admin privileges):

 
PS> cleanmgr.exe /sageset:5388   
 

The call opens a dialog window where you can check the cleaning tasks that should be tied to the submitted ID 5388.

Once you close the dialog, these settings can be found in the Windows Registry:

# the ID you picked when saving the options:
$id = 5388

# the name of the reg value that stores your choices:
$flag = "StateFlags$id" 

# the location where user choices are stored:
$path = "Registry::HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerVolumeCaches*"

# get all subkeys where your user choice was enabled:
Get-Item -Path $path |
  Where-Object { $_.Property -contains $flag }  # contains your registry value (StateFlags5388)
  Where-Object { $_.GetValue($flag) -gt 0 }     # your registry value contains a number greater than 0

And in fact, the result is exactly listing the cleaner modules you previously checked in the selection dialog:

 
Name                           Property
----                           --------
Active Setup Temp Folders      (default)      : {C0E13E61-0CC6-11d1-BBB6-0060978B2AE6}
                               Autorun        : 1
                               Description    : These files should no longer be needed. They were originally 
                                                created by a setup program that is no longer running.
                               FileList       : *.tmp
                               Flags          : {124, 0, 0, 0}
                               Folder         : C:Windowsmsdownld.tmp|?:msdownld.tmp
                               LastAccess     : {2, 0, 0, 0}
                               Priority       : 50   
                               StateFlags0001 : 2
                               StateFlags0003 : 2
                               StateFlags0033 : 0
                               StateFlags6254 : 0
                               StateFlags5388 : 2
BranchCache                    (default)      : {DE661907-527D-4d6a-B6A6-EBC7F88D9B95}
                               StateFlags0001 : 0
                               StateFlags0003 : 0
                               StateFlags0033 : 0
                               StateFlags6254 : 0
                               StateFlags5388 : 2
D3D Shader Cache               (default)      : {D8D133CD-3F26-402F-86DA-90B710751C2C}
                               Autorun        : 1
                               ReserveIDHint  : 2
                               StateFlags0001 : 0
                               StateFlags0003 : 0
                               StateFlags0033 : 0
                               StateFlags6254 : 0
                               StateFlags5388 : 2
Delivery Optimization Files    (default)      : {4057C1AD-A51F-40BB-B960-22888CEB9812}
                               Autorun        : 0
                               Description    : @C:WINDOWSsystem32domgmt.dll,-104
                               Display        : @C:WINDOWSsystem32domgmt.dll,-103
                               Flags          : 128  
                               ReserveIDHint  : 2
                               StateFlags0001 : 0
                               StateFlags0003 : 0
                               StateFlags0033 : 0
                               StateFlags6254 : 0
                               StateFlags5388 : 2
Diagnostic Data Viewer         (default)        : {C0E13E61-0CC6-11d1-BBB6-0060978B2AE6}
database files                 Autorun          : 0
                               CleanupString    : rundll32.exe utcutil.dll,DiskCleanupEnd
                               Description      : @C:WINDOWSsystem32utcutil.dll,-302
                               Display          : @C:WINDOWSsystem32utcutil.dll,-301
                               FileList         : *.*
                               Flags            : 573
                               Folder           : C:ProgramDataMicrosoftDiagnosisEventTranscript
                               IconPath         : C:WINDOWSsystem32utcutil.dll,0
                               PreCleanupString : rundll32.exe utcutil.dll,DiskCleanupStart
                               Priority         : 100
                               StateFlags0001   : 0  
                               StateFlags0003   : 0  
                               StateFlags0033   : 0  
                               StateFlags6254   : 0  
                               StateFlags5388   : 2  
Downloaded Program Files       (default)          : {8369AB20-56C9-11D0-94E8-00AA0059CE02}
                               AdvancedButtonText : @C:WindowsSystem32occache.dll,-1072
                               Autorun            : 1
                               Description        : @C:WindowsSystem32occache.dll,-1071
                               Display            : @C:WindowsSystem32occache.dll,-1070
                               Priority           : {100, 0, 0, 0}
                               StateFlags0001     : 2
                               StateFlags0003     : 2
                               StateFlags0033     : 0
                               StateFlags6254     : 2
                               StateFlags5388     : 2
Internet Cache Files           (default)          : {9B0EFD60-F7B0-11D0-BAEF-00C04FC308C9}
                               AdvancedButtonText : &View Files
                               Autorun            : 1
                               Description        : The Temporary Internet Files folder contains Web pages stored 
                                                    on your hard disk for quick viewing.
                                                    Your personalized settings for Web pages will be left intact. 
                               Display            : Temporary Internet Files
                               Priority           : 100
                               StateFlags0001     : 2
                               StateFlags0003     : 2
                               StateFlags0033     : 0
                               StateFlags6254     : 2
                               StateFlags5388     : 2
Language Pack                  (default)      : {191D5A6B-43B9-477A-BB22-656BF91228AB}
                               Autorun        : 1
                               StateFlags0001 : 0
                               StateFlags0003 : 0
                               StateFlags0033 : 0
                               StateFlags6254 : 0
                               StateFlags5388 : 2
Old ChkDsk Files               (default)      : {C0E13E61-0CC6-11d1-BBB6-0060978B2AE6}
                               Autorun        : 1
                               FileList       : *.CHK
                               Flags          : 288
                               Folder         : ?:FOUND.000|?:FOUND.001|?:FOUND.002|?:FOUND.003|?:FOUND.004|
                                                ?:FOUND.005|?:FOUND.006|?:FOUND.007|?:FOUND.008|?:FOUND.009
                               IconPath       : C:WINDOWSSystem32DATACLEN.DLL,3
                               Priority       : 50   
                               PropertyBag    : {60F6E464-4DEF-11d2-B2D9-00C04F8EEC8C}
                               StateFlags0001 : 2
                               StateFlags0003 : 2
                               StateFlags0033 : 0
                               StateFlags6254 : 2
                               StateFlags5388 : 2
Recycle Bin                    (default)      : {5ef4af3a-f726-11d0-b8a2-00c04fc309a4}
                               PluginType     : 2 
                               StateFlags0001 : 2
                               StateFlags0003 : 0
                               StateFlags0033 : 0
                               StateFlags6254 : 0
                               StateFlags5388 : 2
 

Each cleaner module has a unique GUID in “(default)”. As you see, the GUID “{C0E13E61-0CC6-11d1-BBB6-0060978B2AE6}” is used by a number of cleaner modules. This is a generic file remover module that you can easily use in your own file cleaner modules. Simply add a new subkey to the registry key HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerVolumeCaches, use the GUID mentioned above inside of it, and configure which files this cleaner should find and delete. You may want to look at existing cleaners such as “Old ChkDsk Files” in regedit.exe to find out the names of the registry values that define the files to delete.


Twitter This Tip! ReTweet this Tip!