# ============================================================================= # NOM : Script de Désinstallation & Nettoyage WEBROOT # VERSION : 1.1 (Audit & Clean) # DESCRIPTION : Autorisation PS1 + Désinstallation + Nettoyage résidus # EXECUTION : SYSTEM # ============================================================================= # Configuration de l'environnement d'exécution # On autorise l'exécution de scripts pour la session en cours Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force $ErrorActionPreference = "SilentlyContinue" function Log-Activity { Param ([string]$Phase, [string]$Status, [string]$Message) $TimeStamp = Get-Date -Format "HH:mm:ss" Write-Host "[$TimeStamp] [$Phase] [$Status] $Message" } Write-Host "--- RAPPORT D'INTERVENTION WEBROOT v1.1 ---" Log-Activity "SETUP" "OK" "ExecutionPolicy configurée sur Bypass pour la session." # 1. RECHERCHE DE L'AGENT ET DE LA COMMANDE DE DÉSINSTRALLATION Log-Activity "AUDIT" "RECHERCHE" "Localisation de Webroot..." $WR_Paths = @("C:\Program Files (x86)\Webroot\WRSA.exe", "C:\Program Files\Webroot\WRSA.exe") $WR_Exe = $null foreach ($path in $WR_Paths) { if (Test-Path $path) { $WR_Exe = $path; break } } if ($WR_Exe) { Log-Activity "DETECTE" "PRÉSENT" "Webroot trouvé : $WR_Exe" # Tentative de désinstallation silencieuse officielle Log-Activity "ACTION" "UNINSTALL" "Lancement de la désinstallation silencieuse..." Start-Process -FilePath $WR_Exe -ArgumentList "-uninstall" -WindowStyle Hidden -Wait Start-Sleep -Seconds 5 } else { Log-Activity "AUDIT" "ABSENT" "L'exécutable WRSA.exe n'a pas été trouvé." } # 2. NEUTRALISATION DES SERVICES (DRIVER KERNEL) Log-Activity "PHASE" "SERVICES" "Vérification des drivers Webroot..." $WR_Services = @("WRSVC", "WRSA", "WRKrn", "WRCore", "WREDRS") foreach ($srvName in $WR_Services) { if (Get-Service $srvName -ErrorAction SilentlyContinue) { Log-Activity "SERVICE" "DETECTE" "Service actif trouvé : $srvName" # Désactivation dans le registre (Start=4) pour le prochain reboot cmd.exe /c "reg add HKLM\SYSTEM\CurrentControlSet\Services\$srvName /v Start /t REG_DWORD /d 4 /f" | Out-Null Stop-Service $srvName -Force -ErrorAction SilentlyContinue sc.exe delete $srvName | Out-Null Log-Activity "SERVICE" "ACTION" "Service neutralisé et marqué pour suppression." } else { Log-Activity "SERVICE" "ABSENT" "Service $srvName non trouvé." } } # 3. NETTOYAGE DES FICHIERS ET DOSSIERS Log-Activity "PHASE" "FICHIERS" "Nettoyage des dossiers résiduels..." $WR_Folders = @( "C:\Program Files (x86)\Webroot", "C:\Program Files\Webroot", "$env:ProgramData\WRData" ) foreach ($folder in $WR_Folders) { if (Test-Path $folder) { Log-Activity "FICHIER" "DETECTE" "Dossier trouvé : $folder" Remove-Item -Path $folder -Recurse -Force -ErrorAction SilentlyContinue if (Test-Path $folder) { Log-Activity "FICHIER" "ECHEC" "Dossier verrouillé par le driver Kernel. Sera supprimé au reboot." # Programmation RunOnce pour le nettoyage final au reboot $CleanCmd = "cmd.exe /c rmdir /s /q `"$folder`"" Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" -Name "CleanWebroot" -Value $CleanCmd } else { Log-Activity "FICHIER" "SUCCÈS" "Dossier supprimé." } } } # 4. NETTOYAGE DU REGISTRE (INVENTAIRE) Log-Activity "PHASE" "REGISTRE" "Nettoyage des clés d'inventaire..." $WR_RegKeys = @( "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Webroot", "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Webroot", "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WRSA", "HKLM:\SOFTWARE\WRData", "HKLM:\SOFTWARE\Webroot" ) foreach ($key in $WR_RegKeys) { if (Test-Path $key) { Remove-Item -Path $key -Recurse -Force -ErrorAction SilentlyContinue Log-Activity "REGISTRE" "SUCCÈS" "Clé supprimée." } } Write-Host "`n--- RAPPORT TERMINÉ ---"