311 lines
10 KiB
Markdown
311 lines
10 KiB
Markdown
# 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.
|