ConfigMgr OSD FrontEnd – Public preview available


Over the past couple of months, you may have seen a few tweets from me about a new Front End for ConfigMgr and operating system deployment that I’ve been working on. Today I’m happy to announce that it’s has entered the public preview stage and it’s ready for testing. The purpose of releasing this software as a public preview is straight forward. I’ve done some heavy testing in my own lab environment and at a few of my customers, but I’d like to give it to a broader audience before I release the final version. I’d assume that the public preview version contains bugs, and I’d like you help to find them. As you read the following blog post, you may find that not all of the functionality of the front end is documented, that will be changed once the final version is released.

My ambitions with this software is to provide a single front end experience that everyone can use (end users, help desk etc.) out of the box with as little configuration requirements as possible.


You can download the ConfigMgr OSD FrontEnd (public preview) from the link below. Once the final version has been released, I’ll make it available on TechNet Gallery and publish the source code on GitHub.

2017-01-03 – Fixed an error for the front end where it would cause an error upon loading hidden task sequence deployments that had multiple items named the same (essentially multiple deployments of the same task sequence)

ConfigMgr OSD FrontEnd (Public Preview) (320 downloads)


ConfigMgr OSD FrontEnd has been developed in C# and therefor requires .NET Framework to properly function. A certain function to generate your computer name outside of the software (by using PowerShell) requires PowerShell support as well. If your boot image does not contain those components, it’s required that you add those before you continue. Another requirement is that the software relies on my ConfigMgr WebService. This web service for ConfigMgr has been updated and embedded in the download package from the link above.


ConfigMgr OSD FrontEnd has been developed with the goal to ultimately function in any environment easing some of the pains with operating system deployment that we have today. This version of the software has been created with the purpose of being initiated outside of the task sequence as a prestart command.

In the public preview release, the following functionality is available:

  • Select task sequence for installation (based upon hidden deployments)
  • Prestage or Unknown Computer supported functionality
  • Computer name configuration
    • Manually enter a computer name
    • Generate computer name by serial number
    • Read computer name from external PowerShell script (logic to generate the computer name exists in the PowerShell script)
  • Associate a computer with a MDT Role (requires MDT logic in CustomSettings.ini for leveraging roles during the task sequence)
  • Set regional configuration like keyboard layout, OU and much more.
  • Define primary user for computer
  • Format harddrive if a volume is detected as encrypted


In the package that you hopefully by now have downloaded, a list of required files are present. Each files has a purpose, but not all of them are required, depending on the actual configuration that you make.

Below is a table of the functionality available to be configured in the OSDFrontEnd.exe.config file, that will determine the behavoir of the software:

Function Possible Values Description
Endpoint Address Any (string) Replace “” with the URL in your environment
WebServiceSecretKey Any (string) Enter the secret key specified for the ConfigMgr WebService (generated when installing the web service)
HeaderText Any (string) Set the text that will be displayed on the left panel of the front end
FormatDiskWhenEncrypted True / False (bool) Determine whether the front end should format and partition the disk when it’s detected as encrypted (see CleanDisk.txt for commands)
ComputerNameBySerial True / False (bool) Generate a computer name from the serial number of the computer (should not be set to True when ComputerNameByScript is set to True)
ComputerStageMode Unknown / Prestage (string) Select a stage mode, either Unknown Computer support or Prestaging the computer to a collection
SQLServer Any (string) FQDN of SQL Server hosting the MDT database (required if IsRoleEnabled is set to True)
SQLDatabaseName Any (string) Name of the MDT database
SQLInstance Any (string) Optionally specify an instance name if required for accessing the SQL Server hosting the MDT database
DeviceCollectionFilter Any (string) Filter the query for device collections that will be available for selection when prestaging the computer (Used only when ComputerStageMode is set to Prestage)
ComputerNameByScript True / False (bool) Generate a computer name by executing an external PowerShell script (should not be set to True when ComputerNameBySerial is set to True)
IsRoleEnabled True / False (bool) Disable the functionality of MDT roles (this will only disable the UI elements)


If both the ComputerNameBySerial and ComputerNameByScript options are set to False, the software with not populate the computer name text field, making it suitable for users to enter it manually if so desires.

Installation and configuration

1. Begin with installing the ConfigMgr WebService 1.1.0 by following the instructions below:

Use the files for the web service that are included in the public preview package (link above) instead of what’s mentioned in the above blog post.

2. Create a directory in your content library and extract the files from the OSDFrontEnd folder from the public preview package. Configure a prestart command for your boot image like below:


3. Edit the OSDFrontEnd.exe.config file according to your environment requirements. You can test the configuring by running the software in debug mode at any time from a command prompt:

OSDFrontEnd.exe debug

4. Perform a test deployment of a computer or virtual machine to see if it works.

Future releases

I’m aware that there might be several requests for future releases, and I’ll do my best to incorporate any feedback or suggestions that you might have. Below is a short list of things that I’ll be working on in a future release (not the general availability release).

  • Support for running inside of Task Sequence, not as a prestart command
  • Flexibility to disable tab pages that are you do not need
  • Ability to support non-hidden task sequence deployments
  • Support for configuring the length of the auto-generated computer name by serial number

Feedback and bug reporting

Please provide any kind of feedback that you might have, as it helps me a lot and I can therefor determine what to build in the upcoming releases. I’d suggest that you email me with your feedback, as I’ll be able to track it easier that way.


  1. richard

    looks interesting. ill have a play in my lab when get some time

    1. NickolajNickolaj (Post author)

      Thanks, please provide any feedback that you have 🙂


  2. Martin

    any video of the tool in action?

    1. NickolajNickolaj (Post author)

      Check my recent twitter posts, there are some GIF’s of it in action.


  3. Karsten Asak-Gyldenås

    Can you provide the source code? I would love to add/edit features, like USMT, Crypto, BIOS update and settings and so on. I’ve been looking for a good “template” to get started with, as I don’t have the time to write the base code myself, and this looks great. Good work!

    1. NickolajNickolaj (Post author)

      Hi Karsten,

      Like I wrote in the post, once the GA version is out I’ll post the source code as well. Unless I change my mind 😀


  4. asaf leshem

    Support sccm 2012 r2?

    1. NickolajNickolaj (Post author)

      I’ve not tested, but it should work yes.


  5. Rahim

    Hi Nickolaj,
    I followed your instructions to getting the front end to work. I created the folder structure, add an application pool in IIS, add an application to default web site, and set application settings. I am able to browse to http://localhost/ConfigMgrWebService/ConfigMgr.asmx successfully. I made changes to OSDFrontEnd.exe.config file (Endpoint Address and SQL value for my SCCM SQL server).
    I set up prestart command in my SCCM boot image. However , I am encountering an error. The front end comes up but I am getting an error “The exception unknown software exception (0xe0434352) occurred in the application at location 0x00007FFCF10FA1C8.”.
    What is it that I am missing? I am using SCCM CB build 1610 (no MDT) and SQL server 2014.
    Thanks for the effort.

    1. Scot

      I am seeing the same exception error with 1511.

      The web service is working as expected directly form Posh, and the form will load if the service URL is not added to the config (resulting in an expected 404.)


      1. NickolajNickolaj (Post author)

        Could you please paste your OSDFrontEnd.exe.config files here for me to take a look at? Or send me an email.


  6. Sharad Singh

    Good work Nickol, I will pay some attentions on that as that looks interesting

  7. asaf leshem

    get error :
    web service – the remote server returned an error (404)

    What should I check?

    1. NickolajNickolaj (Post author)

      How does your OSDFrontEnd.exe.config look like?


  8. Jim Gfroehrer

    Thanks for posting this, it’s really great. I was wondering if there is a way to set a default task sequence in the “Select Operating System” tab? It appears to list in order of PackageID right now. Thanks again!

    1. NickolajNickolaj (Post author)

      Hi Jim,

      That’s a feature that will be available in the GA release when the public preview ends. Another user requested the same and I have it coded right now and it seems to work.



Leave a Comment

Your email address will not be published. Required fields are marked *