To reduce the size of some of my virtual machines, I often run the Windows cleanup tool to get rid of update artifacts and temporary files. While the
cleanmgr command has some undocumented options such as
/verylowdisk, I could not achive what I wanted with any combination of these: I wanted to have one command that simply cleans _everything_ without interaction. TL;DR: Put this in a batch file:
Essentially, this script manually creates the registry keys that would be created by a call to
for /f "tokens=*" %%K in ('reg query %rootkey%') do >NUL REG add "%%K" /v StateFlags0000 /t REG_DWORD /d 2 /f
cleanmgr /sageset:0 and checking all the boxes. It then runs
cleanmgr /sagerun:0 which non-interactively calls
cleanmgr performing every cleanup task available. Remember to run this as an administrator to remove Windows update artifacts.
Would you like to have that as PowerShell?