Files
2026-07-21 09:57:38 +02:00

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:

  1. Download from the repository
  2. Request admin elevation if needed
  3. Execute silently
  4. 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)

  1. Open PowerShell as Administrator

    • Press Windows Key
    • Type powershell
    • Right-click "Windows PowerShell"
    • Select "Run as administrator"
  2. Copy the command (one of the above)

  3. Paste into PowerShell and press Enter

  4. Wait for completion (5-10 seconds)

  5. Verify with the Verify command above

For IT Professionals (Multiple PCs)

Deploy via Group Policy

  1. 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
  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

  1. PowerShell downloads the script

    • Uses HTTPS (encrypted)
    • Verifies SSL certificate
    • Downloads only when needed
  2. Script runs in memory

    • Never touches disk
    • Cannot be scanned by antivirus for pre-execution
    • Leaves no temporary files
  3. Admin elevation

    • Automatic if not admin
    • Prompts user before elevating
  4. 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 Bypass flag

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:


📊 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:

  1. Check internet connection

    Test-NetConnection -ComputerName git.azuze.fr -Port 443
    
  2. Verify TLS/SSL

    [Net.ServicePointManager]::SecurityProtocol
    
  3. 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
    
  4. Check repository access


Version: 1.0
Last Updated: 2026-07-21
Repository: https://git.azuze.fr/kawa/Kawa-s-Bloat-Remover