From 2f58a24c99ba1d71c7ef8a8f77d18da6d2ccfdaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20QUEROL?= <2+kawa@not.obvious> Date: Tue, 21 Jul 2026 09:30:32 +0200 Subject: [PATCH] Upload files to "/" --- README.md | 232 +++++++++++++++++++++++++++++++++++++++++++ Remove-ASUSBloat.ps1 | 99 ++++++++++++++++++ Remove-AllBloat.ps1 | 137 +++++++++++++++++++++++++ Remove-DellBloat.ps1 | 99 ++++++++++++++++++ Remove-HPBloat.ps1 | 97 ++++++++++++++++++ 5 files changed, 664 insertions(+) create mode 100644 README.md create mode 100644 Remove-ASUSBloat.ps1 create mode 100644 Remove-AllBloat.ps1 create mode 100644 Remove-DellBloat.ps1 create mode 100644 Remove-HPBloat.ps1 diff --git a/README.md b/README.md new file mode 100644 index 0000000..8a99163 --- /dev/null +++ b/README.md @@ -0,0 +1,232 @@ +# Bloatware Removal Scripts + +Comprehensive scripts to silently remove manufacturer bloatware from PCs. Supports HP, Lenovo, ASUS, and Dell systems. + +## 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 +``` + +## 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. diff --git a/Remove-ASUSBloat.ps1 b/Remove-ASUSBloat.ps1 new file mode 100644 index 0000000..c8a7ae5 --- /dev/null +++ b/Remove-ASUSBloat.ps1 @@ -0,0 +1,99 @@ +# Remove ASUS Bloatware - Silent mode with error suppression +# Run as Administrator + +#Requires -RunAsAdministrator + +$ErrorActionPreference = 'SilentlyContinue' +$ProgressPreference = 'SilentlyContinue' + +# ASUS Bloatware packages to remove +$ASUSApps = @( + 'ASUS.*Live.*Update', + 'ASUS.*WebStorage', + 'ASUS.*Gamer.*OSD', + 'ASUS.*Ambient', + 'ASUS.*FX', + 'ASUS.*Splendid', + 'ASUS.*Smart.*Gesture', + 'ASUS.*Safe.*Face', + 'ASUS.*Keyboard', + 'ASUS.*Touchpad', + 'ASUS.*Turbo', + 'ASUS.*GameVisual', + 'ASUS.*Controller', + 'ASUSSMS', + 'ASUS.*Sonic.*Studio', + 'ASUS.*Experience.*Link' +) + +# Remove via WMI +foreach ($app in $ASUSApps) { + try { + $installed = Get-WmiObject -Class Win32_Product -Filter "Name LIKE '$app'" -ErrorAction SilentlyContinue + foreach ($item in $installed) { + $item.Uninstall() | Out-Null + } + } catch { } +} + +# Remove via PowerShell App Removal +foreach ($app in $ASUSApps) { + try { + Get-AppxPackage -Name "*ASUS*" -AllUsers -ErrorAction SilentlyContinue | Remove-AppxPackage -AllUsers + } catch { } +} + +# Remove ASUS services +$ASUSServices = @( + 'ASUSLinkNear', + 'ASUSLinkRemote', + 'ASUSWebStorage', + 'ASUSGiftBox', + 'ArmouryCrate', + 'asComSvc' +) + +foreach ($service in $ASUSServices) { + try { + $svc = Get-Service -Name $service -ErrorAction SilentlyContinue + if ($svc) { + Stop-Service -Name $service -Force + Set-Service -Name $service -StartupType Disabled + } + } catch { } +} + +# Remove ASUS scheduled tasks +try { + Get-ScheduledTask -TaskPath "*ASUS*" -ErrorAction SilentlyContinue | Unregister-ScheduledTask -Confirm:$false +} catch { } + +# Remove from Registry +try { + $ASUSRegPaths = @( + 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*ASUS*', + 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\*ASUS*', + 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\*ASUS*' + ) + + foreach ($path in $ASUSRegPaths) { + Remove-Item -Path $path -Force -Recurse + } +} catch { } + +# Remove ASUS installation directories +$ASUSDirs = @( + 'C:\Program Files\ASUS', + 'C:\Program Files (x86)\ASUS', + 'C:\ProgramData\ASUS' +) + +foreach ($dir in $ASUSDirs) { + try { + if (Test-Path $dir) { + Remove-Item -Path $dir -Recurse -Force + } + } catch { } +} + +Write-Host "ASUS bloatware removal complete." -ForegroundColor Green diff --git a/Remove-AllBloat.ps1 b/Remove-AllBloat.ps1 new file mode 100644 index 0000000..8c65045 --- /dev/null +++ b/Remove-AllBloat.ps1 @@ -0,0 +1,137 @@ +# Remove all manufacturer bloatware in one script - Silent mode with error suppression +# Run as Administrator + +#Requires -RunAsAdministrator + +$ErrorActionPreference = 'SilentlyContinue' +$ProgressPreference = 'SilentlyContinue' + +# All bloatware patterns for HP, Lenovo, ASUS, Dell +$BloatwarePatterns = @( + # HP + 'HP.*Support.*Assistant', 'HP.*Alerts', 'HPControlledShutdown', 'HP.*Cloud.*Recover', + 'HP.*Client.*Services', 'HP.*Quickdrop', 'HP.*Photo.*Creations', 'HP.*Security.*Update', + 'HPIASystemAgent', 'HP.*Wireless.*Assistant', 'HP.*Print.*Library', + + # Lenovo + 'Lenovo.*Settings', 'Lenovo.*Vantage', 'Lenovo.*Companion', 'Lenovo.*PowerManagement', + 'Lenovo.*SystemUpdate', 'Lenovo.*UltraCharger', 'Lenovo.*Battery', 'Lenovo.*Nerve', + 'Lenovo.*FusionEngine', 'LenovoLauncher', 'LenovoEasyCamera', + + # ASUS + 'ASUS.*Live.*Update', 'ASUS.*WebStorage', 'ASUS.*Gamer.*OSD', 'ASUS.*Ambient', + 'ASUS.*FX', 'ASUS.*Splendid', 'ASUS.*Smart.*Gesture', 'ASUS.*Safe.*Face', + 'ASUS.*Keyboard', 'ASUS.*Touchpad', 'ASUS.*Turbo', 'ASUS.*GameVisual', + + # Dell + 'Dell.*Update', 'DellSystemDetect', 'DellClientManagementService', 'Dell.*Backup', + 'Dell.*Dock', 'Dell.*Display.*Manager', 'Dell.*Easy.*Access', 'Dell.*Foundation.*Services', + 'Dell.*SupportAssist', 'Dell.*Optimizer' +) + +# Manufacturer-specific services to disable +$BloatServices = @( + # HP + 'hpsysdrv', 'HPDrvMaintSvc', + + # Lenovo + 'LenovoCOMSvc', 'LenovoUpdate', 'LenovoWifiDisplayService', 'lolmsvc', 'LenovoEasyPlus', + + # ASUS + 'ASUSLinkNear', 'ASUSLinkRemote', 'ASUSWebStorage', 'ASUSGiftBox', 'ArmouryCrate', 'asComSvc', + + # Dell + 'DellClientManagementService', 'DellSystemDetect', 'DSAService', 'DellDataTransport', 'DellSSDMonitor' +) + +# Uninstall via WMI +Write-Host "[*] Removing via WMI..." -ForegroundColor Cyan +foreach ($pattern in $BloatwarePatterns) { + try { + $apps = Get-WmiObject -Class Win32_Product -Filter "Name LIKE '$pattern'" -ErrorAction SilentlyContinue + foreach ($app in $apps) { + $app.Uninstall() | Out-Null + } + } catch { } +} + +# Remove AppxPackages +Write-Host "[*] Removing AppxPackages..." -ForegroundColor Cyan +$Manufacturers = @('*HP*', '*Lenovo*', '*ASUS*', '*Dell*') +foreach ($mfg in $Manufacturers) { + try { + Get-AppxPackage -Name $mfg -AllUsers -ErrorAction SilentlyContinue | Remove-AppxPackage -AllUsers + } catch { } +} + +# Disable and stop services +Write-Host "[*] Disabling services..." -ForegroundColor Cyan +foreach ($service in $BloatServices) { + try { + $svc = Get-Service -Name $service -ErrorAction SilentlyContinue + if ($svc) { + Stop-Service -Name $service -Force + Set-Service -Name $service -StartupType Disabled + } + } catch { } +} + +# Remove scheduled tasks +Write-Host "[*] Removing scheduled tasks..." -ForegroundColor Cyan +foreach ($mfg in @('HP', 'Lenovo', 'ASUS', 'Dell')) { + try { + Get-ScheduledTask -TaskPath "*$mfg*" -ErrorAction SilentlyContinue | Unregister-ScheduledTask -Confirm:$false + } catch { } +} + +# Clean registry +Write-Host "[*] Cleaning registry..." -ForegroundColor Cyan +$RegPaths = @( + 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*HP*', + 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*Lenovo*', + 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*ASUS*', + 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*Dell*', + 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\*HP*', + 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\*Lenovo*', + 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\*ASUS*', + 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\*Dell*', + 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\*HP*', + 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\*Lenovo*', + 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\*ASUS*', + 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\*Dell*' +) + +foreach ($path in $RegPaths) { + try { + Remove-Item -Path $path -Force -Recurse + } catch { } +} + +# Remove installation directories +Write-Host "[*] Removing installation directories..." -ForegroundColor Cyan +$Directories = @( + 'C:\Program Files\HP', + 'C:\Program Files (x86)\HP', + 'C:\Program Files\Hewlett-Packard', + 'C:\Program Files (x86)\Hewlett-Packard', + 'C:\Program Files\Lenovo', + 'C:\Program Files (x86)\Lenovo', + 'C:\ProgramData\Lenovo', + 'C:\Program Files\ASUS', + 'C:\Program Files (x86)\ASUS', + 'C:\ProgramData\ASUS', + 'C:\Program Files\Dell', + 'C:\Program Files (x86)\Dell', + 'C:\ProgramData\Dell', + 'C:\ProgramData\SupportAssist' +) + +foreach ($dir in $Directories) { + try { + if (Test-Path $dir) { + Remove-Item -Path $dir -Recurse -Force + } + } catch { } +} + +Write-Host "[+] All bloatware removal complete." -ForegroundColor Green diff --git a/Remove-DellBloat.ps1 b/Remove-DellBloat.ps1 new file mode 100644 index 0000000..6caafd0 --- /dev/null +++ b/Remove-DellBloat.ps1 @@ -0,0 +1,99 @@ +# Remove Dell Bloatware - Silent mode with error suppression +# Run as Administrator + +#Requires -RunAsAdministrator + +$ErrorActionPreference = 'SilentlyContinue' +$ProgressPreference = 'SilentlyContinue' + +# Dell Bloatware packages to remove +$DellApps = @( + 'Dell.*Update', + 'DellSystemDetect', + 'DellClientManagementService', + 'Dell.*Backup', + 'Dell.*Dock', + 'Dell.*Display.*Manager', + 'Dell.*Easy.*Access', + 'Dell.*Foundation.*Services', + 'Dell.*SupportAssist', + 'Dell.*SupportAssistRemediation', + 'Dell.*Optimizer', + 'DellPowerManager', + 'Dell.*Command.*Update', + 'Dell.*KACE', + 'Alienware.*' +) + +# Remove via WMI +foreach ($app in $DellApps) { + try { + $installed = Get-WmiObject -Class Win32_Product -Filter "Name LIKE '$app'" -ErrorAction SilentlyContinue + foreach ($item in $installed) { + $item.Uninstall() | Out-Null + } + } catch { } +} + +# Remove via PowerShell App Removal +foreach ($app in $DellApps) { + try { + Get-AppxPackage -Name "*Dell*" -AllUsers -ErrorAction SilentlyContinue | Remove-AppxPackage -AllUsers + } catch { } +} + +# Remove Dell services +$DellServices = @( + 'DellClientManagementService', + 'DellSystemDetect', + 'DSAService', + 'DellDataTransport', + 'DellSSDMonitor', + 'DellPowerManagementService' +) + +foreach ($service in $DellServices) { + try { + $svc = Get-Service -Name $service -ErrorAction SilentlyContinue + if ($svc) { + Stop-Service -Name $service -Force + Set-Service -Name $service -StartupType Disabled + } + } catch { } +} + +# Remove Dell scheduled tasks +try { + Get-ScheduledTask -TaskPath "*Dell*" -ErrorAction SilentlyContinue | Unregister-ScheduledTask -Confirm:$false +} catch { } + +# Remove from Registry +try { + $DellRegPaths = @( + 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*Dell*', + 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\*Dell*', + 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\*Dell*' + ) + + foreach ($path in $DellRegPaths) { + Remove-Item -Path $path -Force -Recurse + } +} catch { } + +# Remove Dell installation directories +$DellDirs = @( + 'C:\Program Files\Dell', + 'C:\Program Files (x86)\Dell', + 'C:\ProgramData\Dell', + 'C:\ProgramData\SupportAssist' +) + +foreach ($dir in $DellDirs) { + try { + if (Test-Path $dir) { + Remove-Item -Path $dir -Recurse -Force + } + } catch { } +} + +Write-Host "Dell bloatware removal complete." -ForegroundColor Green diff --git a/Remove-HPBloat.ps1 b/Remove-HPBloat.ps1 new file mode 100644 index 0000000..4a82cc7 --- /dev/null +++ b/Remove-HPBloat.ps1 @@ -0,0 +1,97 @@ +# Remove HP Bloatware - Silent mode with error suppression +# Run as Administrator + +#Requires -RunAsAdministrator + +$ErrorActionPreference = 'SilentlyContinue' +$ProgressPreference = 'SilentlyContinue' + +# HP Bloatware packages to remove +$HPApps = @( + 'HP.*Support.*Assistant', + 'HP.*Alerts', + 'HPControlledShutdown', + 'HP.*Cloud.*Recover', + 'HP.*Client.*Services', + 'HP.*Quickdrop', + 'HP.*Photo.*Creations', + 'HP.*Security.*Update', + 'HPIASystemAgent', + 'HP.*Wireless.*Assistant', + 'HP.*Print.*Library', + 'HPDeskjet.*', + 'HPOfficejet.*', + 'HPPhotosmart.*', + 'HPEnvy.*', + 'HPLaserJet.*' +) + +# Remove via WMI (works for most systems) +foreach ($app in $HPApps) { + try { + $installed = Get-WmiObject -Class Win32_Product -Filter "Name LIKE '$app'" -ErrorAction SilentlyContinue + foreach ($item in $installed) { + $item.Uninstall() | Out-Null + } + } catch { } +} + +# Remove via PowerShell App Removal (Windows 10+) +foreach ($app in $HPApps) { + try { + Get-AppxPackage -Name "*HP*" -AllUsers -ErrorAction SilentlyContinue | Remove-AppxPackage -AllUsers + } catch { } +} + +# Remove HP services +$HPServices = @( + 'hpsysdrv', + 'HPDrvMaintSvc', + 'HP*' +) + +foreach ($service in $HPServices) { + try { + $svc = Get-Service -Name $service -ErrorAction SilentlyContinue + if ($svc) { + Stop-Service -Name $service -Force + Set-Service -Name $service -StartupType Disabled + } + } catch { } +} + +# Remove HP scheduled tasks +try { + Get-ScheduledTask -TaskPath "*HP*" -ErrorAction SilentlyContinue | Unregister-ScheduledTask -Confirm:$false +} catch { } + +# Remove HP registry entries and startup items +try { + $HPRegPaths = @( + 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*HP*', + 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\*HP*', + 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\*HP*' + ) + + foreach ($path in $HPRegPaths) { + Remove-Item -Path $path -Force -Recurse + } +} catch { } + +# Remove HP installation directories +$HPDirs = @( + 'C:\Program Files\HP', + 'C:\Program Files (x86)\HP', + 'C:\Program Files\Hewlett-Packard', + 'C:\Program Files (x86)\Hewlett-Packard' +) + +foreach ($dir in $HPDirs) { + try { + if (Test-Path $dir) { + Remove-Item -Path $dir -Recurse -Force + } + } catch { } +} + +Write-Host "HP bloatware removal complete." -ForegroundColor Green