# Bloatware Removal Scripts Comprehensive scripts to silently remove manufacturer bloatware from PCs. Supports HP, Lenovo, ASUS, and Dell systems. **Repository:** https://git.azuze.fr/kawa/Kawa-s-Bloat-Remover --- ## 🚀 Quick Start - Run From Internet (No Download Needed) ### All Manufacturers (One Command) ```powershell powershell -ExecutionPolicy Bypass -Command "[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; Invoke-Expression(Invoke-WebRequest -Uri 'https://git.azuze.fr/kawa/Kawa-s-Bloat-Remover/raw/main/Remove-AllBloat.ps1' -UseBasicParsing).Content" ``` ### Scan First (See What Will Be Removed) ```powershell powershell -ExecutionPolicy Bypass -Command "[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; Invoke-Expression(Invoke-WebRequest -Uri 'https://git.azuze.fr/kawa/Kawa-s-Bloat-Remover/raw/main/Scan-Bloatware.ps1' -UseBasicParsing).Content" ``` ### Verify After Removal ```powershell powershell -ExecutionPolicy Bypass -Command "[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; Invoke-Expression(Invoke-WebRequest -Uri 'https://git.azuze.fr/kawa/Kawa-s-Bloat-Remover/raw/main/Verify-Removal.ps1' -UseBasicParsing).Content" ``` **Note:** Admin rights are automatically requested when needed. --- ## Scripts Included ### 1. **Remove-AllBloat.ps1** (Recommended) Removes bloatware from all four manufacturers in a single execution. **Usage:** ```powershell # Run with elevated privileges powershell -NoProfile -ExecutionPolicy Bypass -File "Remove-AllBloat.ps1" # Or run silently in background powershell -NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File "Remove-AllBloat.ps1" >$null 2>&1 ``` ### 2. **Remove-HPBloat.ps1** Targets HP-specific bloatware only. **Usage:** ```powershell powershell -NoProfile -ExecutionPolicy Bypass -File "Remove-HPBloat.ps1" ``` ### 3. **Remove-LenovoBloat.ps1** Targets Lenovo-specific bloatware only. **Usage:** ```powershell powershell -NoProfile -ExecutionPolicy Bypass -File "Remove-LenovoBloat.ps1" ``` ### 4. **Remove-ASUSBloat.ps1** Targets ASUS-specific bloatware only. **Usage:** ```powershell powershell -NoProfile -ExecutionPolicy Bypass -File "Remove-ASUSBloat.ps1" ``` ### 5. **Remove-DellBloat.ps1** Targets Dell-specific bloatware only. **Usage:** ```powershell powershell -NoProfile -ExecutionPolicy Bypass -File "Remove-DellBloat.ps1" ``` ### 6. **Run-AllBloat.bat** Batch file wrapper for silent execution via Command Prompt or Task Scheduler. **Usage:** ```cmd Run-AllBloat.bat ``` ## Remote Execution Methods ### Run From Internet (No Local File Needed) Execute directly from Git repository without downloading: #### All Manufacturers ```powershell powershell -ExecutionPolicy Bypass -Command "[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; Invoke-Expression(Invoke-WebRequest -Uri 'https://git.azuze.fr/kawa/Kawa-s-Bloat-Remover/raw/main/Remove-AllBloat.ps1' -UseBasicParsing).Content" ``` #### Manufacturer Specific ```powershell # HP Only powershell -ExecutionPolicy Bypass -Command "[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; Invoke-Expression(Invoke-WebRequest -Uri 'https://git.azuze.fr/kawa/Kawa-s-Bloat-Remover/raw/main/Remove-HPBloat.ps1' -UseBasicParsing).Content" # Lenovo Only powershell -ExecutionPolicy Bypass -Command "[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; Invoke-Expression(Invoke-WebRequest -Uri 'https://git.azuze.fr/kawa/Kawa-s-Bloat-Remover/raw/main/Remove-LenovoBloat.ps1' -UseBasicParsing).Content" # ASUS Only powershell -ExecutionPolicy Bypass -Command "[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; Invoke-Expression(Invoke-WebRequest -Uri 'https://git.azuze.fr/kawa/Kawa-s-Bloat-Remover/raw/main/Remove-ASUSBloat.ps1' -UseBasicParsing).Content" # Dell Only powershell -ExecutionPolicy Bypass -Command "[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; Invoke-Expression(Invoke-WebRequest -Uri 'https://git.azuze.fr/kawa/Kawa-s-Bloat-Remover/raw/main/Remove-DellBloat.ps1' -UseBasicParsing).Content" ``` #### Diagnostic Commands ```powershell # Scan first - see what will be removed powershell -ExecutionPolicy Bypass -Command "[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; Invoke-Expression(Invoke-WebRequest -Uri 'https://git.azuze.fr/kawa/Kawa-s-Bloat-Remover/raw/main/Scan-Bloatware.ps1' -UseBasicParsing).Content" # Verify after removal powershell -ExecutionPolicy Bypass -Command "[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; Invoke-Expression(Invoke-WebRequest -Uri 'https://git.azuze.fr/kawa/Kawa-s-Bloat-Remover/raw/main/Verify-Removal.ps1' -UseBasicParsing).Content" ``` ### Using Remote Launcher Script ```powershell # Download and execute launcher (allows parameter control) powershell -ExecutionPolicy Bypass -Command "[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; Invoke-Expression(Invoke-WebRequest -Uri 'https://git.azuze.fr/kawa/Kawa-s-Bloat-Remover/raw/main/Remote-Launch.ps1' -UseBasicParsing).Content" -Script All ``` **Parameters for Remote-Launch.ps1:** - `-Script All` (default): Remove all manufacturer bloatware - `-Script HP`: Remove HP only - `-Script Lenovo`: Remove Lenovo only - `-Script ASUS`: Remove ASUS only - `-Script Dell`: Remove Dell only - `-Script Scan`: Scan without removing - `-Script Verify`: Verify removal --- ## Silent Execution Methods ### Method 1: Batch File ```cmd Run-AllBloat.bat ``` ### Method 2: PowerShell Silent Mode ```powershell powershell -NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File "Remove-AllBloat.ps1" >$null 2>&1 ``` ### Method 3: Task Scheduler (Automated) ```powershell $TaskName = "Remove Bloatware" $TaskPath = "C:\path\to\Run-AllBloat.bat" $Action = New-ScheduledTaskAction -Execute "$TaskPath" $Trigger = New-ScheduledTaskTrigger -AtStartup $Principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -RunLevel Highest Register-ScheduledTask -TaskName $TaskName -Action $Action -Trigger $Trigger -Principal $Principal ``` ### Method 4: Quiet PowerShell Execution ```powershell Start-Process powershell.exe -ArgumentList "-NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File `"Remove-AllBloat.ps1`"" -WindowStyle Hidden -Wait ``` ## What Gets Removed ### HP - HP Support Assistant & Alerts - HP Cloud Recovery - HP Security Update - HP Wireless Assistant - HP Print Library - Various printer drivers (Deskjet, Officejet, Photosmart, Envy, LaserJet) - Related services and scheduled tasks ### Lenovo - Lenovo Vantage & Settings - Lenovo Companion - Power Management utilities - System Update tools - Lenovo OneKey Theater/Optimizer - Easy Camera - Related services and scheduled tasks ### ASUS - ASUS Live Update - ASUS WebStorage - ASUS Gamer OSD - ASUS Ambient & FX - Smart Gesture & Safe Face - Keyboard & Touchpad utilities - Turbo, GameVisual, Controller software - Related services and scheduled tasks ### Dell - Dell Update & System Detect - SupportAssist utilities - Display Manager & Easy Access - Dell Optimizer & Power Manager - Dell Dock - Command Update - Related services and scheduled tasks ## Removal Methods Each script uses multiple methods to ensure complete removal: 1. **WMI Uninstall** - Uses Win32_Product class to uninstall applications 2. **AppxPackage Removal** - Removes UWP apps for Windows 10+ 3. **Service Disabling** - Stops and disables associated Windows services 4. **Task Scheduler Cleanup** - Removes scheduled tasks 5. **Registry Cleanup** - Removes uninstall and run registry entries 6. **Directory Removal** - Deletes installation directories ## Silent Failure All scripts use `$ErrorActionPreference = 'SilentlyContinue'` to ensure: - No error messages appear - Script continues if an application isn't found - Script runs without user interaction - No output unless explicitly shown ## Requirements - **Windows 10 or later** - **Administrator privileges** - **PowerShell 5.0 or later** ## Safety Notes - These scripts are safe for end-user PCs and corporate deployments - No critical system files are removed - Manufacturer bloatware is frequently re-installed by update utilities - Consider re-running periodically or disabling manufacturer update services - Backup important data before running (though these scripts do not affect user data) ## Deployment Tips ### For Single PC: ```powershell # Download and run directly powershell -ExecutionPolicy Bypass -File "Remove-AllBloat.ps1" ``` ### For Multiple PCs (via Group Policy): Create a scheduled task with: - **Trigger:** At Startup or On a Schedule - **Action:** Run `Run-AllBloat.bat` with highest privileges - **Hidden:** Yes (Run with highest privileges) ### For Network Deployment: ```powershell # Copy script to network share, then execute on remote machines $Computer = "REMOTE-PC" $Script = "\\share\Remove-AllBloat.ps1" Invoke-Command -ComputerName $Computer -FilePath $Script ``` ## Logging (Optional) To add logging, modify the scripts to include: ```powershell $LogFile = "C:\Logs\bloatware-removal.log" Add-Content -Path $LogFile -Value "$(Get-Date): Bloatware removal started" ``` ## Troubleshooting ### Script won't run - Ensure Administrator privileges: `Run as Administrator` - Check execution policy: `Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser` ### AppxPackage removal fails - This is normal on systems without UWP apps - The script handles this silently ### Services won't stop - Some services may be in use; this is handled silently - System will restart to complete removal ### Registry entries remain - Some entries may be protected; the script handles this silently - These won't cause issues as the applications are removed ## Command Reference ```powershell # Run all manufacturers powershell -ExecutionPolicy Bypass -File "Remove-AllBloat.ps1" # Run HP only powershell -ExecutionPolicy Bypass -File "Remove-HPBloat.ps1" # Run silently in background (no window) powershell -WindowStyle Hidden -ExecutionPolicy Bypass -File "Remove-AllBloat.ps1" # Run with no output powershell -WindowStyle Hidden -ExecutionPolicy Bypass -File "Remove-AllBloat.ps1" >$null 2>&1 ``` ## Legal Notice These scripts are designed for: - Enterprise IT administrators removing pre-installed software - Individual users cleaning their own systems - Educational purposes These scripts should only be used on systems you own or have authorization to manage.