In the last post, I talked about using Reference files to lock in a set of updates for deployment. In this post, I'm going to show you how to deploy Updates using HP Image Assistant (HPIA) with a ConfigMgr Task Sequence.
The Task Sequence I've created is pretty dynamic, so you can either create packages for a few things, or pull them from the internet, completely up to you.
Optional Packages Used in my Task Sequence:
- HPIA 5.1.6 Contents
- Reference Files
Download the Export (No Dependencies): HPIA Task Sequence (0 downloads)
These are all completely optional depending on how you want to run HPIA. I have the Task Sequence run different ways based on if a user is logged on. I'm leveraging Service UI to display the progress bar of HPIA if a user is logged on, if not, I don't care, and I don't show it. I also display additional notifications and have a longer reboot notification.
- DownloadHPIAFromInternet - This will run the step that has a script that will download the latest version of HPIA from the internet when set to TRUE. If Set to False, it will use HPIA from a package you have in CM
- UseRefFilePackage - This will use a package of pre-created reference files for HPIA to lock in versions to ensure that throughout the entire deployment process, machines get the same updates, even if newer ones are released, this allows for testing and full control.
- Action - This is the Action that is passed to the command line for HPIA. I have it set to "INSTALL" so that it will install the updates, however for testing, you can set it to "LIST" to have it scan and provide details in the logs of what it recommends without making changes.
Set UserLoggedOn Variable will check the machine to see if a user is logged on, if so, sets a variable "UserLoggedOn". If there is a user logged on, additional notifications and information is presented to the user, as well as a delayed restart.
Download HPIA From Internet will run if the TS Variable DownloadHPIAFromInternet is set to TRUE. It reaches out to HP and pulls the latest version, extracts it to a temp folder, then sets that folder as a variable (HPIAContent01) to be used by the HPIA command line.
Download HPIA from DP will download the HPIA Utility from a Package in CM when the TS Variable DownloadHPIAFromInternet is NOT set to TRUE. It then sets that folder as a variable (HPIAContent01) to be used by the HPIA command line.
Download Tools will download any other items you want to make available during the Task Sequence, currently I have it with Service UI. It then sets that folder as a variable (TOOLS01) to be used by the HPIA command line.
Download HPIA Ref Files will download all of the reference files you've created for your devices. It then sets that folder as a variable (HPIARefFiles01) to be used by the HPIA command line.
Determine Reference File will look at the machine the Task Sequence is running on it, then find the correct reference file to be applied to the command line. If no suitable reference file is found (one that doesn't match both the Platfrom & OS Ver / Build), then the command line will skip using a reference file, and will fall back on having HPIA grab whatever is the latest.
Build Command Line will set variables to build the command line to run HPIA based on if a user is logged in or if a Reference file is available.
Running Updates - Look for Popup Box for Details will trigger HPIA based on the command line variables created in the previous step
Set HPIA Exit Info will get the return code from the previous step, then add helpful information about how HPIA exited for reporting and in the popup dialog if a user is logged on. It will also capture if a reboot is required by any of the installs and trigger the restart process at the end if needed.
Restart Computer - 1 Hour Delay will trigger if there is No Logged on User and HPIA requires a Restart.
Launch Completed Notification will popup the dialog box and show the status for the logged on user:
CM Client Initiate Restart Countdown will trigger if a user is logged on and a Restart is Required. This will trigger the CM Restart Dialog on the Endpoint, leveraging your Client Settings for a Restart. - Trigger Machine Restart, Controlled by CM, via PowerShell
NOTE, since taking the screen captures, I've added a step to suspend Bitlocker if a reboot is required, incase BIOS get updated.
Running the Task Sequence
I have it set as a High Impact Task Sequence, so it gives additional popups if a user triggers it:
Once it downloads and starts, you'll see the HPIA Progress bar because of Service UI.
When completed, if Restart is required, it will say "System will initiate Restart", otherwise it just says that it recommends you restart.
After a minute or so, if a restart was required, end user will see:
The Configuration Manager Client is initiating the Restart with the settings applied in the Client Policy.