While MDT is no longer being updated, and does not officially support Windows 11, it's still a great deployment solution and you can in fact deploy any Windows Client and Windows Server OS with it, including Windows 11.
The recommend method to inject drivers during deployment using MDT is called Total Control, which means you have one driver set per OS Family and Computer Model. In this post you learn to set up Modern Driver Management for MDT Lite Touch to create these sets in MDT Lite Touch.
Update September 2, 2023: Got an update from Maurice Daly. Dell recently reverted back to using download. instead of dl. in the URL for downloads. GitHub has been updated and Dell downloads should work now. Delete the OEMLinks.xml from the settings folder if not ConfigMgr (SCCM).
Background
The Modern Driver Management solution from Maurice Daly and Nickolaj Andersen is primarily used for ConfigMgr OSD, but it also has support for importing drivers to MDT Lite Touch deployment shares.
Installation and Configuration
Installing the Modern Driver Management solution is easy. Simply download the Driver Automation Tool.msi from https://github.com/maurice-daly/DriverAutomationTool and install it on your MDT server with the default settings.
Note #1: Sometimes Maurice releases updated version without a new MSI installer. Like for example for the 7.2.2 version. Updated versions are found in the Current Branch folder, and to update, simply replace the DriverAutomationTool.exe in the installation folder with the new version. By default the Driver Automation Tool is installed in the C:\Program Files\MSEndpointMgr\Driver Automation Tool folder.

Note #2: For HP, Dell or Microsoft drivers you don't to install anything else, but if you want to support Lenovo models, you also need to install a required .NET component (Visual Studio 2015 Isolated Shell) from this link: https://visualstudio.microsoft.com/vs/older-downloads/isolated-shell. You have to login with either a Microsoft account or a GitHub account to download the setup file.
After installing the Driver Automation Tool (DAT), there are some basic settings you need to change for the MDT integration. In this example, my MDT deployment share was in the E:\MDTProduction folder, and MDT was installed to its default location in C:\Program Files\Microsoft Deployment Toolkit.
1. Using File Explorer, create a folder for the driver downloads, for example E:\Drivers. Then, in the Driver Automation Tool, in the Common Settings tab, type in, or browse to the folder you created.
2. In the Make & Model Selection tab, in Deployment Platform, select MDT. This will enable the MDT Settings tab, which is visible, but its settings are disabled by default.
3. In the MDT Settings tab, click the three dots, and browse to C:\Program Files\Microsoft Deployment Toolkit\Bin, then click Import PS Module.
4. You should now see your deployment share(s) in the lower pane, select your deployment share, and in the Folder Structure drop down list, select how you want the drivers structured. I prefer the OperatingSystemDir\Make\Model option.
5. Exit the tool, and in the C:\Program Files\MSEndpointMgr\Driver Automation Tool\Settings folder, make a backup of the DATSettings.xml file. Should the tool crash (which happens), and you lose any settings, you can just restore that file.

Using the Driver Automation Tool
In this section you find a few samples on how to download drivers for the different vendors.
Add Drivers for HP models
To add drivers for HP models, in the Make & Model Selection tab, select the operating system you want drivers for, including the version, like Windows 10 22H2. Then select the HP manufacturer and click Find Models.
Note: HP are labeling their drivers to which operating system version they support.
Then select one or more models, and select Start Download | Extract | Import. In this example I selected a ZBook Firefly model and an Elite Mini 800 desktop model.

After the Start Download | Extract | Import process is completed, you should see the drivers in the Deployment Workbench.

Add Drivers for Dell models
To add drivers for Dell models, in the Make & Model Selection tab, select the operating system (only) you want drivers for, like Windows 10. Then select the Dell manufacturer and click Find Models.
Note #1: Unlike HP, Dell does not label their drivers to which operating system version they support, only the main OS (Windows 10 / Windows 11). So, you'll basically have to test that in your own environment.
Note #2. A few times the tool failed to extract the Dell packages, so I had to do that manually, and then import the drivers. This seem to be an MDT Lite Touch only issue, when using the tool for ConfigMgr, I haven't seen these issues.
Then select one or more models, and select Start Download | Extract | Import. In this example I selected a Latitude 5320 model and a Latitude 3120 model.

After the Start Download | Extract | Import process is completed, you should see the drivers in the Deployment Workbench.

Add Drivers for Lenovo models
To add drivers for Lenovo models, in the Make & Model Selection tab, select the operating system (only) you want drivers for, like Windows 10. Then select the Lenovo manufacturer and click Find Models.
Note #1: Lenovo, label their drivers to which operating system version they support (for example, Windows 10 22H2), as well as the main OS (Windows 10 / Windows 11). I recommend going for the exact version if possible.
Then select one or more models, and select Start Download | Extract | Import. In this example I selected a ThinkPad X1 Carbon model and a ThinkCentre M70S model.

Add Drivers for Microsoft models
To add drivers for Microsoft models, in the Make & Model Selection tab, select the operating system and version you want drivers for, like Windows 10 21H2. Then select the manufacturer and click Find Models.
Note: Microsoft are labeling their drivers to which operating system version they support, but the latest Windows 10 version listed is currently 21H2 (not 22H2).
Then select one or more models, and select Start Download | Extract | Import. In this example I selected a Surface Laptop 5 model and a Surface Pro 9 model.

After the Start Download | Extract | Import process is completed, you should see the drivers in the Deployment Workbench.
When deleting incorrectly named driver folders, should I check "Completely delete these items, even if there are copies in other folders. (Force)"? The biggest frustration I have with MDT is how to properly "delete" things. I don't understand this checkbox. During the extraction of drivers, does this import a duplicate of existing drivers? If I do it manually, should I check the box, "Import drivers even if they are duplicates of an existing driver"? When I followed this article, I got the the structure "Windows 10 x64\Make\Model" instead of "Windows 10\Make\Model". (Notice the added x64). This is fine, but I… Read more »
MDT supports that you link an existing driver, or any other object in MDT, to multiple folders. The checkbox is there to force deletion of all matching links to an object.
I've been following you for what feels like 2 decades – ever since I started using MDT to deploy Win7. Thanks for all your sharing and dedication to helping others. I've been stumped for a while now on my Surface Pro 7 deployments in MDT. I've used "Modern Driver Management" in my LTI setup since around 2003/2004 but for my Win11 deployments on Surface Pros I like to apply the driver MSI instead of depending on PnP via Out-of-Box_Drivers. I've had 100% success installing the drivers with all our Surface Pro devices (SP6, SP7+, SP8 & SP9) with the exception… Read more »
No idea on that one. I just downloaded the MSI you mentioned, and it looks like it's properly signed. I don't have a SP7 device I can test with unfortunately.
@scott I'm no expert by any means, but I was able to install SP3, SP4, SP5, SP7+ & SP9, using the .msi installer though a .bat file during the task sequence. Not using injected drivers. It detects it by model, and if it matches the model, it will run the .bat file. Hope this helps
The Visual Studio Isolated Shell is no longer available for download from Microsoft. Do you know where it can be gotten?
Yes it is, but you must select the "I have read and accept the license" check box on this page: https://visualstudio.microsoft.com/vs/older-downloads/isolated-shell/
Then when click the Visual Studio 2013 Shell (Isolated) link, it will take you to the download page on my.visualstudio.com. Then login, and change the download type from OTH to DVD and you can download an ISO of Visual Studio 2013 Shell (Isolated).
Good and helpful article, but I'm confused about the driver path. I also have an E:\drivers on my disk, but that folder doesn't seem to be used in MDT? I always have to import them to make sure they appear in out-of-the-box drivers. It then imports them to E:\MDTProduction\Out-of-Box Drivers
Furthermore, I set the MDT settingso to %make%\%model% as proposed, but the folder structure then is e.g. E:\Drivers\Lenovo\ThinkPad X1 Carbon 11TH Gen Type 21HM 21HN
If you use wmic computersystem get manufacturer,model, I get Lenov,21HMCT01WW. To make drversgroup001 working, shoulnd't the folder name be like that?
E:\Drivers is just a temporary folder, before drivers are imported into MDT. If you want a different naming structure, you can either rename the folders after DAT creates them, or use DAT to just download the drivers, and then have a custom scripts that imports them.
Another solution is to use a modelalias exit script that translates the modelalias variable into the structure that DAT is creating.
Thanks for your writeup. It would be a welcome addition to include how to select the right driver folder for a specific model during a task sequence step.
The mapping between a folder is done via the DriverGroup001 variable. If using Windows 10 x64\%Model%, the folder structure should match Windows 10 x64\. If you want to hardcode a specific model with different detection, you can add a second DriverGroup001 variable with a condition that you define.
See this blog post: https://www.deploymentresearch.com/mdt-2013-lite-touch-driver-management/
Thanks. One thing I ran into is that Driver automation tool does not include "HP" as prefix for the model name but the model name returned by the device itself does, causing a mismatch.
Perhaps I should include a custom script in the Task Sequence to set the DriverGroup001 variable fixing this.
Yes, you can use a model alias script as a user exit script to use different logic for different vendor / models. Here is a post on using that for ConfigMgr, same steps can be used for MDT Lite Touch too: https://www.deploymentresearch.com/using-modelalias-for-configmgr-driver-management/
If I understand the usage of this script, then we would have to add each used computer model to the task sequence? That doesn't sound like a very efficient way to automate the driver stuff :-/
No, just the usual single DriverGroup001 variable matching the folder structure the DAT tool creates in the workbench, or you configure the DAT tool for download only, and then use a custom script for the import with any naming convention you like.
Thanks for the reply!
I'd rather not use a custom script for the import – that's more work than manually downloading and importing the driverpacks.
I've attached a screenshot of what it looks like now. The yellow marked folder is what the tool created (without HP). The two lines above are created manually (with HP). I'm not sure how to fix this with the DriverGroup001 variable?
Maybe the easiest thing to do is let the tool import them like this, and then rename the folder manually…
YEs, a quick fix is indeed to rename the folder after import. I'll put together a user exit script that can parse the structure that DAT creates and normalize it to %MakeAlias% and %ModelAlias variables. That way you can just reference those in the task sequence instead of %Make% and %Model%. No other change needed than calling the user exit script via CustomSettings.ini. I'll send you an email once I get something together, probably not until next week, but still.
Hi Johan
no water what model I select , it always shows no matches found, Please try another OS/build
Depending on the vendor, you must select either the base Windows 10 version, or the specific build (like 21H2, 22H2), and then select "Find Models" in the upper right area.
still no go on any Dell models. I tried windows 10, window 21H2, 221h2 as suggested.
it seems the tools does not work with MDT as it does with Sccm. am I right?
Hi Saeid,
The tool works ok with MDT, but Dell seems to have some issues lately downloading their catalog via BITS, which the tool does. Download their catalog from here manually: https://downloads.dell.com/catalog/DriverPackCatalog.cab and extract the cab file. Then copy the DriverPackCatalog.xml file to the driver automation tool installation directory (default: C:\Program Files\MSEndpointMgr\Driver Automation Tool\Temp).
Got an update from Maurice Daly. Dell recently reverted back to using download. instead of dl. in the URL for downloads. GitHub has been updated and Dell downloads should work now. Delete the OEMLinks.xml from the settings folder if not ConfigMgr (SCCM).
Regarding Dell drivers and failing to import – lately some of the Dell Driver .CAB packages have begun to exceed the 2GB limit in a .CAB file, so Dell has been packaging them as .EXE which the EndPoint Manager fails to extract. If you manually extract to the appropriate folder and then re-run the Endpoint Manager, it will import for you.
I have had this problem with the Driver Automation Tool as well, but I don't think it's the tool's problem per se, it appears that however Dell is packaging the exe, it doesn't seem to work well when extracted from PowerShell, but it works fine when the same command is run from CMD. It also works fine when extracted using Start-Process and I have made a process to extract them if they don't extract, and then import them into MDT in the make/model structure. This tool also works wonderful with PowerShell Deployment PSD as well.
I tried to edit my original comment that is awaiting approval, but got an error saying it's no longer available for editing. I'm going to repost that comment along with my addition. Maybe you can delete or not approve the first one. Hopefully this can help someone. I wasted a lot of time trying to get this working for Lenovo. I am not impressed. =========== The Lenovo part needs some work. I logged in with a Microsoft account, and it takes me to a subscription page with no option for download. This tool is useless to me as all of… Read more »
Hi Matt,
Thank you for providing the links, I'll update the post with better instructions for Lenovo, and I'll reach out to Maurice to see if anything can be done in the DAT tool itself to improve the Lenovo models.
Good afternoon, I am having the same issue. I now have a mixture of Dell and Lenovo systems and the %Make%\%model% has work fine but we just starting getting Lenovo ThinkPads Gen 5 and the drivers will not install. I tried following the link in the original post and I only see a .cat and .txt file to download. can you confirm that the file you download from https://aka.ms/VS2015/IsoShell/en-US is the correct one? I tried to install it on a test system and it just freezes the icon and the folder the icon is located in. Johan I really appreciate… Read more »
I installed the VS Studio isolated shell for a customer using Lenovo models this week with no issues. The files downloaded should be en_visual_studio_2015_shell_isolated_x86_dvd_9fda4a05.iso, and the installer is vs_isoshell.exe.
Johan, I was able to get the VS Studio software installed. the next issue is I am behind a proxy. I get the following when opening the tool. Start-BitsTransfer : HTTP status 407: Proxy authentication is required. At line:17026 char:9 + … Start-BitsTransfer -Source $LenovoXMLSource -Destination … + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [Start-BitsTransfer], Exception + FullyQualifiedErrorId : StartBitsTransferCOMException,Microsoft.BackgroundIntelligentTransfer.Management.NewBitsTransferCommand Get-Content : Cannot find path 'C:\Program Files\MSEndpointMgr\Driver Automation Tool\Temp\catalogv2.xml' because it does not exist. At line:17029 char:37 + … oModelXML = Get-Content -Path $(Join-Path -Path $global:TempDirectory … + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (C:\Program File…p\catalogv2.xml:String) [Get-Content], ItemNotFoundException + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand You cannot call… Read more »
Sorry, but I don't know why your proxy settings don't work for Lenovo packages. Did you remove the old OEMLinks.xml before restarting the tool? I typically recommend organizations to pass-through the proxy or other SSL inspection for any ConfigMgr server downloading content from Microsoft or in this case other vendors. I have spent to many days of my life troubleshooting proxy servers and similar solutions. Usually if you involve security and network teams you can eventually make it work, but it's just a waste of time if you ask me. For the ThinkPad E14 Gen 5 21JK models, Lenovos public… Read more »
I was able to find the E14 GEN 5, I did see where I was not selecting build 22H2 but just Windows 10. Today I connected the test PC straight to the internet and now everything starts properly and seems to work fine, however when I try to download and Lenovo drivers, in the process log it starts and says processing Lenovo driver but then immediately says it is finished and I see no Lenovo Folder in the drivers folder. I am assuming I must be missing some with the VS 2015 internal but not sure.
Johan, Today i have connected the PC straight to the internet. no proxy issues. however i can still not download Lenovo drivers. I did see where I needed to select Windows build# for Lenovo Gen5 drivers. I went ahead an uninstalled DAT tool and deleted all files in C:\program files. I also remove all MS Visual C++ and VS_isoshell. I restarted and install VS_isoshell. Then installed DAT. set all script location for MDT. on Make and Model Selection I checked deployment platform MDT. I then select Dell OptiPlex Windows 10 and downloaded no probelm. I then select Windows 10 22H2… Read more »
Try selecting the Download only option. That worked for me for the ThinkPad E14 Gen 5 21JR 21JS model.
Johan, I was able to figure it out. I had downloaded the newest MSI which had DriverAutomationTool.exe 7.2.1. I then came across one of you videos on youtube and you descripted how easy it is to update the DriverAutomationtool.exe. https://www.youtube.com/watch?v=mhUbn9xHom4
So I went to the GitHub and downloaded it and updated it to 7.7.2. Now its working. Great Video by the way.
To implement the driver in MDT I still use \%make%\%Model% right?
Great find, and thank you for letting me know. I have updated the blog post with instructions on how to get the latest version.
The Lenovo part needs some work. I logged in with a Microsoft account, and it takes me to a subscription page with no option for download. This tool is useless to me as all of my computers are Lenovo, and the DAT software isn't usable without this isolated shell component.
In a large global business, driver management is tricky. This is because, over time, the driver repository requires extremely large amounts of storage. Replicating this amount of data to what may be dissimilar servers with dissimilar storage capacities brings challenges to managing older drivers. How do Deployment Research gurus manage this? For example, imagine a new MDT infrastructure has been setup and drivers have been imported for Windows 10 20H2 for many different computer models. And the data has been replicated to dozens of servers around the world – utilizing DFS-R. Later, new drivers need to be added, not because… Read more »
MDT is not the best platform for that scenario. ConfigMgr, and using drivers as WIM packages, takes care of these issues quite nice. For the PSD extension to MDT – https://github.com/FriendsOfMDT/PSD – We implemented a similar solution using WIM files for the driver packages. Shouldn't be too hard to port over to regular MDT, but since Microsoft stopped any development of MDT for three years now I'm not sure if it's worth the effort. If you would be willing to work with me on it, so I can get some testing help, please reach out to me on LinkedIn: https://www.linkedin.com/in/jarwidmark/