-
-
Save mark05e/a79221b4245962a477a49eb281d97388 to your computer and use it in GitHub Desktop.
# ██████╗ ███████╗███╗ ███╗ ██████╗ ██╗ ██╗███████╗ ██╗ ██╗██████╗ | |
# ██╔══██╗██╔════╝████╗ ████║██╔═══██╗██║ ██║██╔════╝ ██║ ██║██╔══██╗ | |
# ██████╔╝█████╗ ██╔████╔██║██║ ██║██║ ██║█████╗ ███████║██████╔╝ | |
# ██╔══██╗██╔══╝ ██║╚██╔╝██║██║ ██║╚██╗ ██╔╝██╔══╝ ██╔══██║██╔═══╝ | |
# ██║ ██║███████╗██║ ╚═╝ ██║╚██████╔╝ ╚████╔╝ ███████╗ ██║ ██║██║ | |
# ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚═══╝ ╚══════╝ ╚═╝ ╚═╝╚═╝ | |
# | |
# ██████╗ ██╗ ██████╗ █████╗ ████████╗██╗ ██╗ █████╗ ██████╗ ███████╗ | |
# ██╔══██╗██║ ██╔═══██╗██╔══██╗╚══██╔══╝██║ ██║██╔══██╗██╔══██╗██╔════╝ | |
# ██████╔╝██║ ██║ ██║███████║ ██║ ██║ █╗ ██║███████║██████╔╝█████╗ | |
# ██╔══██╗██║ ██║ ██║██╔══██║ ██║ ██║███╗██║██╔══██║██╔══██╗██╔══╝ | |
# ██████╔╝███████╗╚██████╔╝██║ ██║ ██║ ╚███╔███╔╝██║ ██║██║ ██║███████╗ | |
# ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚══╝╚══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝ | |
# | |
# Remove HP bloatware / crapware | |
# | |
# -- source : https://gist.github.com/mark05e/a79221b4245962a477a49eb281d97388 | |
# -- contrib: francishagyard2, mark05E, erottier, JoachimBerghmans, sikkepitje | |
# -- ref : https://community.spiceworks.com/topic/2296941-powershell-script-to-remove-windowsapps-folder?page=1#entry-9032247 | |
# -- note : this script could use your improvements. contributions welcome! | |
# -- todo : Wolf Security improvements ref: https://www.reddit.com/r/SCCM/comments/nru942/hp_wolf_security_how_to_remove_it/ | |
# List of built-in apps to remove | |
$UninstallPackages = @( | |
"AD2F1837.HPJumpStarts" | |
"AD2F1837.HPPCHardwareDiagnosticsWindows" | |
"AD2F1837.HPPowerManager" | |
"AD2F1837.HPPrivacySettings" | |
"AD2F1837.HPSupportAssistant" | |
"AD2F1837.HPSureShieldAI" | |
"AD2F1837.HPSystemInformation" | |
"AD2F1837.HPQuickDrop" | |
"AD2F1837.HPWorkWell" | |
"AD2F1837.myHP" | |
"AD2F1837.HPDesktopSupportUtilities" | |
"AD2F1837.HPQuickTouch" | |
"AD2F1837.HPEasyClean" | |
"AD2F1837.HPSystemInformation" | |
) | |
# List of programs to uninstall | |
$UninstallPrograms = @( | |
"HP Client Security Manager" | |
"HP Connection Optimizer" | |
"HP Documentation" | |
"HP MAC Address Manager" | |
"HP Notifications" | |
"HP Security Update Service" | |
"HP System Default Settings" | |
"HP Sure Click" | |
"HP Sure Click Security Browser" | |
"HP Sure Run" | |
"HP Sure Recover" | |
"HP Sure Sense" | |
"HP Sure Sense Installer" | |
"HP Wolf Security" | |
"HP Wolf Security Application Support for Sure Sense" | |
"HP Wolf Security Application Support for Windows" | |
) | |
$HPidentifier = "AD2F1837" | |
$InstalledPackages = Get-AppxPackage -AllUsers ` | |
| Where-Object {($UninstallPackages -contains $_.Name) -or ($_.Name -match "^$HPidentifier")} | |
$ProvisionedPackages = Get-AppxProvisionedPackage -Online ` | |
| Where-Object {($UninstallPackages -contains $_.DisplayName) -or ($_.DisplayName -match "^$HPidentifier")} | |
$InstalledPrograms = Get-Package | Where-Object {$UninstallPrograms -contains $_.Name} | |
# Remove appx provisioned packages - AppxProvisionedPackage | |
ForEach ($ProvPackage in $ProvisionedPackages) { | |
Write-Host -Object "Attempting to remove provisioned package: [$($ProvPackage.DisplayName)]..." | |
Try { | |
$Null = Remove-AppxProvisionedPackage -PackageName $ProvPackage.PackageName -Online -ErrorAction Stop | |
Write-Host -Object "Successfully removed provisioned package: [$($ProvPackage.DisplayName)]" | |
} | |
Catch {Write-Warning -Message "Failed to remove provisioned package: [$($ProvPackage.DisplayName)]"} | |
} | |
# Remove appx packages - AppxPackage | |
ForEach ($AppxPackage in $InstalledPackages) { | |
Write-Host -Object "Attempting to remove Appx package: [$($AppxPackage.Name)]..." | |
Try { | |
$Null = Remove-AppxPackage -Package $AppxPackage.PackageFullName -AllUsers -ErrorAction Stop | |
Write-Host -Object "Successfully removed Appx package: [$($AppxPackage.Name)]" | |
} | |
Catch {Write-Warning -Message "Failed to remove Appx package: [$($AppxPackage.Name)]"} | |
} | |
# Remove installed programs | |
$InstalledPrograms | ForEach-Object { | |
Write-Host -Object "Attempting to uninstall: [$($_.Name)]..." | |
Try { | |
$Null = $_ | Uninstall-Package -AllVersions -Force -ErrorAction Stop | |
Write-Host -Object "Successfully uninstalled: [$($_.Name)]" | |
} | |
Catch {Write-Warning -Message "Failed to uninstall: [$($_.Name)]"} | |
} | |
# Fallback attempt 1 to remove HP Wolf Security using msiexec | |
Try { | |
MsiExec /x "{0E2E04B0-9EDD-11EB-B38C-10604B96B11E}" /qn /norestart | |
Write-Host -Object "Fallback to MSI uninistall for HP Wolf Security initiated" | |
} | |
Catch { | |
Write-Warning -Object "Failed to uninstall HP Wolf Security using MSI - Error message: $($_.Exception.Message)" | |
} | |
# Fallback attempt 2 to remove HP Wolf Security using msiexec | |
Try { | |
MsiExec /x "{4DA839F0-72CF-11EC-B247-3863BB3CB5A8}" /qn /norestart | |
Write-Host -Object "Fallback to MSI uninistall for HP Wolf 2 Security initiated" | |
} | |
Catch { | |
Write-Warning -Object "Failed to uninstall HP Wolf Security 2 using MSI - Error message: $($_.Exception.Message)" | |
} | |
# # Uncomment this section to see what is left behind | |
# Write-Host "Checking stuff after running script" | |
# Write-Host "For Get-AppxPackage -AllUsers" | |
# Get-AppxPackage -AllUsers | where {$_.Name -like "*HP*"} | |
# Write-Host "For Get-AppxProvisionedPackage -Online" | |
# Get-AppxProvisionedPackage -Online | where {$_.DisplayName -like "*HP*"} | |
# Write-Host "For Get-Package" | |
# Get-Package | select Name, FastPackageReference, ProviderName, Summary | Where {$_.Name -like "*HP*"} | Format-List | |
# # Feature - Ask for reboot after running the script | |
# $input = Read-Host "Restart computer now [y/n]" | |
# switch($input){ | |
# y{Restart-computer -Force -Confirm:$false} | |
# n{exit} | |
# default{write-warning "Skipping reboot."} | |
# } |
for anyone that needs it here is my implementation of the HP Bloatware removal. This is only part of a script we use, the whole script also removes a bunch of default windows apps and more.
Hope this helps :)
$apps = @(
# HP Bloatware
"HP Connection Optimizer"
"HP Documentation"
"HP Notifications"
"HP Security Update Service"
"HP Sure Recover"
"HP Sure Run Module"
"HP Wolf Security - Console"
"HP Wolf Security"
"AD2F1837.HPEasyClean"
"AD2F1837.HPPCHardwareDiagnosticsWindows"
"AD2F1837.HPPowerManager"
"AD2F1837.HPPrivacySettings"
"AD2F1837.HPQuickDrop"
"AD2F1837.HPSupportAssistant"
"AD2F1837.HPSystemInformation"
"AD2F1837.myHP"
)
# used for uninstall of HP Connection Optimizer
# check out this for more info https://gist.github.com/mark05e/a79221b4245962a477a49eb281d97388
$ConnOpt = "[InstallShield Silent]
Version=v7.00
File=Response File
[File Transfer]
OverwrittenReadOnly=NoToAll
[{6468C4A5-E47E-405F-B675-A70A70983EA6}-DlgOrder]
Dlg0={6468C4A5-E47E-405F-B675-A70A70983EA6}-SdWelcomeMaint-0
Count=3
Dlg1={6468C4A5-E47E-405F-B675-A70A70983EA6}-MessageBox-0
Dlg2={6468C4A5-E47E-405F-B675-A70A70983EA6}-SdFinishReboot-0
[{6468C4A5-E47E-405F-B675-A70A70983EA6}-SdWelcomeMaint-0]
Result=303
[{6468C4A5-E47E-405F-B675-A70A70983EA6}-MessageBox-0]
Result=6
[Application]
Name=HP Connection Optimizer
Version=2.0.18.0
Company=HP Inc.
Lang=0409
[{6468C4A5-E47E-405F-B675-A70A70983EA6}-SdFinishReboot-0]
Result=1
BootOption=0"
$appxprovisionedpackages = Get-AppxProvisionedPackage -Online
foreach ($app in $apps) {
Write-Output "Trying to remove $app"
# remove appx packages
if ((Get-AppxPackage -AllUsers).Name -eq "$app") {
Get-AppxPackage $app -AllUsers | Remove-AppxPackage -AllUsers | Out-Null
if ($?) {
Write-Host " Successfully removed AppX-Package $app"
Continue
} else {
Write-Host " Failed to remove AppX-Package $app"
Continue
}
($appxprovisionedpackages).Where( {$_.DisplayName -EQ $app}) |
Remove-AppxProvisionedPackage -Online
if (!$?) {
Write-Host " Failed to remove AppX-ProvisionedPackage $app"
} else {
Write-Host " Removed AppX-ProvisionedPackage $app"
}
Continue
}
# remove normal packages
Get-Package -Name $app -ErrorAction SilentlyContinue | Out-Null
if ($?) {
Uninstall-Package -Name $app -AllVersions -Force
if (!$?) {
Write-Host "Failed to remove $app"
} else {
# in some cases uninstall command returns a successfull but doesnt actually uninstall the Package
# https://github.com/OneGet/oneget/issues/435
# as a last effort i try to remove the Package using the UninstallString
Get-Package -Name $item -ErrorAction SilentlyContinue | Out-Null
if ($?) {
Write-Host " Couldn't remove Package due to bug. Trying via Uninstallstring..."
# remove Programms via uninstallString because Remove-Package doesnt work :(
if ($app -eq "HP Documentation") {
try {
$uninstallString = "C:\Program Files\HP\Documentation\Doc_uninstall.cmd"
Start-Process -FilePath "$uninstallString" -NoNewWindow
Write-Host " Successfully removed HP Documentation via uninstall string"
} catch {
Write-Host " Failed to remove HP Documentation via uninstall string"
}
} elseif ($app -eq "HP Connection Optimizer") {
try {
$ConnOpt | Out-File c:\Windows\Temp\ISS-HP.iss
&'C:\Program Files (x86)\InstallShield Installation Information\{6468C4A5-E47E-405F-B675-A70A70983EA6}\setup.exe' @('-s', '-f1C:\Windows\Temp\ISS-HP.iss')
Write-Host " Successfully removed HP Connection Optimizer via uninstallfile"
} catch {
Write-Host " Couldnt create uninstallfile for HP Connection Optimizer"
}
}
}
}
}
}
Great Script. Thanks. :-)
Found some more HP garbage on a actual ProBook 450 G10.
I'll leave you a few printscreens of the respective uninstall hives just in case you like to supplement it in your cleanup-script.
ICS is Charging Scheduler. Honstly i don't know if that one should be removed at all.
Edit: Just figured out that the "HP Touchpoint Analytics Client Dependencys" seems to be uninstalled together with "HP Touchpoint Analytics Client" allready.
I did a little work:
https://gist.github.com/loopyd/07a7242ece52793c29947481324822c6
Just to clean things up a bit.
Hello, nice work, can you remove bloat ware HPCaaSClientLib
.dll , it keeps reinstalling itself everytime
https://community.spiceworks.com/topic/2310773-remove-all-hp-apps
C:\WINDOWS\System32\DriverStore\FileRepository\hpanalyticscomp.inf_amd64_43 ......\x64\HPCaaSClientLib.dll
Hi, here is some suggested code for handling the aggressively persistent HP spyware services..
# Uninstalling the drivers disables and (on reboot) removes the installed services.
# At this stage the only 'HP Inc.' driver we want to keep is HPSFU, used for firmware servicing.
$EvilDrivers = Get-WindowsDriver -Online | ? {$_.ProviderName -eq 'HP Inc.' -and $_.OriginalFileName -notlike '*\hpsfuservice.inf'}
$EvilDrivers | % {Write-Output "Removing driver: $($_.OriginalFileName.toString())"; pnputil /delete-driver $_.Driver /uninstall /force}
# Once the drivers are gone lets disable installation of 'drivers' for these HP 'devices' (typically automatic via Windows Update)
# SWC\HPA000C = HP Device Health Service
# SWC\HPIC000C = HP Application Enabling Services
# SWC\HPTPSH000C = HP Services Scan
# ACPI\HPIC000C = HP Application Driver
$RegistryPath = 'HKLM:\Software\Policies\Microsoft\Windows\DeviceInstall\Restrictions\DenyDeviceIDs'
If (! (Test-Path $RegistryPath)) { New-Item -Path $RegistryPath -Force | Out-Null }
New-ItemProperty -Path $RegistryPath -Name '1' -Value 'SWC\HPA000C' -PropertyType STRING
New-ItemProperty -Path $RegistryPath -Name '2' -Value 'SWC\HPIC000C' -PropertyType STRING
New-ItemProperty -Path $RegistryPath -Name '3' -Value 'SWC\HPTPSH000C' -PropertyType STRING
New-ItemProperty -Path $RegistryPath -Name '4' -Value 'ACPI\HPIC000C' -PropertyType STRING
$RegistryPath = 'HKLM:\Software\Policies\Microsoft\Windows\DeviceInstall\Restrictions'
New-ItemProperty -Path $RegistryPath -Name 'DenyDeviceIDs' -Value '1' -PropertyType DWORD
New-ItemProperty -Path $RegistryPath -Name 'DenyDeviceIDsRetroactive' -Value '1' -PropertyType DWORD
Hi everyone... this is an OLD thread. Please don't resurect.
By the same guy, Mark, his present script is :
Remove-HPbloatware-beta.ps1
The one posted at the bottom of the comments works quite well.
which script is valid for 2024 ? a HP EliteBook 650 15.6 inch G9 Notebook PC with Windows 11 versión 23H2
which script is valid for 2024 ? a HP EliteBook 650 15.6 inch G9 Notebook PC with Windows 11 versión 23H2
Did you even read the comment from @Netweezurd above?
Hi all,
We want to use this script with Intune, and I saw an earlier comment that this has been done with Remediation but sadly we cannot do that because you need a different License such as E3, E5, A3 or A5.
So, we created an App with the script and tested it with a laptop. When the script was done, we got a message on the device if you are sure to remove HP Support Assistant (Can you force this?) and a lot of other HP Bloatware was still installed such as HP Wolf Security. We also kept getting messages about Can’t install ‘Script name’
We used the original Remove-HPbloatware.ps1 script. Is this the best option if you can’t do it with Remediation? And what is the best way to detect the script (To look for a File or with a detection script)?
We recently onboarded a new client who have some windows 8 era HP AIOs and found a few more applications and packages that weren't accounted for in the current iteration. This script seems more targeted to new HP deployments, but is equally useful for old deployments that still have the bloat present.
I have not run the script yet with the modifications, but here's our current list. I realize this is for HP bloatware, but I've included Mcafee, wildtangent, and candy crush as well.
# List of built-in apps to remove
$UninstallPackages = @(
"AD2F1837.HPJumpStarts"
"AD2F1837.HPPCHardwareDiagnosticsWindows"
"AD2F1837.HPPowerManager"
"AD2F1837.HPPrivacySettings"
"AD2F1837.HPSupportAssistant"
"AD2F1837.HPSureShieldAI"
"AD2F1837.HPSystemInformation"
"AD2F1837.HPQuickDrop"
"AD2F1837.HPWorkWell"
"AD2F1837.myHP"
"AD2F1837.HPDesktopSupportUtilities"
"AD2F1837.HPQuickTouch"
"AD2F1837.HPEasyClean"
"AD2F1837.HPSystemInformation"
"AD2F1837.HPConnectedMusic"
"AD2F1837.HPFileViewer"
"AD2F1837.HPRegistration"
"AD2F1837.HPWelcome"
"AD2F1837.HPConnectedPhotopoweredbySnapfish"
"AD2F1837.HPPrinterControl"
"king.com.CandyCrushSodaSaga"
)
# List of programs to uninstall
$UninstallPrograms = @(
"HP Connection Optimizer"
"HP Documentation"
"HP Dropbox Plugin"
"HP EmailSMTP Plugin"
"HP ePrint SW"
"HP FTP Plugin"
"HP Google Drive Plugin"
"HP JumpStart Apps"
"HP JumpStart Bridge"
"HP JumpStart Launch"
"HP MAC Address Manager"
"HP Notifications"
"HP OneDrive Plugin"
"HP PC Hardware Diagnostics Windows"
"HP Scan Twain"
"HP SFTP Plugin"
"HP SharePoint Plugin"
"HP Support Solutions Framework"
"HP System Event Utility"
"HP System Info HSA Service"
"HP Security Update Service"
"HP System Default Settings"
"HP Sure Click"
"HP Sure Click Security Browser"
"HP Sure Run"
"HP Sure Run Module"
"HP Sure Recover"
"HP Sure Sense"
"HP Sure Sense Installer"
"HP Wolf Security"
"HP Wolf Security - Console"
"HP Wolf Security Application Support for Sure Sense"
"HP Wolf Security Application Support for Windows"
"McAfee Security Scan Plus"
"WebAdvisor by McAfee"
"WildTangent Games"
)
Looks like Connection Optimizer, HP PC Hardware Diagnostics UEFI, ICS, and Collaboration Keyboard don't remove correctly through the script.
i found this for the connection optimizer (looks like it needs an ISS file):
https://www.reddit.com/r/PowerShell/comments/mwdrvb/comment/hpcrmiu/?utm_source=share&utm_medium=web2x&context=3
Here is how i adapted it to fit into the script (i put it right before the show what's left behind section - it probably should be put in a try...):