MDT has a built-in feature that allows you to install packages from SCCM on the fly during the Deployment process. More or less similar to installing applications from MDT. While this is great for dynamic deployments, it’s not that easy to use as you have to define the package with it’s package id and the program of the package to be run. A typical entry looks like
MKO0023E:MDT – Install Microsoft Office 2007
I`m pretty sure that most of you that used this feature have spent already some time on getting all the necessary entries and spent even more time on troubleshooting errors caused by typos or renamed programs. Not to mention that these entries are even case-sensitive as Chris Nacker just had to find out the hard way ;-). So one way to ease this is to create a report in SCCM presenting a list of PackageID:ProgramName values with some additional information ready to be copied to MDT.
A second option is to use the MDT Web FrontEnd for this. Using the FrontEnd you are able to search for all existing packages on a certain SCCM Server that fulfills certain conditions (more on this later). You are also able to replace a currently used package with a different one. Let’s say you have been using the MDT Database already quite some time to deploy computers and made heavy use of the SCCM Packages. Now one of the packages used becomes obsolete and is replaced by a new version or even by a different application. How do you make sure that the old package isn’t used anymore or even better, how do you simply update all entries with the new one?
Configure the Database connection
Let’s start. To be able to query a SCCM Server, we first need to have a valid connection to it. To check this, click on the Admin and then on the Configuration tab. You will see the configuration of the two database connections the Web FrontEnd is using. Now click on the “Test SCCM DB connection” button and you should see a small notice if the connection was successful. If not it should show you the error message to help you finding the issue. If you haven’t configured the database connection yet, please see Configuration of the database connections from the Documentation.
Search for packages
OK, we can connect to SCCM. Now we want to add a new package to a new Role. I generally recommend to use Roles for such things. This way you only have to search for the package once, you can ensure the correct order if several packages that need to be installed due to some pre-requisites and it’s easier to update them. So for this example, we create a new Role “Frameworks”. Now we open the details of this role and click on the package tab. You can now either type in the valid packageid:programname combination or you simply click on the button Search for SCCM packages. This brings you to a search window. If you have configured the FrontEnd to show all existing packages as soon as you open the search page (see the admin - configuration tab) you will see a list of all packages. Depending on the amount of packages, this might take a moment to process. I generally prefer to have it empty at the beginning and then just search for the required ones. Anyway, you might notice that not really all packages are shown.
To be able to install a certain package during the Deployment process, it needs to fulfill some requirements. The program needs to be able to run in a Task Sequence (on the advanced tab of the program properties).
And it must not be configured to interact with the user. So it needs to be completely silent. Additionally you have the possibility to “hide” certain programs and/or packages by simply adding the word “Hidden” to the Description of the package/program. If you add it to the package it won’t be shown at all. If you just add it to a program the package will still be shown but the list of available programs will be limited.
Let’s have a look on the actual search result:
You might notice that some programs are slightly highlighted. The FrontEnd will highlight each program that contains “MDT” somewhere in it’s name. I recommend creating a specific program per package for MDT usage only and I found it useful to highlight those entries.
ok, we select the Framework 1.1 and 3.5 SP1 to be added to the “Frameworks” Role and click on “Add selected”
Now we have added them to the role. As you can see those entries aren’t really user-friendly but the FrontEnd makes them handy.
Update Packages
But wait, we have added the .Net Framework 1.1 only. It probably would have been better to use the .Net Framework 1.1 with SP1 included. We know that we have a package for this is available but what about if this is already used in other Roles, Locations, Computers, etc. as well? Would be nice to update all of them with the SP1 package, wouldn’t it?
OK, click on the Admin tab and then on Packages. You will see a list of all packages currently used within the Database. Packages used several times will be combined into one single entry. To see all the Identities using one of the packages, simply click on the name of the package.
But as we want to update all of them anyway, we just click on the Edit icon of the package you would like to update. That will get you to a screen that allows you to update all instances at once. You can now either type in the new packageid:programname entry or again make your life easier and search for a package as replacement as shown before. This time you would only be able to select a single package but that’s generally the only difference.

Then you just need to add the word “Hidden” to the Description of the Framework 1.1 Package and it won’t pop up in future and you have greatly limited the chance that anybody else is using the wrong package again.
For more information about other topics have a look on the Documentation on Codeplex. If you aren’t using the FrontEnd yet, just download it from Codeplex now and follow the Installation Guide. It will take you less than 10 minutes and you will already be able to configure your first values no matter if you are using the MDT Database already or just going to create it now.
I really appreciate all the feedback. Just get back to me if you need to have a specific topic covered in more detail.
This How To is part of a series showing different features of the Web FrontEnd. If you got something useful out of this one, please also have a look on the others published so far:
- How To restrict access to the Deployment Database
- How To configure what a User can see and edit
- How To handle Custom Settings
- How To create custom Lists to select pre-defined values for a setting
- How To handle MDT Applications in the FrontEnd
- How To handle SCCM packages