My experience as a technology implementer and user: triumphs, discoveries, and expletives.


Configuration Manager Unleashed
Microsoft Most Valuable Professional
Follow Me on Twitter
web counter

Blog Roll

Persistent Posts

OSD Application Chooser

At the last three Configuration Manager Deployments that I’ve done, the customers have each asked the same question about OSD: is there a way to interactively choose applications to install at deployment time. Tired of saying no, I built the following small, yet hopefully flexible application appropriately titled the “OSD Application Chooser”.

What is it:

A small application that allows applications to be interactively chosen at deployment time during an OSD Task Sequence.

How to:

  1. Create an XML configuration file based on the supplied sample. The configuration file defines the following items:
    - A Timeout value. This specifies how long to wait for user input before moving on. The value is specified in number of seconds. If you specify 0, the GUI will not timeout.
    - A Task Sequence Variable. This specifies the base variable name to use for the Install Software task. This can be any valid task sequence variable name. This variable gets populated with the application choices that the user makes.
    - Application Sets. These are sets of applications that the user can choose from. Each AppSet is displayed in the combo-box at the top of the GUI. When the user changes the AppSet the set of applications shown in the list box changes. Users may only choose applications from one AppSet. If you set the task sequence variable OSDAppSet to one of the defined AppSets, only that AppSet is displayed to the user and the combo box is disabled.
    -Applications. These are the actual applications that you select during the deployment. Each Application is part of an AppSet. You must specify the package ID and program name for each Application. Make sure that the programs specified have the Allow this program to be installed from the Install Software task sequence without being advertised check box on.

  2. Put OSDAppChooser.exe and OSDAppChooser.xml into a software distribution package and install it onto the appropriate distribution points; no programs are necessary.

  3. Insert a command-line task in your task sequence with OSDAppChooser.exe specified as the command-line. If your task sequence is configured to download all source files first, this task must come after the partition and format task if you are deploying to a bare-metal system. Otherwise, you can place the task anywhere.

  4. Insert an Install Software task into the Task Sequence after the command-line task that you just created, preferably near the end; follow the example of the built-in task sequence types. Set the base variable name to the one you configured in the configuration file.

  5. Deploy your Task Sequence.



A log file named OSDAppChooser.log is placed in the same directory as the SMSTS.log file and is formatted the same as other ConfigMgr log files. You can also run OSDAppChooser.exe outside of ConfigMgr to test your configuration file. In this case, a log file will be created in %temp%.


This zip file contains the executable (OSDAppChooser.exe), a sample xml configuration file (OSDAppChooser.xml), and the two AutoIt v3 source files.


dhite said:

Great post Jason !

# December 1, 2008 8:10 AM