$ErrorActionPreference = "SilentlyContinue" #$ErrorActionPreference = "Continue" # Check Powershell version # This script requires Powershell 6+ due to Remove-Service cmdlet If ($PSVersionTable.PSVersion.Major -lt 6) { Exit 1 } # Delete WinDivert service if exists $wd = "WinDivert1.4" $service = Get-Service -Name $wd If ($service.Length -gt 0) { If ((Get-Service -Name $wd).Status -eq 'Running') { Stop-Service -InputObject $wd -Force } Remove-Service -Name $wd } # Cleanup TEMP directory without deleting TEMP directory If (-Not (Test-Path -Path $Env:Temp -PathType Container)) { New-Item -Path $Env:LocalAppdata -Name "Temp" -ItemType Directory } Remove-Item -Path "$Env:Temp\*" -Recurse -Force # Cleanup Appdata $ad_dir = @( ".minecraft\webcache2" ".mono" "Adguard Software Ltd" "Code\Cache" "Code\Code Cache" "Code\GPUCache" "Code\logs" "discord\Cache" "discord\Code Cache" "discord\GPUCache" "DMCache" "mpv" "NVIDIA" "obs-studio\logs" "Process Hacker\cache" "ZeqMacaw" ) ForEach ($item in $ad_dir) { Remove-Item -Path "$Env:Appdata\$item" -Recurse -Force } # Cleanup LocalAppdata $lad_dir = @( ".ftba" "Adobe" "apktool" "cache" "clink" "CrashDumps" "CrashReportClient" "CrashRpt" "D3DSCache" "DBG" "Frija" "Google\CrashReports" "Google\Software Reporter Tool" "JetBrains\IdeaIC2022.1\log" "JetBrains\IdeaIC2022.1\vcs-log" "Jonas_John" "Live++" "mcaselector" "NBTExplorer" "Nem's Tools" "npm-cache" "NuGet\Cache" "NVIDIA\DXCache" "NVIDIA\GLCache" "Overwolf\BrowserCache" "Package Cache" "PeerDistRepub" "pip" "pypa" "Skyrim Special Edition" "Sony\ErrorReport" "speech" "SquirrelTemp" "Steam" ) ForEach ($item in $lad_dir) { Remove-Item -Path "$Env:LocalAppdata\$item" -Recurse -Force } # Cleanup UserProfile $up_dir = @( "ansel" "vmlogs" ) ForEach ($item in $up_dir) { Remove-Item -Path "$Env:UserProfile\$item" -Recurse -Force } # Delete MS input If (Test-Path "$Env:LocalAppdata\Microsoft\input\" -PathType Container) { Remove-Item -Path "$Env:LocalAppdata\Microsoft\input\" -Recurse -Force $f = New-Object System.IO.FileStream "$Env:LocalAppdata\Microsoft\input", Create, ReadWrite $f.SetLength(0) $f.Close() } # Delete auto-generated directory $uw_dir = @( "E:\PICTURE\Camera Roll" "E:\PICTURE\Saved Pictures" "E:\VIDEO\Captures" ) ForEach ($item in $uw_dir) { Remove-Item -Path "$item" -Recurse -Force } # Delete logs $logs_loc = @( "$Env:LocalAppdata" "$Env:Appdata" ) ForEach ($item in $logs_loc) { Get-ChildItem -Path "$item\*" -Recurse -Force -Include *.log *.log.txt | Remove-Item -Force } # Cleanup NOX App Player $nox_file_up = @( "d4ac4633ebd6440fa397b84f1bc94a3c.7z" "inst.ini" "nuuid.ini" "useruid.ini" ) ForEach ($item in $nox_file_up) { Remove-Item -Path "$Env:UserProfile\$item" -Force } $nox_dir = @( "$Env:LocalAppdata\MultiPlayerManager\app_images" "$Env:UserProfile\Nox_share" ) ForEach ($item in $nox_dir) { Remove-Item -Path "$item" -Recurse -Force } Get-ChildItem -Path "$Env:UserProfile\.BigNox\*" -File -Include "NoxVMSVC.log*" | Remove-Item -Force Get-ChildItem -Path "$Env:LocalAppdata\Nox\*" -File -Include "Nox.log.*" | Remove-Item -Force # Prevent NOX App Player ads If (Test-Path -Path "$Env:LocalAppdata\Nox\loading" -PathType Container) { Write-Host "Prevent NOX App Player ads" -ForegroundColor DarkGreen -BackgroundColor Gray Remove-Item -Path "$Env:LocalAppdata\Nox\loading" -Recurse -Force $f = New-Object System.IO.FileStream "$Env:LocalAppdata\Nox\loading", Create, ReadWrite $f.SetLength(0) $f.Close() $acl = Get-Acl -Path "$Env:LocalAppdata\Nox\loading" $ar = New-Object System.Security.AccessControl.FileSystemAccessRule("SYSTEM", "FullControl", "Deny") $acl.Access | ForEach-Object{$acl.RemoveAccessRule($_)} $acl.SetAccessRule($ar) Set-Acl -Path "$Env:LocalAppdata\Nox\loading" -AclObject $acl } # Cleanup LD Player $ld_dir = @( "$Env:Appdata\changzhi2" "$Env:Appdata\lddownloader" "$Env:Appdata\XuanZhi64\log" "$Env:UserProfile\.Ld2VirtualBox" ) ForEach ($item in $ld_dir) { Remove-Item -Path "$item" -Recurse -Force } # Remove Empty Directories $red_list = @( "$Env:Appdata\Adobe" "$Env:Appdata\Code" "$Env:Appdata\Google" "$Env:Appdata\JetBrains" "$Env:LocalAppdata\Nox" ) $tailRecursion = { param($Path) ForEach ($childDir in Get-ChildItem -LiteralPath $Path -Directory) { & $tailRecursion -Path $childDir.FullName } $currentChildren = Get-ChildItem -LiteralPath $Path -Force $isEmpty = $currentChildren -eq $null if ($isEmpty) { Remove-Item -LiteralPath $Path -Force } } ForEach ($item in $red_list) { & $tailRecursion -Path $item }