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.

Download

Update – ConfigMgr OSD FrontEnd is now general available. See download link below:

ConfigMgr OSD FrontEnd can be downloaded from the TechNet Gallery using the following link:

https://gallery.technet.microsoft.com/ConfigMgr-OSD-FrontEnd-100-55209031

Requirements

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.

Functionality

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

Documentation

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 “http://server.domain.com/ConfigMgrWebService/ConfigMgr.asmx” 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:

www.scconfigmgr.com/2016/10/12/configmgr-web-service-version-1-0-0-released

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:

223_1

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.

Nickolaj Andersen
Principal Consultant and Enterprise Mobility MVP. Nickolaj has been in the IT industry for the past 10 years specializing in Enterprise Mobility and Security, Windows deployments and Automation. In 2015 Nickolaj was awarded as PowerShell Hero by the community for his script and tools contributions. Author of ConfigMgr Prerequisites Tool, ConfigMgr OSD FrontEnd, ConfigMgr WebService and a frequent speaker at user groups.

(1375)

comments
  • richard
    Posted at 12:00 January 2, 2017
    richard
    Reply
    Author

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

    • Nickolaj
      Posted at 13:23 January 2, 2017
      Nickolaj
      Reply
      Author

      Thanks, please provide any feedback that you have 🙂

      Regards,
      Nickolaj

  • Martin
    Posted at 12:10 January 2, 2017
    Martin
    Reply
    Author

    any video of the tool in action?

    • Nickolaj
      Posted at 13:23 January 2, 2017
      Nickolaj
      Reply
      Author

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

      Regards,
      Nickolaj

  • Karsten Asak-Gyldenås
    Posted at 13:26 January 2, 2017
    Karsten Asak-Gyldenås
    Reply
    Author

    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!

    • Nickolaj
      Posted at 14:16 January 2, 2017
      Nickolaj
      Reply
      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 😀

      Regards,
      Nickolaj

  • asaf leshem
    Posted at 18:47 January 2, 2017
    asaf leshem
    Reply
    Author

    Support sccm 2012 r2?

    • Nickolaj
      Posted at 14:35 January 3, 2017
      Nickolaj
      Reply
      Author

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

      Regards,
      Nickolaj

  • Rahim
    Posted at 08:58 January 3, 2017
    Rahim
    Reply
    Author

    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.
    Rahim.

    • Scot
      Posted at 00:53 January 10, 2017
      Scot
      Reply
      Author

      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.)

      Thanks!

      • Nickolaj
        Posted at 23:27 January 11, 2017
        Nickolaj
        Reply
        Author

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

        Regards,
        Nickolaj

  • Sharad Singh
    Posted at 14:01 January 3, 2017
    Sharad Singh
    Reply
    Author

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

  • asaf leshem
    Posted at 15:48 January 3, 2017
    asaf leshem
    Reply
    Author

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

    What should I check?

    • Nickolaj
      Posted at 15:49 January 3, 2017
      Nickolaj
      Reply
      Author

      How does your OSDFrontEnd.exe.config look like?

      Regards,
      Nickolaj

  • Jim Gfroehrer
    Posted at 20:28 January 6, 2017
    Jim Gfroehrer
    Reply
    Author

    Nickolaj,
    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!
    Jim.

    • Nickolaj
      Posted at 20:31 January 6, 2017
      Nickolaj
      Reply
      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.

      Regards,
      Nickolaj

  • Kevin
    Posted at 18:18 January 13, 2017
    Kevin
    Reply
    Author

    Hello Nikolaj!

    I have followed your instructions pretty closely for both the OSD frontend, as well as the ConfigMgrWebservice but I am running into a minor snag. Current setup is a local SQL instance on my primary site server with IIS installed and Application Pool created for ConfigMgrWebService. When running the osdfrontend.exe from WinPE, it returns a “TS Environment error – Unable to load the TS Environment”. Also, when running WebService Queries via Powershell it returns no data. No errors, no data. Any ideas what I could be missing? Perhaps the Webservice is unable to talk to my SCCM environment?

    • Nickolaj
      Posted at 23:58 January 26, 2017
      Nickolaj
      Reply
      Author

      Hi Kevin,

      Have you setup the secret key correctly and how is the Application Settings for the Application called ConfigMgrWebService under the Default Web Site? have you given the identity used for the Application Pool proper permissions in ConfigMgr? For most of the methods available through the web service, you can add an Administrative User (the user account used as your identity) as a Read-only Analyst.

      Regards,
      Nickolaj

  • John
    Posted at 14:43 January 19, 2017
    John
    Reply
    Author

    Do you have any links to how to implement a task sequence into this?

    • Nickolaj
      Posted at 23:53 January 26, 2017
      Nickolaj
      Reply
      Author

      Hi John,

      I’m not sure what you mean. The frontend has been designed to be executed as a prestart command, and not be executed inside of an already running task sequence.

      Regards,
      Nickolaj

  • John
    Posted at 18:39 January 19, 2017
    John
    Reply
    Author

    Hi there,

    Been really looking forward to testing this. Finally got around to it. However….

    On startup I get a OSDFront.exe – Application Error. The exception unknown software exception (0xe0434352) occured in the application at 0x00007FF9F787A1C8.

    Can I please assist any further with testing this frontend. Really need something like this 🙂

    Keep up the great work.

    • Nickolaj
      Posted at 23:52 January 26, 2017
      Nickolaj
      Reply
      Author

      Hi John,

      I’ve identified a few issues with the Public preview release and I’d assume what you’re experiencing is that you might have a task sequence deployed to multiple collections, causing the application to crash. This has been addressed in the GA release that will be published soon. Please let me know more in details if that’s not the case in your situation.

      Regards,
      Nickolaj

  • Pat
    Posted at 16:29 January 23, 2017
    Pat
    Reply
    Author

    when i run Debug it cant find my device collection. what am i missing?

  • Aaron
    Posted at 20:59 January 24, 2017
    Aaron
    Reply
    Author

    Hello Nickolaj, I’m not seeing any hidden task sequences under the Deploy tab for those deployed to the Unknown Computer collection. I’ve e-mailed you my OSD config file. Thanks again, Aaron

  • Anoop C
    Posted at 09:57 February 2, 2017
    Anoop C
    Reply
    Author

    It’s hard to come by well-informed people in this particular topic, but you sound like you know what you’re talking about! Thanks
    ( http://www.anoopcnair.com)

  • JAC3D
    Posted at 03:25 February 3, 2017
    JAC3D
    Reply
    Author

    Thanks Nickolaj,
    This is great and is working well. Except applications in the roles are not installing. What logic needs to be in the CS.ini?
    Also will there be an option to install more than one role in the next release? We have a standard role for base apps then department roles. Would be pretty sweet to have the option to select multiple. You did an excellent job and totally agree with Anoop!

  • JAC3D
    Posted at 16:50 February 7, 2017
    JAC3D
    Reply
    Author

    Nickolaj,
    Thanks for spending time on this and it works very well. One Question:
    What logic needs to be in the CS.ini to incorporate roles?
    “Associate a computer with a MDT Role (requires MDT logic in CustomSettings.ini for leveraging roles during the task sequence)”
    OS Deployments are working fine, except applications are not installing during the “Install Applications”… Applications install fine without the FE configuation.
    Thanks JAC3D

  • Anders Rodland
    Posted at 17:27 February 9, 2017
    Anders Rodland
    Reply
    Author

    Hi Nikolaj, I use this in my lab right now and I will probably implement it for a customer soon. I love it, this is so much better than UDI wizard from MDT. Looking forward to the full release.

  • Leave a Reply