MSEndpointMgr

HP Driver Automation Tool

PLEASE NOTE: Some of the details and features in this post have been superseded. Please review our Modern Driver Management and Modern BIOS Management solutions for up to date information.


DeployEverything HP Driver Download Automation Tool

Following on from the release of the Dell Driver Automation Tool in January, I had a lot of requests for a version for other manufacturers including HP and Lenovo. So here is a heavily modified version of the tool for HP hardware.

When updating the tool I changed a lot of the functions of the GUI, partly due to the fact that HP driver packages are bundled into 7×5 Gx formats but also due to the fact that I had no HP hardware to pull down using an the previous SCCM query. So I have removed the tabbed sections for models and MDT and replaced it with a single tab with a model listing determined by your OS selection, matching available driver packages within the HP driver XML.

The script works by downloading the HP SCCM Driver Cabinet, extracting the XML, reading in the XML and doing some other bits in the background to display the full list of HP driver packages in an easy to read format. So summarise it does the following;

The tool automates the following processes;

  1. Downloads the HP SCCM Driver Pack Cabinet
  2. Extracts the contained XML and reads in the file
  3. Displays HP Driver Packages based on the OS selection within the GUI
  4. Creates Folders For Each Model
  5. Downloads the selected model SoftPaq’s
  6. Extracts the SoftPaqs
  7. Imports the SoftPaqs into SCCM, MDT or Both
  8. Create a Category based on the machine model
  9. Create a Driver Package based on the machine model and OS
  10. Imports the associated drivers into the newly created Driver Package

The job progress log window will automatically scroll at each step of the process and provide feedback.


Job Importing Drivers into both MDT and SCCM
Job Importing Drivers into MDT

Microsoft Script Library Link –https://gallery.technet.microsoft.com/HP-Driver-Automation-Tool-4a14b9cc

How To Run The Script

Launch the script from an administrative PowerShell window using an account with rights to your SCCM site server (if using the SCCM query option).

Enter the name of your SCCM site server and click “Connect to SCCM” if you wish to run an SCCM enabled import job, otherwise select MDT. The list of HP models will auto populate and then select your OS before selecting the model / model family driver packages you require.

Things To Note

  1. Import driver jobs can take considerable time, this is the same for OEM tools but something to be aware of as the GUI remains static during this process at present. If you are downloading drivers for multiple models you might wish to run this overnight.
  2. The HP version only downloads driver packages at this stage. I am looking to follow up with BIOS downloads in a later version.

Change Log

Version 1.0 – Initial release
Version 1.1 – Added Proxy Server Settings. The fields must be filled in, however the system will attempt to use the system proxy settings and default account / NTLM auth before falling back to the credentials entered.

Screenshots

Importing INF Drivers into SCCM
Driver Repository Packages
HP Driver Packages Created
SCCM : HP EliteBook 1030 G1 Driver Pack Contents
MDT: HP EliteBook 1030 G1 Driver Pack Contents

Maurice Daly

Maurice has been working in the IT industry for the past 20 years and currently working in the role of Senior Cloud Architect with CloudWay. With a focus on OS deployment through SCCM/MDT, group policies, active directory, virtualisation and office 365, Maurice has been a Windows Server MCSE since 2008 and was awarded Enterprise Mobility MVP in March 2017. Most recently his focus has been on automation of deployment tasks, creating and sharing PowerShell scripts and other content to help others streamline their deployment processes.

18 comments

  • Hello,
    I’m not real sure what is going on, but when my task sequence attempts to run, I receive the following error at the Powershell script step:

    PowerShell.exe does not exist at ‘X:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe’ RunPowerShellScript 6/7/2018 2:14:52 PM 2004 (0x07D4)

    Why is the task sequence looking for Powershell in X:? and how do i change this?

    Here is the full snippet of the error message:

    Running powershell script: ‘Invoke-CMApplyDriverPackage.ps1′(PkgID: OBE00098) with execution policy: ‘Bypass’ RunPowerShellScript 6/7/2018 2:14:51 PM 2004 (0x07D4)
    The execution scope for running the powershell script is specified not to verify the signature of the scripts. This is unsafe and potentially risk running malicious scripts. RunPowerShellScript 6/7/2018 2:14:51 PM 2004 (0x07D4)
    Sending warning status message RunPowerShellScript 6/7/2018 2:14:51 PM 2004 (0x07D4)
    Setting URL = https://SVRAPP62.oberg.com, Ports = 80,443, CRL = false RunPowerShellScript 6/7/2018 2:14:51 PM 2004 (0x07D4)
    Setting Server Certificates. RunPowerShellScript 6/7/2018 2:14:51 PM 2004 (0x07D4)
    Setting Authenticator. RunPowerShellScript 6/7/2018 2:14:51 PM 2004 (0x07D4)
    Set authenticator in transport RunPowerShellScript 6/7/2018 2:14:51 PM 2004 (0x07D4)
    Setting Media Certificate. RunPowerShellScript 6/7/2018 2:14:51 PM 2004 (0x07D4)
    Sending StatusMessage RunPowerShellScript 6/7/2018 2:14:51 PM 2004 (0x07D4)
    Setting message signatures. RunPowerShellScript 6/7/2018 2:14:52 PM 2004 (0x07D4)
    Setting the authenticator. RunPowerShellScript 6/7/2018 2:14:52 PM 2004 (0x07D4)
    CLibSMSMessageWinHttpTransport::Send: URL: SVRAPP62.oberg.com:80 CCM_POST /ccm_system/request RunPowerShellScript 6/7/2018 2:14:52 PM 2004 (0x07D4)
    Request was successful. RunPowerShellScript 6/7/2018 2:14:52 PM 2004 (0x07D4)
    Filesystem::File::Exists( sPowerShellPath.c_str() ) == true, HRESULT=00000490 (e:\nts_sccm_release\sms\client\osdeployment\runpsscript\main.cpp,153) RunPowerShellScript 6/7/2018 2:14:52 PM 2004 (0x07D4)
    PowerShell.exe does not exist at ‘X:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe’ RunPowerShellScript 6/7/2018 2:14:52 PM 2004 (0x07D4)

  • Hi there!
    This looks like a great tool but I’m getting an error that no HP models are found. We are not using a proxy!

    Thanks in advance,
    Greg

  • Hello. I’m trying to run the script, but when I launch it I get the following error:

    You must provide a value expression on the right-hand side of the ‘-‘ operator.
    At C:Users******DownloadsHPAutoDownloadGUI.ps1:768 char:20
    + if ($Model – <<<< notin $HPProducts)
    + CategoryInfo : ParserError: (:) [], ParseException
    + FullyQualifiedErrorId : ExpectedValueExpression

    I tired looking around line 768 in the script to see if I could figure out what it's not liking, but I'm stumped. Any ideas? Any help would be much appreciated. Thank you.

      • Thanks for the quick reply, Maurice. I didn’t get a notice so I just now saw it. Yes, you were right. I was running the default Windows 7 version of PowerShell (2.x). I updated to 4.0 PowerShell and it runs like a charm! Thanks for building the script! It makes driver management for new model computers a 1000 time easier!

    • Hi John,

      No form of dedupe is used. To reduce driver size requirements on your DP’s I did think of using family driver packs, however these tend not to be updated as often as individual model packs hence I opted for this.

      Maurice

  • Very cool app. Why don’t you add another drop down list to pull different sources so that you can manage all manufacturers?

  • I noticed it isn’t a complete listing once you choose your os and platform. HP have win10 drivers for the 705 g1, but they are not listed in the tool; there are several others missing.

    • Hi Stuart,

      I understand where you are coming from with that comment, however the models lists are obtained from reading in an XML file obtained from HP with a list of models for which an SCCM driver package is available to download.

      For instance in your example you have given the EliteDesk 705G1 which indeed does have drivers available from https://h20566.www2.hp.com/hpsc/swd/public/readIndex?sp4ts.oid=7150465&swLangOid=8&swEnvOid=4192. If however you look at a list of available SCCM package drivers for the same model on https://ftp.hp.com/pub/caps-softpaq/cmit/HP_Driverpack_Matrix_x64.html, you will see that a driver package for Windows 10 only exists for the G2 and G3 of that model range.

      Unfortunately I have had this personally too in the past whereby a particular range of laptop only provided driver packages in a later generation, in that instance it is really up to you browsing the vendors site to download manual lists of drivers or use an OEM tool to download drivers directly from sections of their website.

      Maurice

      • Thanks Maurice, it’s an epic piece of work, just crippled by the HP Driver organisation which as we all know is shocking. No worries, I’ll plough through with the Softpaq Download Manager.

  • Third attempt at a reply here… apologies

    This tool looks amazing! I’m having a problem when I connect to the Site Server it’s saying “SCCM PowerShell Module Not Found”. Is there something else I need to have installed on my client or the site server?

    • Hi Jon,

      The only thing you need installed is the SCCM Console on the machine you are using and Powershell v4.0 upwards is recommended. The script was built and tested with SCCM CB 1610 but should work with 2012 upwards.

      Maurice

  • This seems like it’d work great, but I think the proxy is preventing me from grabbing any files, like you mentioned. It definitely would be great if it could be included.

Sponsors