So there have been many posts about how to apply drivers during in-place upgrades and I am going to show you yet another way, the way I am currently using them. This is by no means the best way but it is yet another way to perform the same action.
In the top of the TS we would like to first run a scan on the machine to make sure we have no blocks preventing us from proceeding.
First let's talk about Child or changed Task Sequence. These can be great if you are developing something you want to use in multiple Task Sequences.
Here we have a child TS that is doing nothing but downloading drivers to the machine based on WMI.
In this step we are running the WMI query to determine if the model is machine we are running on and if so we will execute this stage.
Notice that we have the path saved as a variable.
This is the same setting for each of our drivers. What this does it to
1. Download the driver package to the c:\Drivers folder
2. Make a Variable called %Drivers% and save the c:\Drivers path to it.
What happens if you have more than one drive pack to download? Nothing they will all write to the folder and the %Drivers% path will still be c:\Drivers
How does this help us?
Just watch
Now we have a Child TS for the Drivers, this makes a clean and reusable block for other Task Sequences.
You can ignore the Disable Bitlocker for 1709 and forward, this is for legacy Win10 machines.
What you will see is that there are two Upgrade Operating System steps.
No Drivers:
If the TS variable %drivers% doesn't exist then no driver was download and we can use this step to perform the upgrade of the machine.
Machine needs new drivers:
If the TS variable %drivers% exists then we downloaded a driver package and we need to use that during the upgrade process.
Why the two different steps for drivers?
If you tell it to use the folder and there are no drivers in it then your TS will fail because it found zero files to use. This way we only use the folder if we downloaded drivers to it.