# MDT DriverPacks

{% hint style="info" %}
This feature will be completed and released in mid April, as well as a Driverless MDT using OSDCloud's DriverPacks
{% endhint %}

**Will you still use Out-of-box-Drivers when you can use Driver Packs in MDT?**

As OSDCloud has demonstrated, it is easy to pull Drivers from the Cloud, but its also designed to search for the required files locally in the case an of OSDCloud.usb.  I wanted to give you an example of how DriverPacks can replace Out-of-box-Drivers in MDT by using some of the concepts of OSDCloud, like Specialize DriverPacks

{% content-ref url="specialize-driverpacks" %}
[specialize-driverpacks](https://www.osdcloud.com/osdcloud-v1/recycle-bin/concepts/specialize-driverpacks)
{% endcontent-ref %}

## Deployment Share

The Deployment Share should be configured with a DriverPacks directory.  The folder structure doesn't matter at all

![](https://344220114-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVSV22dcsjKDdOxDA6n%2F-MWtP73ce3B5qIIAFnKs%2F-MWtrELMBrAv1dalVrUi%2Fimage.png?alt=media\&token=ccb45a8c-98cc-4503-b9c3-232ad79d5b93)

## OSD Module

For this to work properly, you will need the OSD Module in WinPE, as well as in the Offline OS BEFORE you restart from WinPE.  I'll work on a new function to copy it to an Offline OS, similar to **`Copy-PSModuleToFolder`**

## Task Sequence

A single Command Line step is needed to get the proper Driver Pack name and search for it in the DriverPacks folder.  In this step, I have the Command line set to the following

```
PowerShell.exe -Command Add-OSDMDTDriverPack
```

This may likely change before it is finalized for release

![](https://344220114-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVSV22dcsjKDdOxDA6n%2F-MWtP73ce3B5qIIAFnKs%2F-MWtqVZUaGGR2jmzSdED%2Fimage.png?alt=media\&token=5e8749bb-89d6-4a38-a64b-7875cde703ff)

## Unattend.xml

You will need to add this code to the Specialize pass of your Unattend.xml.  This is what launches the Expand-StagedDriverPack function

```
<RunSynchronousCommand wcm:action="add">
    <Order>5</Order>
    <Description>Expand-StagedDriverPack</Description>
    <Path>Powershell -ExecutionPolicy Bypass -Command Expand-StagedDriverPack</Path>
</RunSynchronousCommand>
```

![](https://344220114-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVSV22dcsjKDdOxDA6n%2F-MWtP73ce3B5qIIAFnKs%2F-MWtpJekVKrMaKcmCgy6%2Fimage.png?alt=media\&token=25838ecf-eeeb-4386-8226-a9af7cfe67fc)

This is how it looks in an MDT Deployment, staged to C:\MININT\Unattend.xml

![](https://344220114-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVSV22dcsjKDdOxDA6n%2F-MWtP73ce3B5qIIAFnKs%2F-MWtoohmAPHB9v0O4dRD%2Fimage.png?alt=media\&token=a5eb0f84-1107-426f-8551-eca380f80f98)

## Deployment Process

You really shouldn't notice anything different during the MDT Deployment process.  here are some screenshots anyway

![](https://344220114-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVSV22dcsjKDdOxDA6n%2F-MWtP73ce3B5qIIAFnKs%2F-MWtnzaupKzKjto4z8e0%2Fimage.png?alt=media\&token=4c953d3c-921b-4959-acc2-5593d34687d3)

![](https://344220114-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVSV22dcsjKDdOxDA6n%2F-MWtP73ce3B5qIIAFnKs%2F-MWto3FPBNkfnYAUOQfQ%2Fimage.png?alt=media\&token=c533adbc-ae76-4280-9fe7-492c132c8ed1)

![](https://344220114-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVSV22dcsjKDdOxDA6n%2F-MWtP73ce3B5qIIAFnKs%2F-MWto5TRNIRaaefB3Gii%2Fimage.png?alt=media\&token=f8393ccd-60c7-4977-9d96-605294065c62)

![](https://344220114-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVSV22dcsjKDdOxDA6n%2F-MWtP73ce3B5qIIAFnKs%2F-MWts51HwuTm211tOkXl%2Fimage.png?alt=media\&token=95a2d9af-c10e-4be7-8371-e3eceb95fbca)
