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 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:
|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:
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:
4. Perform a test deployment of a computer or virtual machine to see if it works.
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.