$host.ui.rawui.foregroundcolor = "green" ########NOTE: THIS POWERSHELL SCRIPT MUST BE RUN AS ADMIN########## #######MAKING A REG KEY TO SET A DEFAULT DISK CLEAN UP PROFILE####### #####DEFINING THE REG KEY VARIABLE $regfile = "$env:TEMP\DiskCleanupSettings.reg" #####DEFINING THE REG KEY CONTENT $regcontent = @' Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Active Setup Temp Folders] "StateFlags0001"=dword:00000002 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\BranchCache] "StateFlags0001"=dword:00000002 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\D3D Shader Cache] "StateFlags0001"=dword:00000002 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Delivery Optimization Files] "StateFlags0001"=dword:00000002 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Diagnostic Data Viewer database files] "StateFlags0001"=dword:00000002 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Downloaded Program Files] "StateFlags0001"=dword:00000002 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Feedback Hub Archive log files] "StateFlags0001"=dword:00000002 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Internet Cache Files] "StateFlags0001"=dword:00000002 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Language Pack] "StateFlags0001"=dword:00000002 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Old ChkDsk Files] "StateFlags0001"=dword:00000002 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Recycle Bin] "StateFlags0001"=dword:00000002 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\RetailDemo Offline Content] "StateFlags0001"=dword:00000002 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Setup Log Files] "StateFlags0001"=dword:00000002 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\System error memory dump files] "StateFlags0001"=dword:00000002 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\System error minidump files] "StateFlags0001"=dword:00000002 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Temporary Files] "StateFlags0001"=dword:00000002 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Thumbnail Cache] "StateFlags0001"=dword:00000002 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Update Cleanup] "StateFlags0001"=dword:00000002 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\User file versions] "StateFlags0001"=dword:00000002 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Defender] "StateFlags0001"=dword:00000002 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Windows Error Reporting Files] "StateFlags0001"=dword:00000002 '@ #####PUTTING REGKEY CONTENT INTO THE FILE $regcontent > $regfile #####IMPORTING REGKEY reg import $regfile #####DELETING THE NO LONGER NEEDED REGFILE del $regfile ######RUNNING DISK CLEAN UP echo "starting disk clean up..." #####RUNNING DISK CLEAN UP WITH PROFILE WE MADE VIA REGKEY #cleanmgr /sagerun:1 start-process cleanmgr.exe -argumentlist "/sagerun:1" #####GET THE CURRENTLY LOADED USER ACC $user = (Get-CimInstance Win32_ComputerSystem).UserName.Split('\')[-1] ####DEFINING USER'S PROFILE PATH $profilePath = "C:\Users\$user" echo "User profile: $profilepath" echo "`n`n`n" ####CREATING ARRAY OF DIRECTORIES TO CLEAN $cleanupdirs = @( "$profilepath\AppData\Local\Temp" "C:\Windows\Temp" "C:\Windows\System32\config\systemprofile\AppData\Local\Temp" "C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp" "C:\Windows\ServiceProfiles\LocalService\AppData\Local\Temp" "$profilePath\AppData\Local\D3DSCache" "$profilePath\AppData\Local\Microsoft\Windows\WebCache" "$profilePath\AppData\Local\Microsoft\Windows\Caches" "$profilePath\AppData\Local\CrashDumps" "$profilePath\AppData\Local\Microsoft\Windows\WER" "C:\ProgramData\Microsoft\Windows\WER" "C:\Windows\Minidump" "C:\Windows\SoftwareDistribution\Download" "C:\ProgramData\Microsoft\Windows\DeliveryOptimization\Cache" "C:\Windows\Logs\CBS" "C:\Windows\Logs\DISM" "C:\Windows\Logs\MoSetup" "C:\Windows\Logs\NetSetup" "C:\Windows\Logs\DPX" "C:\Windows\Panther" "C:\Windows\Panther\UnattendGC" "$profilePath\AppData\Local\Packages\Microsoft.WindowsStore_8wekyb3d8bbwe\LocalCache" "$profilePath\AppData\Local\Packages\Microsoft.WindowsStore_8wekyb3d8bbwe\AC\INetCache" "$profilePath\AppData\Local\Packages\Microsoft.WindowsStore_8wekyb3d8bbwe\TempState" "C:\`$Recycle.Bin" ) echo "cleaning tmp/cache dirs`n" ####FOR LOOP TO RECURSIVELY REMOVE CONTENTS OF EACH DIRECTORY foreach ($dir in $cleanupdirs) { if (test-path $dir -pathtype container) { echo "cleaning: $dir" get-childitem -path $dir -force -erroraction silentlycontinue | remove-item -recurse -force -erroraction silentlycontinue } else { echo "not found: $dir" } } echo "`nrecursive clean up of temp directories finished successfully \(^_^)/" ####DEFINING USERS VARIABLE $users = dir C:\Users echo "`n`n`n`n`n`n`n" ####CALCULATING AND PRINTING SIZE OF USER DIRS echo "the users and their profile spaces are:" $users | % { "$($_.Name): $([math]::Round((dir $_.FullName -Recurse -File | measure Length -Sum).Sum / 1GB, 2)) GB" } echo "note: rd /q /s C:\Users\USERNAME ran in cmd admin will remove the users profile and clear space" echo "ask the client if its safe to clean first!"