Integrating UDI into your SCCM OSD Task Sequences

Posted: August 20, 2013 in Configuration Manager 2012, MDT
Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , ,

I think a lot of people look at UDI (User Driven Installation) Task Sequences as just that – an option for users in an organisation to perform actions associated with the deployment of an Operating System. Well that’s perfectly acceptable however when I first installed Configuration Manager 2012 in my lab I looked at the new UDI options and immediately saw a way of replacing my old HTA that I had with Configuration Manager 2007. I was fairly sure I could adapt the UDI Wizard to suit my deployment model taking full advantage of what the MDT team had already written. The following blog briefly describes what I have done with UDI in my organisation.

Implementing the out of box UDI solution is actually fairly straight forward.

  1. Integrate MDT with your Configuration Manager 2012 installation
  2. Create your MDT files package, I have done this with MDT 2012 Update 1
  3. Create a standard MDT client task sequence, this will automatically include the steps that call the UDI Wizard
  4. Test your Task Sequence to ensure that it works and calls the UDI Wizard as expected.

Once you have these basics configured you can then take a closer look at customising what built in panes the wizard presents and how that information is collected and used.

Its worth noting as this point that I haven’t had a need to create any custom panes which set variables. Having said that, you can do this and MDT 2013 includes the ability to create your own pages using a GUI which is a vast improvement on what was offered in MDT 2012 Update 1.

Using the UDI Wizard Designer, I have removed quite a few of the built in panes. This is because I have tailored it for my Service Desk technicians to use and rely on the other built in Task Sequence steps to set variables. I have modified the New Computer and Refresh page libraries and have a separate USMT scripted process for the replace scenario.


New Computer UDI Steps


Refresh Computer UDI Steps

I have created separate UDI XML files for each Operating System that I deploy or refresh so that I can control settings and what applications are installed. To call different UDI Wizard XML files, save your UDI XML template file with an appropriate name into your MDT Files package then modify the two UDI Wizard steps in the Task Sequence.



You can customise the default header image (as I have) so the UDI Wizard is customised to your organisation. To do this you will need to locate the UDI_Wizard_Banner.bmp file located in your MDT Files package. Modify both copies of this file within the \Tools\x86 and \Tools\x64 folders respectively. The image needs to be 759 x 69 pixels. Rename the old file to UDI_Wizard_Banner.original in case you wish to roll back. Once your changes are complete, update your Distribution Points.



Here are some screen captures on my New Computer UDI Wizard. You can use the wizard to add Organizational OU’s, a pre-populated Domain Name, Applications and other variable settings.


Collecting Computer and Network Settings


Application Selection and Installation


Summary Page

As the MDT Gather step runs before the UDI Wizard starts, you can also pre-populate other variables which will then automatically appear within the UDI panes. For example you may wish to run a separate script to generate a computer name, if this is run prior to the UDI Wizard running, it will be displayed in the pane that contains the field referencing that variable. Another good example of this is to pre-populate the domain join account username and password using CustomSettings.ini.


You can also use the UDI Wizard to present groupings of Applications which when selected will then be installed as part of the base variable COALESCEDAPPS during the Install Applications step of your TS . To correctly configure this for OSD you will need to create a collection within your Configuration Manager Console, then Deploy each Application to that collection that you want to make available during an OSD Task Sequence. The Deployment type needs to be set to availableAlternatively you can use an existing collection, if you have one setup, that already has your Applications deployed in this manner.

Note: If you rename an application in Configuration Manager 2012, you will have to update your UDI XML file, save and redistribute your MDT Files package.


When this has been completed you can use the UDI Wizard Designer to create your Software Groups. Ensure that you have set the Site Settings within the designer by selecting the Configuration Manager ribbon button. You will need to set your Site Server Name and the name of the Application Collection that you have created and deployed your Applications to otherwise your Applications will not appear when you try to search and add them.

Note: You need to tick the option “Allow this application to be installed from the Install Application task sequence action without being deployed” for each Application that you want to install as part of a TS



Using UDI as an alternative has allowed me to transition into Configuration Manager 2012 OSD easily, retiring my old HTA. I have been able to take advantage of the built in panes and were suitable, set and populate information automatically. With the new version of MDT 2013 around the corner, the new Custom Page Designer will no doubt add further options and capabilities in this area.

Hopefully this blog gives you some broad ideas around how you can implement UDI in your organisation and what is possible to achieve when using it.


Cheers Damon

  1. benoit says:

    Hello, I have to configure exactly that you speak in your article. Can you give me your full task sequence configuration please ?

  2. benoit says:

    Thanks a lot ! My major problems are with variables like COALESCEDAPPS. I found an other article ( ) but it don’t work. And what are the variables for new computer details ?
    Sorry for my bad english and Thanks again,

    • Damon Johns says:

      I’ve taken a look at that site and what they are doing is fairly specific to their environment. You don’t need to mess with any variables / add additional steps / change anything at all. If you just call the UDI Wizard, it will set the variables with the values your after. Just create a stock standard MDT integrated task sequence, which by default will call the UDI Wizard. Add your customised UDI wizard files to your MDT 2013 Files package and then it should work – no need to mess with variables inside the TS. The UDI wizard should do it for you. If you still think my TS would be of benefit let me know, I can provide screenshots or setting configs of any specific step your having trouble with. Most of the work with UDI is actually designing your custom wizard with the UDI Designer. The only time I’ve ever had problems with applications and UDI, is when I’ve renamed an application (or removed it) from the SCCM console and have forgotten to amend my UDI xml file within my MDT 2013 files package.

  3. Andy says:

    Hey Mate, fellow Aussie SCCM admin here. Thought I would just thanks for this guide, I managed to get it going with UDI and SCCM2012R2. For anyone having issues with applications not installing and a lack of error. I found that the applications need to be recreated and imported into the console, for them to actually install as part of the UDI.

  4. Jason Ballard says:

    Hi Damon, you seem to have exactly what I’m looking for in a task sequence that only installs applications via the UDI. I have a deployment TS that pushes a new image to a PC and I want to use the UDI to install specific applications from a list. I’ve gotten the base UDI task sequence to work following the tutorial here: .

    What I’ve tried to do is strip everything down so that all I have left are the requirements for the UDI applications page. I got my TS to complete, but it skipped over the last few jobs that install the software, no errors or anything. Could I see the steps/jobs you have in your TS so I can figure out what I need in my TS for this to work? Thanks.

    • Damon Johns says:

      Hi Jason, sure thing. All you need to do is have your custom UDI wizard files in your MDT 2013 files package then modify your UDI step in your standard MDT TS so that it calls the file. If you are seeing your custom UDI Wizard with your applications to choose from then it should be working for you. Remember to configure your UDI Wizard designer to point to the collection that you are deploying your applications to (for OSD) and also make sure that your apps are set to allow installation from the Install Application task sequence action without being deployed (Setting in the General Information Tab on each of your apps)

      Here is a link to some screen shots for you:

      I’m pretty much using a stock standard MDT 2013 Integrated SCCM Task Sequence. The only steps I have modified is an additional step to make sure that the wizard is called and then a modified script argument to load my specific UDI xml file which has been copied to my MDT 2013 Files package.


  5. John says:

    Hello, when you removed the built-in panes, could you show us what you needed to put it to set the task variables or is not required? Thanks

    • Damon Johns says:

      Hi John, no variable’s being set inside the UDI Wizard. They are set using customsettings.ini which is set when the gather step is run in the Task Sequence – does this answer your query?

      • John says:

        Wow. Thanks for your quick reply. Yes… fairly spot on… so how do you know what settings to put into customsetting.ini? I noticed you have BDEInstallSuppress, which is to disable bitlocker. I noticed you also have DoCapture, where mine was SkipCapture=TRUE out of the box after MDT integration with SCCM 2012 R2. And the more I look into customsettings.ini on Technet and the web, the more confused I get.

      • Damon Johns says:

        OK so the settings that are put into customsettings.ini are from a list of available deployment variables supported by MDT 2013 and Configuration Manager 2012 R2. In my current Windows 7 x64 deployment customsettings.ini I have the following, DoCapture and SkipCapture I believe are different variables but have the same result re: skipping a capture so you can ignore that inconsistency. I had the BDEInstallSuppress option included as I wanted the Bitlocker action skipped unless I specifically told it to run in my TS, I guess some of the settings aren’t really required but having them in the file is down to habit:



        You can find a list of available variables for MDT in the Help Documentation (There are a lot) – A list of Configuration Manager 2012 R2 variables is documented on Technet.

        Here is a Blog which I think might be useful for you – it lists what variables are used at each UDI Pane step so you can automate the population of that information using CustomSettings.ini

        Let me know if you have any other questions 🙂


  6. John says:

    Cheers, really appreciate your replies. Just one final question if I may. You’ve set the OSDJoinAccount and OSDJoinPassword in the ini file, but doesn’t the step “Apply Network Setting” already provide these credentials to join the machine to the domain?

    • Damon Johns says:

      I’m not actually 100% sure why you need to specify those variables in the Apply Network Settings step. I believe that you need to complete those values because its an integrated MDT Task Sequence and essentially still using the Config Mgr TS engine. For the MDT UDI components to update their variables from the Wizard (like MachineObjectOU) we need to have something specified already in the Apply Network Settings step, the values can’t be empty. Does that make sense? Its a little hard to explain as I have never really thought about it – its always just been something I have populated. You obviously need to have that information specified in the ini file otherwise you would have to manually enter it in within the UDI pane. I have a feeling that the domain join step will fail if its not completed – test it out if you like – I would be interested to know.

  7. John says:

    Yep, it makes sense now after it failed to join the domain when I disabled network settings step. Cheers,

  8. […] information, applications to install, and much more. Damon Johns has a very thorough post about it, Integrating UDI into your SCCM OSD Task Sequences. There are a handful of walkthrough videos on TechNet as […]

  9. Rob says:

    Hi Guys,
    Hope somebody can help me quickly because have a problem at work.

    I have added packages to the UDI wizard but they are not installing. I get an error 0x80070006.
    I followed the standard steps but it is not working.

    When the allow even if it is not deployed to an collection is marked, do I still need to deploy it?
    How can I run a TS do check this part of the TS without running the full TS?


    • Damon Johns says:

      Apologies for the late reply Rob. You may have this sorted now I guess. You do have to deploy the application to a collection in addition to the check box you mentioned. You configure the ID of this collection in the UDI Wizard. This is how the Task Sequence generates it list of applications dynamically to install. Another thing to mention. After you have deployed an application and set it up in UDI, don’t change the application name or it will break the deployment. If you do need to change application names and deployment names etc, then remove it from your UDI xml file first, then re-add it after you’ve made your changes. Cheers Damon.

  10. Nick L says:

    Thanks mate, This is like the ONLY article that helps someone who only knows SCCM better understand how to integrate/use MDT features with a new SCCM install.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s