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 -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 -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"
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:
# 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 -NoProfile -ExecutionPolicy Bypass -File "Remove-HPBloat.ps1"
3. Remove-LenovoBloat.ps1
Targets Lenovo-specific bloatware only.
Usage:
powershell -NoProfile -ExecutionPolicy Bypass -File "Remove-LenovoBloat.ps1"
4. Remove-ASUSBloat.ps1
Targets ASUS-specific bloatware only.
Usage:
powershell -NoProfile -ExecutionPolicy Bypass -File "Remove-ASUSBloat.ps1"
5. Remove-DellBloat.ps1
Targets Dell-specific bloatware only.
Usage:
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:
Run-AllBloat.bat
Remote Execution Methods
Run From Internet (No Local File Needed)
Execute directly from Git repository without downloading:
All Manufacturers
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
# 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
# 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
# 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
Run-AllBloat.bat
Method 2: PowerShell Silent Mode
powershell -NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File "Remove-AllBloat.ps1" >$null 2>&1
Method 3: Task Scheduler (Automated)
$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
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:
- WMI Uninstall - Uses Win32_Product class to uninstall applications
- AppxPackage Removal - Removes UWP apps for Windows 10+
- Service Disabling - Stops and disables associated Windows services
- Task Scheduler Cleanup - Removes scheduled tasks
- Registry Cleanup - Removes uninstall and run registry entries
- 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:
# 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.batwith highest privileges - Hidden: Yes (Run with highest privileges)
For Network Deployment:
# 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:
$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
# 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.