355 lines
12 KiB
Markdown
355 lines
12 KiB
Markdown
# 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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
```batch
|
|
@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
|
|
```
|
|
|
|
2. Use Group Policy:
|
|
- Computer Configuration
|
|
- Windows Settings
|
|
- Scripts (Startup/Shutdown)
|
|
- Add the batch file
|
|
- Deploy to OUs
|
|
|
|
#### Deploy via Task Scheduler
|
|
|
|
```powershell
|
|
# 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
|
|
|
|
```powershell
|
|
# 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:**
|
|
```powershell
|
|
# 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
|
|
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:
|
|
|
|
```powershell
|
|
$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
|
|
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
|
|
|
|
```powershell
|
|
$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:**
|
|
- https://git.azuze.fr/kawa/Kawa-s-Bloat-Remover
|
|
|
|
**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
|
|
```powershell
|
|
# 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:
|
|
```powershell
|
|
# 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:
|
|
|
|
```powershell
|
|
# 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**
|
|
```powershell
|
|
Test-NetConnection -ComputerName git.azuze.fr -Port 443
|
|
```
|
|
|
|
2. **Verify TLS/SSL**
|
|
```powershell
|
|
[Net.ServicePointManager]::SecurityProtocol
|
|
```
|
|
|
|
3. **Test direct download**
|
|
```powershell
|
|
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**
|
|
- 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
|