12 KiB
Remote Execution Guide
Execute bloatware removal scripts directly from Git repository - no download needed.
🚀 One-Command Remote Execution
Simplest: Remove All Bloatware
Copy and paste this command in PowerShell (Admin mode):
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"
That's it! The script will:
- Download from the repository
- Request admin elevation if needed
- Execute silently
- Remove all bloatware
📋 All Remote Execution Commands
Full Removal (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 Removal
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
Preview What Will Be Removed (No 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/Scan-Bloatware.ps1' -UseBasicParsing).Content"
Verify Removal Was Successful
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"
🎯 How to Use (Step by Step)
For Users (Single PC)
-
Open PowerShell as Administrator
- Press
Windows Key - Type
powershell - Right-click "Windows PowerShell"
- Select "Run as administrator"
- Press
-
Copy the command (one of the above)
-
Paste into PowerShell and press Enter
-
Wait for completion (5-10 seconds)
-
Verify with the Verify command above
For IT Professionals (Multiple PCs)
Deploy via Group Policy
- Create a batch file with remote execution command:
@echo off
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" >nul 2>&1
- Use Group Policy:
- Computer Configuration
- Windows Settings
- Scripts (Startup/Shutdown)
- Add the batch file
- Deploy to OUs
Deploy via Task Scheduler
# Create scheduled task that runs at startup
$Uri = 'https://git.azuze.fr/kawa/Kawa-s-Bloat-Remover/raw/main/Remove-AllBloat.ps1'
$Cmd = "[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; Invoke-Expression(Invoke-WebRequest -Uri '$Uri' -UseBasicParsing).Content"
$Action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-NoProfile -ExecutionPolicy Bypass -Command `"$Cmd`""
$Trigger = New-ScheduledTaskTrigger -AtStartup
$Principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -RunLevel Highest
Register-ScheduledTask -TaskName "Remove Bloatware" -Action $Action -Trigger $Trigger -Principal $Principal -Force
Deploy to Remote Computers
# Deploy to multiple remote PCs
$Computers = "PC1", "PC2", "PC3"
$Uri = 'https://git.azuze.fr/kawa/Kawa-s-Bloat-Remover/raw/main/Remove-AllBloat.ps1'
foreach ($Computer in $Computers) {
Invoke-Command -ComputerName $Computer -ScriptBlock {
[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12
Invoke-Expression(Invoke-WebRequest -Uri $Uri -UseBasicParsing).Content
} -ArgumentList $Uri
}
🔒 How It Works (Security)
What Happens When You Run the Command
-
PowerShell downloads the script
- Uses HTTPS (encrypted)
- Verifies SSL certificate
- Downloads only when needed
-
Script runs in memory
- Never touches disk
- Cannot be scanned by antivirus for pre-execution
- Leaves no temporary files
-
Admin elevation
- Automatic if not admin
- Prompts user before elevating
-
Silent execution
- No output unless error
- No windows or popups
- Returns to prompt when done
Safety Verification
✅ Safe because:
- Repository is publicly accessible
- Scripts are version-controlled
- Changes are tracked in Git history
- You can audit before running
✅ Verify script before running:
# View script contents without executing
$Uri = 'https://git.azuze.fr/kawa/Kawa-s-Bloat-Remover/raw/main/Remove-AllBloat.ps1'
(Invoke-WebRequest -Uri $Uri -UseBasicParsing).Content | Out-Host
🔧 Advanced Usage
Run with Parameters
Using the Remote-Launch.ps1 script:
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 HP -Branch main
Available Parameters:
-Script: Which removal script to run (All, HP, Lenovo, ASUS, Dell, Scan, Verify, Deploy)-Branch: Git branch to use (default: main)-RepoURL: Custom repository URL
Run with Custom Repository
If you have forked the repository:
$RepoURL = 'https://git.azuze.fr/youruser/Kawa-s-Bloat-Remover'
$Uri = "$RepoURL/raw/main/Remove-AllBloat.ps1"
powershell -ExecutionPolicy Bypass -Command "[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; Invoke-Expression(Invoke-WebRequest -Uri '$Uri' -UseBasicParsing).Content"
Silent Execution (No Output)
powershell -ExecutionPolicy Bypass -WindowStyle Hidden -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" >$null 2>&1
Log Execution Results
$LogFile = 'C:\Logs\bloatware-removal.log'
$Uri = 'https://git.azuze.fr/kawa/Kawa-s-Bloat-Remover/raw/main/Remove-AllBloat.ps1'
"[$(Get-Date)] Starting bloatware removal..." | Add-Content $LogFile
powershell -ExecutionPolicy Bypass -Command "[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; Invoke-Expression(Invoke-WebRequest -Uri '$Uri' -UseBasicParsing).Content" 2>&1 | Add-Content $LogFile
"[$(Get-Date)] Bloatware removal complete." | Add-Content $LogFile
❓ Troubleshooting Remote Execution
Error: "Access to the path is denied"
- Run PowerShell as Administrator
- Use
-ExecutionPolicy Bypassflag
Error: "The underlying connection was closed"
- Update .NET Framework
- Run:
[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12
Error: "The remote name could not be resolved"
- Check internet connection
- Verify firewall allows HTTPS outbound
- Try with full URL: Check the exact repository URL
Script downloads but doesn't execute
- Check PowerShell execution policy
- Verify admin rights
- Check Windows Defender doesn't block it
Stuck/Hanging
- Wait 30 seconds (sometimes slow)
- Press Ctrl+C to cancel
- Try again, may need to disable antivirus temporarily
🌐 Repository URLs
Base Repository:
Raw Script URLs:
- https://git.azuze.fr/kawa/Kawa-s-Bloat-Remover/raw/main/Remove-AllBloat.ps1
- https://git.azuze.fr/kawa/Kawa-s-Bloat-Remover/raw/main/Remove-HPBloat.ps1
- https://git.azuze.fr/kawa/Kawa-s-Bloat-Remover/raw/main/Remove-LenovoBloat.ps1
- https://git.azuze.fr/kawa/Kawa-s-Bloat-Remover/raw/main/Remove-ASUSBloat.ps1
- https://git.azuze.fr/kawa/Kawa-s-Bloat-Remover/raw/main/Remove-DellBloat.ps1
- https://git.azuze.fr/kawa/Kawa-s-Bloat-Remover/raw/main/Scan-Bloatware.ps1
- https://git.azuze.fr/kawa/Kawa-s-Bloat-Remover/raw/main/Verify-Removal.ps1
- https://git.azuze.fr/kawa/Kawa-s-Bloat-Remover/raw/main/Remote-Launch.ps1
📊 Comparison: Local vs Remote
| Feature | Local File | Remote Execution |
|---|---|---|
| Download needed | Yes | No |
| Setup required | Some | None |
| Speed | Faster | Slightly slower |
| Disk space | ~40 KB | None |
| Offline capable | Yes | No |
| Always up-to-date | No | Yes |
| Easy sharing | No | Yes |
| Audit before run | Harder | Easy |
Best for:
- Local: Offline systems, frequent use, slow internet
- Remote: One-time use, updates, deployment, easy sharing
💡 Tips & Best Practices
Best Practice: Scan First
# 1. Always scan first to 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"
# 2. Review the output
# 3. Then run 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/Remove-AllBloat.ps1' -UseBasicParsing).Content"
# 4. Verify success
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"
Create a Shortcut
Create a .ps1 file on desktop:
# File: Bloatware-Remover.ps1
[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
Then run: powershell -ExecutionPolicy Bypass -File "Bloatware-Remover.ps1"
Automate with Task Scheduler
See "Deploy via Task Scheduler" section above
🔍 Verify Repository
Check that scripts are unmodified:
# Get latest commit hash
$Uri = 'https://git.azuze.fr/api/v1/repos/kawa/Kawa-s-Bloat-Remover/commits?limit=1'
$Response = Invoke-WebRequest -Uri $Uri -UseBasicParsing | ConvertFrom-Json
Write-Host "Latest Commit: $($Response[0].sha)"
Write-Host "Author: $($Response[0].author.name)"
Write-Host "Date: $($Response[0].created)"
📞 Support
For issues with remote execution:
-
Check internet connection
Test-NetConnection -ComputerName git.azuze.fr -Port 443 -
Verify TLS/SSL
[Net.ServicePointManager]::SecurityProtocol -
Test direct download
Invoke-WebRequest -Uri 'https://git.azuze.fr/kawa/Kawa-s-Bloat-Remover/raw/main/Remove-AllBloat.ps1' -UseBasicParsing | Select-Object -ExpandProperty Content | Head -20 -
Check repository access
- Visit: https://git.azuze.fr/kawa/Kawa-s-Bloat-Remover
- Browser should load without errors
Version: 1.0
Last Updated: 2026-07-21
Repository: https://git.azuze.fr/kawa/Kawa-s-Bloat-Remover