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.

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.

(2050)

comments
  • John
    Posted at 18:53 April 26, 2017
    John
    Reply
    Author

    Where can we learn how to integrate this into a task sequence?

    • Nickolaj Andersen
      Posted at 12:00 April 28, 2017
      Nickolaj Andersen
      Reply
      Author

      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

  • Tom
    Posted at 20:31 May 3, 2017
    Tom
    Reply
    Author

    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.

    • Nickolaj Andersen
      Posted at 12:13 May 5, 2017
      Nickolaj Andersen
      Reply
      Author

      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

      • Tom
        Posted at 13:29 May 5, 2017
        Tom
        Reply
        Author

        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?

  • Shaun
    Posted at 20:42 May 9, 2017
    Shaun
    Reply
    Author

    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.

    • Tom
      Posted at 13:52 May 10, 2017
      Tom
      Reply
      Author

      Hey Shaun,

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

      -Tom

  • James
    Posted at 19:01 May 11, 2017
    James
    Reply
    Author

    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?

    • Nickolaj Andersen
      Posted at 20:27 May 11, 2017
      Nickolaj Andersen
      Reply
      Author

      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

      • James
        Posted at 00:32 May 12, 2017
        James
        Reply
        Author

        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.

        • Nickolaj Andersen
          Posted at 06:09 May 12, 2017
          Nickolaj Andersen
          Reply
          Author

          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

          • James
            Posted at 13:14 May 12, 2017
            James
            Author

            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.

          • Nickolaj Andersen
            Posted at 21:30 May 12, 2017
            Nickolaj Andersen
            Author

            It seems that there might be an actual issue here, got the same report from another user. Will investigate this and get back to you!

  • James
    Posted at 01:48 May 13, 2017
    James
    Reply
    Author

    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.

  • Leave a Reply