MSEndpointMgr

ConfigMgr OSD FrontEnd – Version 1.1.0 released

About two months ago, the first version of the ConfigMgr OSD FrontEnd was released. Since then, a lot of requests for new features have been sent to me. Today, I’m pleased to announce ConfigMgr OSD FrontEnd version 1.1.0 that includes most of these feature requests.

Download

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

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

What’s new

ConfigMgr OSD FrontEnd version 1.1.0 includes the following new functionality in addition to what’s already available in 1.0.0:

  • New Apps section for application installation, provides functionality to specify mandatory applications including optional.
  • Support for disabling Role, Regional, Apps and User sections. This will not disable the controls inside each tab-page, instead the disabled sections will not be shown at all.
  • Regional section header text can now be renamed by using RegionalTabHeaderText application setting, allowing for a maximum of 8 characters.
  • A welcome screen showing a title and message text, including Continue and Cancel buttons have been added. This message screen could also be utilized as a warning message that the computer is about to be deployed.
  • A splash-screen has been built for the frontend showing different loading stages before the main window appears.
  • Unknown computer objects can now be removed from within the frontend, if detected by the web service. This provides desktop technicians to be able to re-initiate a failed deployment.
  • New preflight check for supported computer models that compares the computer being deployed against a list of supported models located on a web server, configurable via TestSupportedHardwareFileLocation.
  • Frontend will not attempt to format the system volume when running in debug mode and FormatDiskWhenEncrypted is set to True, once the Apply button is clicked.
  • SQL Server related application settings in the frontend has been removed, as they were duplicate to what’s configure for the web service.
  • When the splash-screen is loading the frontend software, if the specified web service endpoint address is not reachable, a prompt appears instead of causing the frontend to crash.
  • There’s now an animation when switching between tabs in the frontend.
  • A padding issue with data shown in different data grids in the frontend software has been fixed.
  • When a computer is added to a role in the MDT database, and the computer object didn’t exist previously, now when the frontend creates the object it also populates the Description field with the computer name.

If you have an idea that you think would be suitable for this application, please contact me on twitter or via email to further discuss how we can make that happen.

Documentation and usage

Embedded in the download package for ConfigMgr OSD FrontEnd is a PDF file called ConfigMgr OSD FrontEnd 1.1.0 – Documentation. This file contains all the information regarding how to get started, detailed explanation of how to use the frontend and some tips and tricks.

(3692)

Nickolaj Andersen

Chief Technical Architect and Enterprise Mobility MVP since 2016. Nickolaj has been in the IT industry for the past 10 years specializing in Enterprise Mobility and Security, Windows devices and deployments including automation. Awarded as PowerShell Hero in 2015 by the community for his script and tools contributions. Creator of ConfigMgr Prerequisites Tool, ConfigMgr OSD FrontEnd, ConfigMgr WebService to name a few. Frequent speaker at conferences such as Microsoft Ignite, NIC Conference and IT/Dev Connections including nordic user groups.

14 comments

  • I’ve discovered additional details that may assist you in troubleshooting. I tried GetCMDeviceResourceIDByUUID on a “known” machine and it returned a blank value as well. This machine never had an issue and the advertisements I was making to “all systems” showed up in the TS list. Running the method on both an “Unknown” and a “Known” computer returned the same result but the “Unknown” TS list was empty and the “Known” TS list wasn’t.

    Also, I’ve since reconfigured the boot image to use OSD FrontEnd 1.0 again. It will not image “Unknown” computers either. The TS list is empty. “Known” computers work as expected. Something to do with the WebService? Before I updated to FrontEnd 1.1 we were using WebService 1.0. When we started using FrontEnd 1.1 we learned very quickly that you needed the latest WebService. The front end would crash when it would query for unknown computers, because of the new methods GetCMUnknownDeviceByUUID and RemoveCMUnknownDeviceByUUID I assume. We updated to WebService 1.2 and the very next computer we PXE booted received an error shortly after the front end loaded. I am kicking myself because I didn’t write it down or take a screen shot. I believe it said something about the WebService. I simply hit previous once the task sequence failed and started over. The front end loaded successfully on a second try and all subsequent tries. I had forgotten about the error until I seen it again when I configured the new front end for a different test environment.

  • Great work on this. It is super helpful. I’ve used 1.0 in production and we’re now testing 1.1. I love that you can disable tabs you don’t need to use now. Very nice.

    In testing 1.1, it would seem that we are unable to deploy to unknown PCs. Deploy tab has an error “Unable to detect any task sequences”. There are no “unknown” devices. The PC that I’m currently testing with is a Dell model right out of the box. This functioned previously with the 1.0 frontend.

    We’ve checked our deployments. We’ve recreated most of them just in case. We confirmed the correct advertisements to he Unknown Computer device collection. Known PCs work as intended. Anything I can look at next?

    • Hi James, the disable tabs feature is very nice indeed. I’ve seen a couple of reports like yours where Unknown computers will return an empty list of hidden task sequence deployments. What’s being done behind the scenes is that the SMBIOS GUID is retrieved from WMI and passed along to the web service using GetCMComputerIdentityByUUID. If the device is known to ConfigMgr by that SMBIOS GUID the frontend will query the web service with the returned ResourceID for any task sequence deployments (hidden). I’ll double check this section of the code, but I’m fairly sure it should be bullet proof, but I might have missed something when adding the removal of known Unknown computer objects in 1.1.0.

      Could this perhaps help you in troubleshooting why it’s not working? You can always query the web service with PowerShell or by browsing to the endpoint address and invoke the method with the specific parameters needed.

      Regards,
      Nickolaj

      • Nickolaj,

        Thank you for your reply. I attempted what you had suggested. I’m not sure if I did it correctly. I connected to the web service using your documentation. Using my secret key and the UUID of the test system I ran the command:
        $web.GetCMComputerIdentityByUUID (“secretKey”, “UUID”)
        Results:
        At line:1 char:34
        + $web.GetCMComputerIdentityByUUID (“SecretKey …
        + ~
        Unexpected token ‘(‘ in expression or statement.
        + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
        + FullyQualifiedErrorId : UnexpectedToken

        Did I format the string incorrectly? I couldn’t find GetCMComputerIdentitybyUUID in your documentation for the web service so I wasn’t sure.

      • Hi James,

        Sorry, was replying to you from my phone and wrote the wrong method. It should be the following ‘GetCMDeviceResourceIDByUUID’. It has the same parameters, however you’d have to provide values for the parameters and not their names, e.g.:

        $web.GetCMDeviceResourceIDByUUID(“this_is_your_secretkey_from_application_settings_in_iis”,”value_from_WMI_on_your_device”)

        You can get the SMBIOS GUID (UUID) by running the following:

        Get-WmiObject -Class Win32_ComputerSystemProduct | Select-Object -ExpandProperty UUID

        Regards,
        Nickolaj

      • Hi Nickolaj,

        Using the new method it returns a blank line. No output as far as I can tell.

        PS X:\sms\bin\x64> $web.GetCMDeviceResourceIDByUUID(“b78ad775-10df-ac07-cfb78d432d5a”,”78FD4D56-C74D-BA3C-01D9-9B89FBC9F66E”)

        PS X:\sms\bin\x64>

        I had used my actual secretkey and UUID with the previous method but I wasn’t sure if there was a character limit in these posts so I didn’t bother typing them. Thank you again for your assistance so far.

  • I keep getting “ERROR: Unable to load configuration file for regional settings” I tried moving to web and leaving in execution directory. and keep getting error.

    • Hey Shaun,

      I’m seeing the same thing. Were you able to get the TS to show up?

      -Tom

  • Nickolaj,

    I’m having trouble figuring two things out.

    1 – I can’t seem to get any task sequences to show up. I have two separate ones deployed to “Only media and PXE (hidden)”. They are deployed as “Available” to “All Unknown Computers”. I have the same TS deployed to media and PXE, and it shows up as expected. Should they show up in debug mode, or only actually booted into the WinPE environment? I’m testing on a VMWare VM that SCCM considers an “unknown computer” so I think it should work.

    2 – Is there a list of the TSVariables that are used so I can reference them in the TS? I don’t see it in the documentation, maybe I am missing it.

    • Hi Tom,

      1 – If I understand your setup correct, yes, they should be listed as well in debug mode. You don’t need to have them deployed “double”, like it seems you have (for media and PXE, not hidden). This is how I normally set it up:

      1. Create a custom collection that includes membership for the All Unknown Computers collection.
      2. Deploy your task sequences that you want visible for computers in the frontend.
      3. (optional) Deploy your task sequences to a collection that contains all known devices, if you for instance want to be able to re-deploy them (refresh).

      2 – There’s no list really, only existing native variables are set except for those that you define yourself in the config.xml file (for the Regional section). You can check the OSDFrontEnd.log file for all the variables that are set, this depends though on what sections of the frontend is configured etc.

      Regards,
      Nickolaj

      • Here’s what I have now.

        -“Hidden Deployment” collection – contains All Unknown Computers, as well as the system that is hosting the VM (just in case).
        -Windows 10 v1607 Task Sequence Deployed to “Hidden Deployment” as Media/PXE Hidden.
        -I made an ISO of the boot image with the prestart command configured
        -Spin up a VM in VMWare – FrontEnd launches fine, but no TS found.
        -Try running FrontEnd in Debug mode on my system, no TS found.

        Is there a log file if it can’t find the TS?

    • Hi John,

      ConfigMgr OSD FrontEnd is not designed to be implemented inside a task sequence. You should run it as a prestart command in your boot image. Have a look at the documentation (PDF file) included in the download.

      Regards,
      Nickolaj

Sponsors