Menu
CCMEXEC.COM – Enterprise Mobility
  • Home
  • General
  • Configuration Manager
  • Windows 10
  • Intune
  • GitHub
  • Windows 11
  • About the author
CCMEXEC.COM – Enterprise Mobility

Configuration Manager OSDBackground

Posted on October 27, 2016February 18, 2022 by Jörgen Nilsson

There are many solutions out there for setting the OSD background to show progress during OS deployment. My college Johan Schrewelius at Onevinn has written a great one that shows:

Note: OSDBackground have been replaced with TSBackground which have the same functionality and more. https://ccmexec.com/2019/06/tsbackground-for-configmgr/

  • Time elapsed
  • Host information
  • Current OSD Step
  • Custom background
  • Yes, it works in full OS in Windows 8.1 and Windows 10 as well.
  • Password Protected debug mode!!
  • Customizable colors
  • Easy configuration in a .xml file.

OSDBackground

It has a password protected debug mode for accessing Task Sequence variables, CMtrace, SMSTS.log and Command Prompt. If you haven’t turned of F8 Support in your boot image, it is time to do so now! It is accessed by Right-Clicking the upper left corner.

OSDBackground1

OSDBackground_Debug

In the Task Sequence, we simply add a step that executes OSDBackground and which step number it is. As shown below.

OSDBackgroundTS

It requires minimal configuration as everything is configured using a .xml file, it does require .NET framework and Powershell support in the Boot image so it needs to be added under optional components. The steps shown in the background is easily added modified, colors, debug password as well.

OSDBackground confguration

It can be downloaded from Technet Galleries, both the binaries and complete documentation on how to use it:
Onevinn – Applications (schrewelius.it)

Great work Johan!!

  • ConfigMgr
  • Configuration Manager
  • OSDBackground
  • SCCM
  • 64 thoughts on “Configuration Manager OSDBackground”

    1. Jonathan says:
      October 27, 2016 at 4:39 pm

      The name displayed is the OSDComputerName?

      Reply
      1. Jörgen Nilsson says:
        October 31, 2016 at 9:02 am

        Hi,
        You can configure with variable should be used to display the Computername in the Configuration file.
        Regards,
        Jörgen

        Reply
    2. Idriz says:
      October 27, 2016 at 7:22 pm

      Awesome work! – Have you tried it with MDT?

      Reply
    3. Ola says:
      October 28, 2016 at 9:33 am

      Looks great, but I get an error when trying to run the Set Time step:

      Failed to get and set system time, error: Cannot bind argument to parameter ‘Date’ because it is null.

      Known issue?

      Reply
      1. Jörgen Nilsson says:
        October 28, 2016 at 1:57 pm

        Hi,
        Yes the files are updated on Technet Galleries now with an updated version of the script.
        Regards,
        Jörgen

        Reply
    4. Dominik Ziegler says:
      October 28, 2016 at 4:44 pm

      Hi,
      i wonder, how do you handle the screen resolution change at full os state? The image stays in the default size of 1024×768 an fills only a part of the background. Any resolution for this planned? Besides that it works like a charm!

      Regards,
      D.Ziegler

      Reply
      1. Jörgen Nilsson says:
        October 31, 2016 at 3:56 pm

        Hi,
        There is no way to change the resolution of the background picture as it is what it is. could be that we could support more than one, one for Full OS and one for WinPE. Best solution, use a high-res pricture that scales and looks OK in WinPE as well.
        Regards,
        Jörgen

        Reply
    5. orion says:
      October 31, 2016 at 3:07 am

      Hi Jorgen, thx for sharing. I am trying with MDT 2013 U2 integrate with CM 2012 1602, I am getting error in winpe “The exception unknown software exception (0xe0434352) occurred in the application at location 0x00007FF951C17788

      THX

      Reply
      1. Jörgen Nilsson says:
        October 31, 2016 at 9:00 am

        Hi,
        Have you added .NET support to your boot image?
        Regards,
        Jörgen

        Reply
    6. Joshua Denzik says:
      October 31, 2016 at 3:52 pm

      How do you change the grey background to something else? We would like to use this tool but not with the grey customized background that it comes with. Awesome tool!

      Reply
      1. Jörgen Nilsson says:
        October 31, 2016 at 3:54 pm

        Hi,
        I will update my post with that information, it is included in the .pdf that is included with the download, you simply put a file called OSDBackgroun in the same folder and it will use that.
        Regards,
        Jörgen

        Reply
    7. orion says:
      October 31, 2016 at 4:20 pm

      Hi,
      I have added .net in boot image but still getting error. screen shot https://1drv.ms/f/s!AvrwFkn-ASCWkip4JbH8gT9NmBC_

      thx

      Reply
      1. Jörgen Nilsson says:
        October 31, 2016 at 4:26 pm

        Hi,
        Have you added powershell support? The Set-time script is updated as well in the download so could be that you need to update it as well.
        Regards,
        Jörgen

        Reply
    8. orion says:
      October 31, 2016 at 9:02 pm

      Yes, I do have .net and powershell enable. If you look in my onedrive link here https://1drv.ms/f/s!AvrwFkn-ASCWkip4JbH8gT9NmBC_
      I have screen shot for I have in my boot image.

      thx

      Reply
    9. Joshua Denzik says:
      November 1, 2016 at 1:47 pm

      Jorgen everytime I use a different background I get a “The exception unknown exception (0xe0434352) occurred in the application at location) If I use your background unedited it works. Any ideas or resolutions that I should set my custom background to get this to work?

      Reply
    10. orion says:
      November 1, 2016 at 11:05 pm

      Hi Jorgen, If I leave Background.jpg (original) works fine but when I change to different background.jpg, it is giving me error message I had mentioned above 0×00007FF951C17788.

      thx

      Reply
    11. orion says:
      November 6, 2016 at 6:11 pm

      Finally it is working. I reset jpg file as original and it is start working no error…

      Reply
    12. orion says:
      November 6, 2016 at 6:13 pm

      I mean I changed my background.jpg file size and resolution as default (original file comes with), and so far no error……

      Reply
    13. Colin says:
      November 22, 2016 at 1:27 pm

      Hi, many thanks for this fantastic tool.

      With the troubleshooting command, there are options to open CMtrace and the smsts.log file. However, nothing opens when they are clicked. Are the paths defined within the exe?

      Any other reason these buttons would not work?

      Reply
    14. mmarkt says:
      December 4, 2016 at 3:15 pm

      Hi Great Tool work works great

      It would be very nice if there where more options in the xml to customize the text, like the position and size of the text, and besides management point the distribution point

      Reply
    15. Nick Mees says:
      December 7, 2016 at 9:50 am

      Awsome add-on for our SCCM OS Deployment. Just implemented it and got already good positive feedback !! All credits to you guys !!

      Just received one question, is it possible to add the serial number of the machine for instance right below the computername. This way our engineers whilst the deployment is ongoing can use that number to update their asset management.

      Reply
      1. Jörgen Nilsson says:
        December 8, 2016 at 11:38 am

        Hi,
        We will add it to our backlog for next version.
        Regards,
        Jörgen

        Reply
        1. Paul says:
          December 14, 2017 at 3:37 am

          That answers my first question. I was wondering what that line under the computer name was, as it isn’t shown in the PDF usage guide.

          Also, it would be great if we could add other custom OSD variables to the screen.
          Thanks for a great tool.

          Reply
    16. Cornelius says:
      December 8, 2016 at 11:29 am

      Hi,

      pretty awesome tool, but I got a strange issue. After deploying Windows 10 using a Capture TS and the tool successfully, the OSDBackground is still in place when logging on. Any thoughts on this?

      Reply
      1. Jörgen Nilsson says:
        December 8, 2016 at 11:35 am

        Hi,
        Yes, it needs an extra reboot after that it is run the last time or simply kill the process, I am writing a blog post on it now.
        Regards,
        Jörgen

        Reply
    17. Juergen Hutter says:
      January 3, 2017 at 9:43 am

      Hi!

      We have a problem where there is no mouse pointer (it´s not invisible, it´s not there at all) during certain OSD stages. This makes it impossible to access the debug menu. Is there a way to assign a key to the debug menu? So instead of right clicking in the top left corner, I can press “ALT+F8” or something?

      Thanks!!

      Reply
    18. SpecT says:
      February 9, 2017 at 12:12 pm

      Hi

      I have change SetSystemTime.ps1 to :
      **************************************************************************
      Net Stop W32Time
      W32tm /config /syncfromflags:manual /manualpeerlist:”10.XX.XXX.XXX” <– IP from Timerouter
      W32tm /config /reliable:yes
      Net Start W32Time
      W32tm /config /update
      W32tm /resync
      $dt_format = "HH:mm:ss dd-MM-yyyy" <– Time&Date Format
      $nt = Get-Date -Format $dt_format
      $tsenv = New-Object -COMObject Microsoft.SMS.TSEnvironment
      $tsenv.Value("OSDStartTime") = "$nt"
      **************************************************************************

      and works fine for me (without OnevinnWSFree)

      Reply
    19. Matthew Swanston says:
      March 10, 2017 at 2:10 pm

      Johan, firstly thanks very much this is a fantastic tool!
      Jörgen, thank you for blogging and posting about the tool.

      Would it be possible in a later version to be able to customise and add additional variables:
      Including Distribution Point, _SMSTSBootimageID and _SMSTSBootMediaSourceVersion.
      (perhaps with the .config file).

      Thanks again for your efforts.

      Kind regards Matthew

      Reply
      1. Murali says:
        March 4, 2019 at 8:02 am

        Hi, Very nice tool. Thank you very much.
        It will be great to add the Distribution Point name variable also into the background.

        Reply
        1. Jörgen Nilsson says:
          March 14, 2019 at 7:30 am

          Hi,
          We have had that request many times, but it can actually vary from step to step in the TS so we haven’t added it as the risk of showing the wrong DP is huge.
          Regards,
          Jörgen

          Reply
    20. Mike Muffin says:
      March 25, 2017 at 3:40 am

      Hello,
      Great Tool. Thanks a lot.
      Question… will it be possible in the next release to move the text down/up…?
      thanks again

      Reply
    21. Robert says:
      April 19, 2017 at 3:37 pm

      You mentioned that this works in full OS. I am not seeing the background get set after the CM Client installs and boots into the OS. Anything I can check?

      Reply
    22. Cody says:
      May 25, 2017 at 4:17 pm

      Is there a way to ensure the Background stays up or applies again after the CM Client is installing, during this step it reboots then comes up installing, then reboots again but during this the OSDBackground goes away until it moves to the next step to call on the next OSDBackground instance..

      Reply
    23. David says:
      May 25, 2017 at 6:12 pm

      Jorgen,

      This is a great tool, I love it! Learned about it at MMS 2017. 🙂

      The one thing I see is that If I set the timezone to something outside of the timezone of my MP, the “Elapsed Time” doesnt adjust, so it looks like it is running longer than it actually is. I set the timezone to Beijing and when it syncs with the only MP I have in Boston,it adds 12 hours to the elapsed time. Any way to adjust the current script to account for this?

      Reply
    24. kevin says:
      June 5, 2017 at 7:34 pm

      Can we add more TS variables to the background other than computer name?

      Reply
      1. Jörgen Nilsson says:
        June 5, 2017 at 7:42 pm

        Hi,
        Currently not, what would you like to add?
        Regards,
        Jörgen

        Reply
    25. kevin says:
      June 5, 2017 at 8:49 pm

      Was hoping to have the SCCM Resource ID show up, but on second though, I do not believe that is captured in a variable.

      On another note, I am having an error when trying to run OSDBackground.exe during WinPE I get the following error.

      “The application has failed to start because its side-by-side configuration is incorrect.”

      I am running ADK 1607, I have .net added.

      Reply
    26. kevin says:
      June 5, 2017 at 9:15 pm

      figured it out. I had an “&” in my config file, and it did not like that.

      Reply
    27. Alex says:
      August 18, 2017 at 7:11 pm

      Hi,
      Everything works (Cmtrace, CMD, etc) except for SMSTS.log. Any reason why this doesn’t work?

      Thanks!
      Alex

      Reply
      1. Jörgen Nilsson says:
        August 19, 2017 at 11:11 am

        Hi,
        Could it be that it is not created yet? when are you trying to open it?
        Regards,
        Jörgen

        Reply
    28. Keith L says:
      September 6, 2017 at 3:35 pm

      Is there a way to add a line to stop the elapsed time from counting up? I have a message at the end of the TS prompting for a success or failure message and if left alone the time will add up until you click it. So something that would tell it to stop counting up and just display the current time would be great.

      Reply
    29. Kevin Z says:
      March 12, 2018 at 5:47 pm

      First off I love this utility and great work.
      I have encountered some quirks though. For us, the elapsed time while in WinPE is a negative value until the Task Sequence boots into Windows. I think it may revolve around the following .Net code not knowing the current timezone in WinPE:
      [System.TimeZone]::CurrentTimeZone.

      However, the PowerShell command Get-TimeZone displays the correct TimeZone in WinPE after your SetSystemTime.ps1 is executed. Could the utility be altered to address this issue?

      Like others, we are also seeing issues with the utility not always knowing where smsts.log is located at certain stages of the Task Sequence. It can be found by manually navigating to the location using cmtrace.exe.

      I love this utility and hope it continues to evolve overtime. Again, great work!

      Reply
    30. Kevin Z says:
      March 22, 2018 at 2:40 pm

      Also, has there been any discussions on creating this as an open source project? I think the community would be able to do some really cool things with it.

      Reply
    31. Dean says:
      April 3, 2018 at 5:34 am

      Hi, When installing packages it does not Show your OSD background and shows a windows generic background. how can I get around that?

      Reply
      1. Jörgen Nilsson says:
        April 5, 2018 at 9:03 am

        Hi,
        Sounds strange, did you run a new OSDbackground step in the TS after a restart?
        /Jörgen

        Reply
    32. Paul says:
      June 20, 2018 at 1:23 pm

      Hi,

      Loving this, glad I found it. Having an issue with OSDBackground.exe 3 (Applying operating system), steps one and 2 work but on step 3, the steps on the right hand side dissappear and do not come back until the “Installing Applications” step, after a reboot.

      Can someone give an idea as to why?

      Thanks.

      Reply
    33. Paul says:
      June 20, 2018 at 4:22 pm

      It seems that whatever the third step is, it stops the steps on the right hand side from showing. Is this a common error?

      Reply
    34. Pingback: How I Went from MDT Integrated Task Sequence to Native SCCM | Me, Myself and IT
    35. Dennis says:
      April 23, 2019 at 12:09 pm

      Hi Jörgen,
      I’m not able to access “Debug” mode. OSDBackground.exe is quitting when i’m Right clicking in the upper left corner.
      Any idea why ?
      I’m using ADK 1809 with ConfigMgr 1810.
      /Dennis

      Reply
      1. Yirmi Oppenhime says:
        June 12, 2019 at 9:36 pm

        I have the same issue with adk 1809 and sccm 1806.

        Osdbackground is in latest version.

        Reply
    36. Garrett says:
      April 24, 2019 at 10:04 pm

      Their are two SetSystemTime.ps1 files in the downlaod, other is called SetSystemTime – Copy.ps1, which has a few more lines of code. Which one should we use?

      Reply
      1. Jörgen Nilsson says:
        April 25, 2019 at 12:03 pm

        Hi,
        We will update the file, thanks for the headsup!
        You should use the one called SetSystemTime – Copy.ps1, delete the other and rename this one and use that, it does and extra check that the MP variable exists.
        Regards,
        Jörgen

        Reply
    37. Garrett says:
      April 25, 2019 at 7:01 pm

      New Feature Request: Can you add another button to copy logs to network share? Make the network share a value set in the config file?

      Reply
    38. Garrett says:
      April 30, 2019 at 9:55 pm

      New Feature Request: Can you add Domain Name or Workgroup to the left side also?

      Reply
    39. Mathias says:
      May 27, 2019 at 9:42 am

      Seems the scripts stopped working with WinPE 1903, or is it just me?

      Reply
      1. Jörgen Nilsson says:
        May 27, 2019 at 9:52 am

        Make sure you download the latest version and update the files. It works just fine with 1903
        Regards,
        Jörgen

        Reply
    40. thomas says:
      May 28, 2019 at 9:50 am

      After sucessfull tasksequence deployment the ” _SMSTaskSequence” folder persist on the C: drive with osdbackground.exe package. how to end osdbackground.exe at the end of the tasksequence?

      Reply
    41. Mathias says:
      May 28, 2019 at 10:22 am

      Thanks for the response Jörgen.

      Hm, well, it’s strange. I haven’t made any changes, beside upgrade to CM 1902, ADK & WinPe 1903. However, I downloaded the files, created a new package, and made a new WinPE. Now I got it to work again – except ‘Elapsed Time’. When i check the log from SetSystemTime.ps1, it says “Failed to get and set system time, error: Cannot bind argument to parameter ‘Date’ because it is null”.

      If I switch back to the previous WinPE (1809) & package, everything works.

      Reply
      1. Justin says:
        May 31, 2019 at 5:37 pm

        I was able to fix this by changing 2 lines in the script:

        Updated the regex as follows: $dt_str = ($so | %{[regex]::Matches($_,'(\?\d+\/\?\d+\/\?\d\d\d\d)\s(\d+:\d+:\d+)\s([AP]M)’)} | Select -Last 1 Value).Value

        Then also noticed my date was returning ?’s in it (?5/?31/?2019). I fixed by adding this line before the return: $dt_str = $dt_str.replace(“?”,””)

        Reply
    42. Oleg says:
      March 3, 2020 at 2:24 am

      Hi guys, I been using this solution for the last two years for OSD deployment and it works just great.
      Trying to use it as a splash screen for Windows Upgrade and for some reason can’t make it work. I see the process is running but no background is displayed. Tried to test it directly from PowerShell before starting the TS and it works fine. When TS is running, I try to run it directly from PS again and it won’t produce anything until I kill the OSDBackground process.
      Not sure what I’m doing wrong. Really disparate as tried different solutions, nothing work properly and this one is really nice and simple compared to other. Any help will be appreciated.

      Reply
    43. someDeployingDude says:
      February 12, 2021 at 9:45 pm

      Is it possible to not show the Management point by editing the config file? Thanks.

      Reply
    44. Lukas says:
      March 2, 2021 at 3:26 pm

      Hi, this looks very cool and I’d like to use it, but the klink to the technet gallery does not work. Could you upload it somewhere esle, please?

      Reply
    45. Thomas Faherty says:
      February 14, 2022 at 11:49 am

      I want to add that Likas is right, the link does not host this anymore so without a place to get this it’s a rather pointless article. Please if you could update it that would be really apricated.

      Reply
      1. Jörgen Nilsson says:
        February 18, 2022 at 2:04 pm

        Thanks for pointing it out, OSDBackground has been replaced with TSBackground which have the same functionality and more.
        Regards,
        Jörgen

        Reply

    Leave a Reply Cancel reply

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

    This site uses Akismet to reduce spam. Learn how your comment data is processed.

    My name is Jörgen Nilsson and I work as a Senior Consultant at Onevinn in Malmö, Sweden. This is my blog where I will share tips and stuff for my own and everyone elses use on Enterprise Mobility and Windows related topics.
    All code is provided "AS-IS" with no warranties.

    Tweets by ccmexec

    Recent Posts

    • Windows Servicing, Personal Teams and Success.cmd
    • Windows MDM Security Baseline – Settings Catalog
    • Configuring MS Edge Security Baseline v107 using Settings Catalog
    • Configuring Desktop App Installer using CSP and script?!
    • Customizing Taskbar and Start in Windows 11 22h2 with PowerShell

    ©2023 CCMEXEC.COM – Enterprise Mobility | WordPress Theme by Superb Themes
    This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish.Accept Reject Read More
    Privacy & Cookies Policy

    Privacy Overview

    This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
    Necessary
    Always Enabled
    Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
    Non-necessary
    Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
    SAVE & ACCEPT