scripts/Windows/cleanup_windows.ps1
. "$PSScriptRoot\common.ps1" Write-Host "Cleaning up Windows..." -ForegroundColor Cyan DisplayDiskInfo <# Write-Host "Running Cleanup Manager..." $strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches" $strValueName = "StateFlags0065" $subkeys = gci -Path "HKLM:\$strKeyPath" -Name ForEach ($subkey in $subkeys) { New-ItemProperty -Path "HKLM:\$strKeyPath\$subkey" -Name $strValueName -PropertyType DWord -Value 2 -ErrorAction SilentlyContinue | Out-Null } Start-Process cleanmgr -ArgumentList "/sagerun:65" -Wait -NoNewWindow -ErrorAction SilentlyContinue -WarningAction SilentlyContinue ForEach ($subkey in $subkeys) { Remove-ItemProperty -Path "HKLM:\$strKeyPath\$subkey" -Name $strValueName | Out-Null } #> ### Write-Host "Deleting the contents of windows software distribution..." Get-ChildItem "$env:SystemRoot\SoftwareDistribution\*" -Recurse -Force -ErrorAction SilentlyContinue | remove-item -force -recurse -ErrorAction SilentlyContinue Write-Host "Deleting the contents of the Windows Temp folder..." Get-ChildItem "$env:SystemRoot\Temp\*" -Recurse -Force -ErrorAction SilentlyContinue ` | remove-item -force -recurse -ErrorAction SilentlyContinue Write-Host "Deleting all files and folders in user's Temp folder..." Get-ChildItem "$env:SystemDrive\Users\*\AppData\Local\Temp\*" -Recurse -Force -ErrorAction SilentlyContinue ` | remove-item -force -recurse -ErrorAction SilentlyContinue Write-Host "Removing all files and folders in user's Temporary Internet Files..." Get-ChildItem "$env:SystemDrive\Users\*\AppData\Local\Microsoft\Windows\Temporary Internet Files\*" -Recurse -Force -ErrorAction SilentlyContinue ` | remove-item -force -recurse -ErrorAction SilentlyContinue Write-Host "Cleaning up user's Downloads..." Get-ChildItem "$env:SystemDrive\Users\*\Downloads\*" -Recurse -Force -ErrorAction SilentlyContinue ` | remove-item -force -recurse -ErrorAction SilentlyContinue Write-Host "Removing IE history..." cmd /c start /wait RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255 Write-Host "Removing contents of Recycle Bin..." $objShell = New-Object -ComObject Shell.Application $objFolder = $objShell.Namespace(0xA) $objFolder.items() | ForEach-Object { Remove-Item $_.path -ErrorAction Ignore -Force -Recurse } # clear event logs Write-Host "Clearing Event Logs..." Clear-EventLog -LogName Application Clear-EventLog -LogName Security Clear-EventLog -LogName System Clear-EventLog -LogName AppVeyor # Cleanup NuGet cache Write-Host "Deleting NuGet cache..." if (Test-Path "$env:USERPROFILE\.nuget\packages") { Remove-Item "$env:USERPROFILE.nuget\packages" -Force -Recurse } # clean /etc/hosts $etcHosts = "$env:windir\System32\drivers\etc\hosts" $filteredLines = (Get-Content $etcHosts | Where-Object {($_ -notmatch 'host.docker.internal') -and ($_ -notmatch 'gateway.docker.internal') }) Set-Content $etcHosts -Value $filteredLines Get-Content $etcHosts DisplayDiskInfo Write-Host "Done cleaning up Windows" -ForegroundColor Green |