Adding Network (and Storage) Drivers to Boot Images in SCCM

Having written a post on Obtaining and Importing Drivers in SCCM for HP Client Devices it seems only fitting to follow it up with a post on adding drivers to boot images in SCCM. So here goes.

For this post I will add the driver for the StarTech USB-C to Gigabit Network Adapter (product id US1GC30B) to my boot image.


Although I have the drivers on a driver CD that came with the adapter I wanted to go ahead and look for a more up-to-date driver. I first had a look on the StarTech website for the drivers which told me a) the original chipset manufacturer (Realtek) and b) the chipset model (RTL8153). Armed with this information I then had a look on the Realtek website an immediately found a more up to date driver (10.13 vs 10.10). As I explained in my previous post, you almost always find the latest drivers from the original chipset manufacturer.

If you already have the driver imported in SCCM

Before going ahead with the step-by-step instructions, if you’ve already got the driver imported into SCCM then all you need to do is to go into the Properties of the boot image and add the drivers in the Drivers tab:


Continue reading

Configure your Task Sequence to Install Driver Packages for Client Devices

This is a continuation of  my post Obtaining and Importing Drivers in SCCM for HP Client Devices where we obtained drivers for our reference HP EliteBook 820 G3 laptop, imported them into the SCCM database, created a driver package and distributed the package to our Distribution Points.

Before carrying on with the instructions here please make sure you have the exact model name of your laptop as reported by WMI. We covered this under “Get the Correct Model Name of the Client Device” in the previous post. (Run “WMIC csproduct GET name” in a command prompt on your client device and make a note of the model name *exactly* as shown.)

As I explained in the previous post the idea is to configure our task task sequence to only install this driver package for this particular model. That’s where the model name comes into the picture. Any typos in the model name will cause the task sequence to skip this driver package from being installed during OSD.

Instructions for MDT Task Sequence

Locate the “Auto Apply Drivers” step under Post Install and disable it.

Add a group under Post Install called Install Drivers

Add a group under Install Drivers called HP

Under HP add an “Apply Driver Package” step, give it a name and choose the driver package you just created

Check “Do unattended installation of unsigned drivers on versions of Windows where this is allowed”

You should have something like this:


Select the HP group and add the following rules in the Options tab:


Select the HP EliteBook 820 G3 step and add the following rules in the Options tab:


This is where you’ll need the model name of the laptop which we obtained using a WMIC query earlier in the post (under Get the Correct Model Name of the Client Device).

Instructions for SCCM Task Sequence

For your SCCM task sequence locate the “Apply Device Drivers” step and disable it.

Add a group under Post Install called Install Drivers

Add a group under Install Drivers called HP

Under HP add an “Apply Driver Package” step, give it a name and choose the driver package you just created

Check “Do unattended installation of unsigned drivers on versions of Windows where this is allowed”

You should have something like this:


Select the HP group and add the following rules in the Options tab:

Add an If statement and choose Any

Add the following WMI Queries

SELECT * FROM Win32_ComputerSystem WHERE Manufacturer LIKE “HP”
SELECT * FROM Win32_ComputerSystem WHERE Manufacturer LIKE “Hewlett Packard%”

Select the HP EliteBook 820 G3 step and add the following rules in the Options tab:

SELECT * FROM Win32_ComputerSystem WHERE Model LIKE “HP EliteBook 820 G3”

Test your Task Sequence

At this point you’ve got everything set up. Go head and test your task sequence. Hopefully you won’t have any  exclamation marks in Device Manager.


SCCM: Preparing for the Windows 10 Anniversary Update

You’ll find there’s a little bit of pre-preparation work that needs to be done to get SCCM Current Branch ready for the Windows 10 Anniversary Update. I spent the weekend doing this myself on my SCCM 1602 lab and thought somebody might find it helpful to have it documented here.

To be clear, this isn’t a how-to post but more of an informational one. What follows is a set of tasks that need to be carried out on SCCM 1602 along with links to downloads and further information for each task.

1) First things first, upgrade SCCM CB to 1606. (Upgrading from 1511 to 1606 pretty much works exactly the same as upgrading from 1602 as described by Prajwal Desai in his blog).

2) After upgrading you need to install hotfix KB3184153 from the Updates and Servicing node to fix an issue with compliance policy rules in version 1606. If you switched to the fast ring to upgrade to 1606 you’ll also have KB3180992 to install.

3) Install KB3159706 on your SCCM 1606 SUP Servers to “enable the provisioning of decryption keys in WSUS for Windows Server 2012 and 2012 R2. This update is necessary for WSUS to be able to natively decrypt the encrypted Windows 10 Anniversary Update packages, and any subsequent Windows 10 feature upgrades”. Don’t forget to carry out the manual steps described on the support page.

Continue reading

SCCM Hotfix Stuck on “Prerequisite Check Passed”

Note: This process will also work if your 1606 update is stuck on “Prerequisite check passed”.

I had to fix a little problem before I could upgrade my SCCM CB to 1606 – the “Configuration Manager 1602 Hotfix (KB3155482)” update pack was stuck on “Prerequisite check passed” while the option to install the hotfix was greyed out. Annoyingly the 1606 update was also greyed out, so I couldn’t proceed without first dealing with the problematic hotfix.


I had a recent backup to fall back on but I opted to tackle the problem head on. Here’s how I done it…

  • I found the folder the update pack was downloaded into and made a note of the folder name (which had a random set of characters, referred to as the package guid)
  • Deleted the record of the package with the above guid from the SCCM database
  • Refreshed the view in the Update and Servicing node and restarted the SMS_EXECUTE service
  • The update pack was then downloaded again in the Update and Servicing node
  • I then proceeded with the installation as normal

Detailed instructions below:

In my case the Hotfix update pack was already downloaded which was located in a folder in the “SCCM Install Location\EasySetupPayload” directory: Continue reading

Deploy Microsoft .NET Framework 4.0 using SCCM

I’m planning on writing an article on deploying the Box for Office Integration client package using SCCM which requires the .Net Framework to be pre-installed (amongst other pre-requisites) so I thought I’d first write this post on deploying the framework so I can refer to it in the upcoming post.

We’re going to deploy this as an application and not a package since you can only have dependencies on applications.

Download the .NET Framework 4.0 Standalone Installer

To start off download the .NET 4.0 standalone installer from Microsoft and save it to your SCCM software repository.

I briefly mentioned the importance of having a clear and easy to understand folder structure to store your images, software and packages in the repository. Personally, I have a dedicated folder called “.NET Frameworks” with subfolders for each version that I’ll be deploying.


Make a note of the UNC path where you save the installer.

Create the .NET Application in SCCM

Again, I suggest you create a dedicated folder for .NET Frameworks under Application Management > Applications and create subfolders for each .NET framework version that you’ll be deploying.

Right-click on your chosen folder under Applications and select “Create Application”.

Continue reading

Applying an Unattend.xml Answer File in a SCCM OSD Task Sequence

There are times when you might need to customize Windows by using an unattend.xml answer file during the OS deployment. Yes, many of these customizations can be baked into the OS image itself or scripted but using an answer file is easier in many situations. For example, if you had offices in UK and USA and wanted to customize the keyboard language depending on the location, then it’s easier to maintain two answer files than two OS images.

Once you create an answer file how do you use it in a OSD task sequence? Long story short, you create a package for the answer file and then reference it in the Apply Operating System step in the task sequence.

Read on if you want the long story…

1) Create a Package for the Answer File

First thing’s first, copy the unattend.xml answer file into the SCCM software repository. Make a note of the answer file name and the UNC path where it’s stored.  Continue reading

Deploying the Reference Windows 10 Image using SCCM 2012 R2 (SP1)

This is the final part of a three-part series on Windows 10 OSD using MDT and SCCM 2012 R2.

Recap: In the first post we built our reference image using MDT and customized our default profile. In the second post we created our unattended answer file and captured our reference image.

Here, we’ll start off with importing our reference image into SCCM and then creating our task sequence to deploy the image. We’ll then create a package for our unattend.xml answer file to be used in our task sequence.

I’m going to assume you already have SCCM up and running and have access to your SCCM software repository.

Step 1) Import the Windows 10 Reference Image into SCCM

1.1) Copy the Reference Image to the SCCM Software Repository

We left the previous post after having captured the image using MDT, which saved the image into the “Captures” folder inside the MDT deployment share root.

Before importing the image into SCCM we have to copy/move the image to the SCCM software repository.

In my case I have a folder called “Sources” where I store all my software, packages, and images relating to SCCM. I suggest organizing the software repository with a clear folder structure. My folder structure for storing OS images looks like this:


You may have a different folder structure – what matters is that it should be organized so you it’s easier to locate everything.

1.2) Import the Image into SCCM

Your Software Library workspace should equally be organized with a clear folder structure. Continue reading