Hey Team, I've been working on updating our methods for populating Drivers / BIOS into ConfigMgr [Scripts here on GitHub] and thought, it's basically the same script to download them directly onto a machine and extract as it is to download the driver packs to the source server for a CM Package. So with a little tweaking I came up with the idea of having the driver pack download straight from HP or Dell onto the machine, extract, and make a variable to the location to be used in IPU. [Included in the WaaS Download, version 2020.04.16 or higher]
History: We currently dynamically download the driver packs from our DPs by having a TS Step that acts as a database for all of the models and which Driver Package IDs are associated with them, so it knows which one to download, then sets a varable to the downloaded location in the ccmcache. https://garytown.com/driver-pack-mapping-and-pre-cache-v2
For this new idea, I left that intact, but added a condition to allow downloading the drivers from the internet instead. You can do this different ways, currently we also capture if the machine is running on VPN (This will be a unique step depending on your VPN, so I can't say my step will work for you), so I've added that as a condition on the Download from Internet.


The Module is pretty small, with a few steps. HP relies on the HPCMSL being installed, so if you already have that on all of your HP Systems, you could trim this back.

HP: The Script leverages the intelligence built into HPCMSL to know what DriverPackage to download for the model of the machine it is running on.
The script will request the Driver Pack that MATCHES the OS you are installing (%SMSTS_BUILD%). IF there is not a driver pack for your model, it will grab the latest one available.
Once it downloads and confirms it's downloaded, it will set the TS Variable.
Before it downloads, the scripts will check for a previous download, if the Softpaq (HP) or cab file (Dell) Match what is already there, it will skip downloading and continue on to set the Variable.
Please NOTE, this does not include any hash checking.
The same Steps will need to be in both Pre-Cache TS & IPU TS. It will pull down the content during Pre-Cache, then confirm during IPU (or download if not there).
Hopefully that explains it well enough, hit me up with questions, or just play around with it.
Gary
Hi Gary,
Nice solution, do you think this solution will work from a SCCM Standalone media ?.
And have you try to get drivers from Lenovo this way.
/Morten
This solution should work from standalone media assuming the machine you're running on has an internet connection.
I don't do any work on Lenovo, so I haven't tested or built anything, but using their system update tool, I'd think it would be completely possible.
If we enable this, do we need to disable "Drivers from Internal DP"? For example, lets say the task sequence downloads the latest drivers from HP and then immediately after that it sees the local DP drivers that might not be as current. Will it use the DP drivers because it came later in the task sequence, or will it know that the drivers downloaded from the internet are the better ones to use?
Nevermind.. found my own answer in the "Drivers from Internal DP" options. It looks like it will only run this step if DownloadDriversFromInternet not equals "TRUE" or DRIVERS01 does not exist.