Month: December 2015

MDT Database – the why and the how

The Why

When I discuss with customers the most common response to the MDT database is “well we don’t need it, we can fill in the form for each computer that is just faster”

For me using the database is a given. It gives me flexibility and the result will always be the same regardless of who images a computer.

Imagine the following scenario: the user Bob’s computer has an error. To solve the problem, he calls the service desk and they create a ticket. Now he has to get the computer to the service desk or wait for an onsite technician to get to him to help him reimage is his computer. So it gets the correct name, apps etc.

Would it not be better to have all these thing predefined so Bob himself can reimage the computer and be back to work quicker? Most would agree. Then we have two main options.

  1. Generate data

This is a good option but only work for generic data or for information that does not have to be specific

  1. The database

This gives the option to preset information and in an easy way create roles for different type of information.

So if we look at the options above the usual settings that fit in category 1 is something like computer name, this can be generated and base on ex. the computers serial number.  Settings that normally fit in category 2 is applications or user specific settings, ex this user should have these applications.

So if you find this interesting, let’s move on to how to set this up.

The How

Setting up the database for use with either LTI (Lite touch) or ZTI (Zero Touch) is easy and requires no additional licenses or products (well almost, if you run LTI you will need SQL Express).

First up the SQL Server; you will need a SQL server. I would not recommend this to be part of your SQL server cluster as you need to enable Named Pipes as an authentication method. If you run LTI install SQL Express on your MDT server and if you are running ZTI well you should already have SQL on your primary site server, use that one.

The database will have an initial size of 4mb and after using it for a while and entering in a couple of computer well it might even grow to 10mb. So this will not be the database that takes all the memory or space from your server.

The database is created from inside the Deployment workbench and when created it is also supported to extend and modify the database.

Step 1 – Create the database

Open up the deployment workbench and in your deployment share go to Advanced Configuration. Right click the database and select new database.

Next follow the guide to create a new database and give it name.

Step 2 – Adding a computer

In this guide we will cover how to create a computer with the GUI. However, the nice Michael Niehaus has created a MDTDB PowerShell module so you can do batch importing and other modifications to the database with PowerShell, you can read his blogpost about it here:

To create a computer, select the computer node under database, right click the node and select new. Now it asks for a way of identifying the computer and you have four options: asset tag, serial number, mac address or UUID number. You ONLY need to enter one! You can fill in a description and I usually fill in the computer name. The only reason I do this is in the GUI the description is shown in the list of computers and gives me an easy way of identifying the computer.


Step 3 – Adding settings to the computer

Next we need to add some settings to the computer. You can view this as filling in the wizard without being there. If you look under the details tab you can fill in information for computer name, network adapter settings, domain join etc. This is pretty much all the settings then can be defined in the wizard and some extras as well.

Step 4 – Adding applications to the computer

You can also specify applications that should belong to that computer, this can be either ConfigMgr 2012 applications or LTI applications. You can also add ConfigMgr packages if that is what you use.

Step 5 – Adding roles

I will not cover how to create roles and since I have already done a post about that. You can find that here:

This post also covers how to create the database and link the settings into ConfigMgr.

Step 6 – Adding administrators

You can also add local administrators or domain groups/users that will become a local administrator of the computer

Step 7 – Configure rules

The last step to get this working is configuring rules. This ensure that as you deploy the computer it will query the database and get the relevant settings, applications, roles and administrators specified.

Under the advanced section right click on the database node and select “Configure database rules”. You will get a short wizard with what you should query for. Since this is a basic setup you can without any issues query for everything so leave everything selected and go through the wizard until its done.

The wizard will add a number of lines into customsettings.ini and if you are using LTI you are now ready to use the database. If you are using ZTI you need to copy the new information into the customsettings.ini in the settings package you have.


That’s it! You have successfully configured the database for use with either ZTI or LTI.

In the coming post I will cover extending the database with custom options so stay tuned.