This was a task I was given by a customer recently. They wanted all the pre-installed HP software removed when provisioning HP ProBook 450 G8 laptops using Autopilot and Intune. As I like to tell customers, "if you can script it you can do it with Intune".
This was the list:
- HP Connection Optimizer
- HP Documentation
- HP ICS
- HP Notifications
- HP Security Update Service
- HP Support Assistant
- HP Wolf Security
1. HP Connection Optimizer
This one is a little tricky and requires the help of an answer file. I got a little help from Reddit
Create an InstallShield answer file. Copy the text to Notepad and save as .iss file (I called it HPConnOpt.iss)
[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
I copied the answer file to Azure storage and generated a shared access signature so that the file could be downloaded from anywhere.
Next is the script (UninstallHPConnOpt.ps1)
invoke-webrequest -uri "https://xxx.blob.core.windows.net/autopilot-scripts/HPConnOpt.iss?MySharedAccessSignature" -outfile "C:\Windows\Temp\HPConnOpt.iss"
&'C:\Program Files (x86)\InstallShield Installation Information\{6468C4A5-E47E-405F-B675-A70A70983EA6}\setup.exe' @('-s', '-f1C:\Windows\Temp\HPConnOpt.iss')
The script downloads the answer file and copies to C:\Windows\Temp. It then executes setup.exe for HP Connection Optimizer and calls the answer file. This uninstalls the app.
To deploy the solution via Intune, copy the script and answer file to a folder. Then create a Win32 app which results in a .IntuneWin file containing both files.
2. HP Documentation
This one is a bit more straightforward. The script sets the location to "C:\Program File\HP\Documentation" and then runs the uninstall command.
Set-location "C:\Program Files\HP\Documentation"
.\Doc_uninstall.cmd
Upload the script to Intune and assign to a group.
3. HP ICS
They're getting easier
$Prod = Get-WMIObject -Classname Win32_Product | Where-Object Name -Match 'ICS'
$Prod.UnInstall()
Upload the script to Intune and assign to a group.
4. HP Notifications
This one is the same format.
$Prod = Get-WMIObject -Classname Win32_Product | Where-Object Name -Match 'HP Notifications'
$Prod.UnInstall()
5. HP Security Update Service
Same format again.
$Prod = Get-WMIObject -Classname Win32_Product | Where-Object Name -Match 'HP Security Update Service'
$Prod.UnInstall()
6. HP Support Assistant
This one is a little different. It's an appx installation. Nicolaj Andersen has an excellent script for removing unwanted built-in appx apps during provisioning, except those that you explicitly whitelist. The script will remove the HP Support Assistant.
7. HP Wolf Security
Same format as before
$Prod = Get-WMIObject -Classname Win32_Product | Where-Object Name -Match 'HP Wolf Security'
$Prod.UnInstall()
These are the settings you need when you are deploying your scripts with Intune.
I hope this helps you and saves you time if have the same task.
Until next time......
Thanks Gerry, they were causing issues in my de-bloat script so this was perfect timing!
ReplyDeleteHi Gerry, so helpful;)
ReplyDelete