diff --git a/Uninstall-HP-Bloatware.ps1 b/Uninstall-HP-Bloatware.ps1 new file mode 100644 index 0000000..23e2093 --- /dev/null +++ b/Uninstall-HP-Bloatware.ps1 @@ -0,0 +1,282 @@ +# #################################### +# Author : Sam Nang SOK +# Version : 1.0 +# Role : Desintaller logiciels HP +# Source : https://gist.github.com/mark05e/a79221b4245962a477a49eb281d97388#file-remove-hpbloatware-ps1 +# Source : https://github.com/JoachimBerghmans/Powershell/blob/main/Autopilot/Remove-Bloatware.ps1 +# #################################### + +function Write-LogEntry { + param ( + [parameter(Mandatory = $true, HelpMessage = "Ajout de la valeur du fichier log")] + [ValidateNotNullOrEmpty()] + [string]$Value, + + [parameter(Mandatory = $true, HelpMessage = "Niveau de status du fichier log. 1 Pour information, 2 Pour avertissement et 3 Pour erreur.")] + [ValidateNotNullOrEmpty()] + [ValidateSet("1", "2", "3")] + [string]$Severity, + + [parameter(Mandatory = $false, HelpMessage = "Nom du fichier log")] + [ValidateNotNullOrEmpty()] + [string]$FileName = "Remove-HP-Bloatware.log" + ) + # Emplacment du fichier log + $LogFilePath = Join-Path -Path (Join-Path -Path $env:windir -ChildPath "Install") -ChildPath $FileName + + # Construire HH:mm:ss horloge pour le fichier de log + $Time = -join @((Get-Date -Format "HH:mm:ss.fff"), "+", (Get-WmiObject -Class Win32_TimeZone | Select-Object -ExpandProperty Bias)) + + # Date de contruction du fichier log + $Date = (Get-Date -Format "MM-dd-yyyy") + + # Construction contexte fichier log + $Context = $([System.Security.Principal.WindowsIdentity]::GetCurrent().Name) + + # Construction final du fichier log + $LogText = "" + + # Ajout des valeurs dans les logs + try { + Out-File -InputObject $LogText -Append -NoClobber -Encoding Default -FilePath $LogFilePath -ErrorAction Stop + } + catch [System.Exception] { + Write-Warning -Message "Impossible d'ajouter le fichier log Remove-HP-Bloatware.log Message erreur sur la ligne $($_.InvocationInfo.ScriptLineNumber): $($_.Exception.Message)" + } +} + + +#Supprimer HP Documentation +if (Test-Path "C:\Program Files\HP\Documentation\Doc_uninstall.cmd" -PathType Leaf){ +Try { +Invoke-Item "C:\Program Files\HP\Documentation\Doc_uninstall.cmd" +Write-LogEntry -Value "Package supprime avec succes: HP Documentation" -Severity 1 +} +Catch { + Write-LogEntry -Value "Erreur de suppression HP Documentation $($_.Exception.Message)" -Severity 3 + } +} +Else { + Write-LogEntry -Value "HP Documentation est pas installe" -Severity 1 +} + +#Supprimer HP Support Assistant en mode silencieux +$HPSAuninstall = "C:\Program Files (x86)\HP\HP Support Framework\UninstallHPSA.exe" + +if (Test-Path -Path "HKLM:\Software\WOW6432Node\Hewlett-Packard\HPActiveSupport") { +Try { + Remove-Item -Path "HKLM:\Software\WOW6432Node\Hewlett-Packard\HPActiveSupport" + Write-LogEntry -Value "HP Support Assistant regkey supprime $($_.Exception.Message)" -Severity 1 +} +Catch { + Write-LogEntry -Value "Erreur lors de la recuperation de la cle de registre pour HP Support Assistant: $($_.Exception.Message)" -Severity 3 + } +} +Else { + Write-LogEntry -Value "HP Support Assistant regkey non trouve" -Severity 1 +} + +if (Test-Path $HPSAuninstall -PathType Leaf) { +Try { + & $HPSAuninstall /s /v/qn UninstallKeepPreferences=FALSE + Write-LogEntry -Value "Package supprime avec succes: HP Support Assistant en mode silencieux" -Severity 1 +} + Catch { + Write-LogEntry -Value "Erreur lors de la desinstallation de HP Support Assistant: $($_.Exception.Message)" -Severity 3 + } +} +Else { + Write-LogEntry -Value "Programme de desinstallation de HP Support Assistant introuvable" -Severity 1 +} + + +#Suppression HP Connection Optimizer +$HPCOuninstall = "C:\Program Files (x86)\InstallShield Installation Information\{6468C4A5-E47E-405F-B675-A70A70983EA6}\setup.exe" + +#Copie du fichier desinstallation +xcopy /y .\uninstallHPCO.iss C:\Windows\install\ +Write-LogEntry -Value "Fichier copie avec succes uninstallHPCO.iss to C:\Windows\install " -Severity 1 + +if (Test-Path $HPCOuninstall -PathType Leaf){ +Try { + & $HPCOuninstall -runfromtemp -l0x0413 -removeonly -s -f1C:\Windows\install\uninstallHPCO.iss + Write-LogEntry -Value "Suppression reussie pour HP Connection Optimizer" -Severity 1 + } +Catch { + Write-LogEntry -Value "Erreur lors de la desinstallation pour HP Connection Optimizer: $($_.Exception.Message)" -Severity 3 + } +} +Else { + Write-LogEntry -Value "HP Connection Optimizer non trouve" -Severity 1 +} + +#Liste des packages integres pour la suppression +#Commande : Get-AppxPackage -AllUsers | where-object {$_.Publisher -notlike "*Microsoft*"} | where-object {$_.Publisher -notlike "*Skype*"} | Format-Table +$UninstallPackages = @( +"AD2F1837.HPJumpStarts" +"AD2F1837.HPPCHardwareDiagnosticsWindows" +"AD2F1837.HPPowerManager" +"AD2F1837.HPPrivacySettings" +"AD2F1837.HPSupportAssistant" +"AD2F1837.HPSureShieldAI" +"AD2F1837.HPSystemInformation" +"AD2F1837.HPQuickDrop" +"AD2F1837.HPWorkWell" +"AD2F1837.myHP" +"AD2F1837.HPDesktopSupportUtilities" +"AD2F1837.HPEasyClean" +"AD2F1837.HPSystemInformation" +) + +#Liste des programmes pour la desinstallation +#Commande : Get-WmiObject -Class Win32_Product | Where-Object{$_.Name -like "HP*"} +$UninstallPrograms = @( +"HP Connection Optimizer" +"HP Documentation" +"HP MAC Address Manager" +"HP Notifications" +"HP Security Update Service" +"HP System Default Settings" +"HP Sure Click" +"HP Sure Run" +"HP Sure Recover" +"HP Sure Sense" +"HP Sure Sense Installer" +"HP Wolf Security Application Support for Sure Sense" +"HP Wolf Security Application Support for Windows" +"HP Client Security Manager" +"HP Wolf Security" +) + +#Obtenir une liste des packages installes correspondant a notre liste +$InstalledPackages = Get-AppxPackage -AllUsers | Where-Object {($UninstallPackages -contains $_.Name)} + +#Obtenez une liste des packages provisionnes correspondant a notre liste +$ProvisionedPackages = Get-AppxProvisionedPackage -Online | Where-Object {($UninstallPackages -contains $_.DisplayName)} + +#Obtenir une liste des programmes installes correspondant a notre liste +$InstalledPrograms = Get-Package | Where-Object {$UninstallPrograms -contains $_.Name} + + +#Supprimer d'abord les packages provisionnes +ForEach ($ProvPackage in $ProvisionedPackages) { + +Write-LogEntry -Value "Tentative de suppression du package provisionne: [$($ProvPackage.DisplayName)]" -Severity 1 + +Try { + $Null = Remove-AppxProvisionedPackage -PackageName $ProvPackage.PackageName -Online -ErrorAction Stop + Write-LogEntry -Value "Package provisionne supprime avec succes: [$($ProvPackage.DisplayName)]" -Severity 1 +} +Catch { + Write-LogEntry -Value "echec de la suppression du package provisionne: [$($ProvPackage.DisplayName)] Erreur message: $($_.Exception.Message)" -Severity 3 +} +} + +#Supression des appx packages +ForEach ($AppxPackage in $InstalledPackages) { + +Write-LogEntry -Value "Tentative de suppression du package Appx: [$($AppxPackage.Name)] " -Severity 1 + +Try { + $Null = Remove-AppxPackage -Package $AppxPackage.PackageFullName -AllUsers -ErrorAction Stop + Write-LogEntry -Value "Package Appx supprime avec succes: [$($AppxPackage.Name)]" -Severity 1 +} +Catch { + Write-LogEntry -Value "echec de la suppression du package Appx: [$($AppxPackage.Name)] Erreur message: $($_.Exception.Message)" -Severity 3 +} +} + +#Supprimer les programmes installes +$InstalledPrograms | ForEach-Object { + +Write-LogEntry -Value "Tentative de desinstallation: [$($_.Name)]" -Severity 1 + +Try { + $Null = $_ | Uninstall-Package -AllVersions -Force -ErrorAction Stop + Write-LogEntry -Value "Desinstallation reussie: [$($_.Name)]" -Severity 1 +} +Catch { + Write-LogEntry -Value "Erreur de desinstallation: [$($_.Name)] Erreur message: $($_.Exception.Message)" -Severity 3 +} +} + +#Tentative de secours 1 pour supprimer HP Wolf Security a l'aide de msiexec +Try { +MsiExec /x "{0E2E04B0-9EDD-11EB-B38C-10604B96B11E}" /qn /norestart +Write-LogEntry -Value "Lancement de la desinstallation de MSI pour HP Wolf Security" -Severity 1 +} +Catch { +Write-LogEntry -Value "Erreur de desinstallation HP Wolf Security using MSI - Erreur message: $($_.Exception.Message)" -Severity 3 +} + +#Tentative de secours 2 pour supprimer HP Wolf Security a l'aide de msiexec +Try { +MsiExec /x "{4DA839F0-72CF-11EC-B247-3863BB3CB5A8}" /qn /norestart +Write-LogEntry -Value "Lancement de la desinstallation de MSI pour HP Wolf 2 Security" -Severity 1 +} +Catch { +Write-LogEntry -Value "Erreur de desinstallation HP Wolf Security 2 using MSI - Error message: $($_.Exception.Message)" -Severity 3 +} + + +#Supprimer les raccourcis +$pathTCO = "C:\ProgramData\HP\TCO" +$pathTCOc = "C:\Users\Public\Desktop\TCO Certified.lnk" +$pathOS = "C:\Program Files (x86)\Online Services" +$pathFT = "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Free Trials.lnk" + +if (Test-Path $pathTCO) { +Try { + Remove-Item -LiteralPath $pathTCO -Force -Recurse + Write-LogEntry -Value "Raccourci pour $pathTCO supprime" -Severity 1 +} + Catch { + Write-LogEntry -Value "Erreur lors de la suppression $pathTCO $($_.Exception.Message)" -Severity 3 + } +} +Else { + Write-LogEntry -Value "Dossier $pathTCO pas trouve" -Severity 1 +} + +if (Test-Path $pathTCOc -PathType Leaf) { +Try { + Remove-Item -Path $pathTCOc -Force -Recurse + Write-LogEntry -Value "Raccourci pour $pathTCOc supprime" -Severity 1 +} + Catch { + Write-LogEntry -Value "Erreur lors de la suppression $pathTCOc $($_.Exception.Message)" -Severity 3 + } +} +Else { + Write-LogEntry -Value "Fichier $pathTCOc pas trouve" -Severity 1 +} + +if (Test-Path $pathOS) { +Try { + Remove-Item -LiteralPath $pathOS -Force -Recurse + Write-LogEntry -Value "Raccourci pour $pathOS supprime" -Severity 1 +} + Catch { + Write-LogEntry -Value "Erreur lors de la suppression $pathOS $($_.Exception.Message)" -Severity 3 + } +} +Else { + Write-LogEntry -Value "Dossier $pathOS pas trouve" -Severity 1 +} + +if (Test-Path $pathFT -PathType Leaf) { +Try { + Remove-Item -Path $pathFT -Force -Recurse + Write-LogEntry -Value "Raccourci pour $pathFT supprime" -Severity 1 +} + Catch { + Write-LogEntry -Value "Erreur lors de la suppression $pathFT $($_.Exception.Message)" -Severity 3 + } +} +Else { + Write-LogEntry -Value "Fichier $pathFT pas trouve" -Severity 1 +} + +#Nettoyer le fichier de desinstallation pour HP Connection Optimizer +Remove-Item -Path C:\Windows\install\uninstallHPCO.iss -Force +Write-LogEntry -Value "Fichier supprime avec succes C:\Windows\install\uninstallHPCO.iss " -Severity 1 \ No newline at end of file