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.
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.
In the Task Sequence, we simply add a step that executes OSDBackground and which step number it is. As shown below.
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.
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!!
The name displayed is the OSDComputerName?
Hi,
You can configure with variable should be used to display the Computername in the Configuration file.
Regards,
Jörgen
Awesome work! – Have you tried it with MDT?
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?
Hi,
Yes the files are updated on Technet Galleries now with an updated version of the script.
Regards,
Jörgen
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
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
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
Hi,
Have you added .NET support to your boot image?
Regards,
Jörgen
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!
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
Hi,
I have added .net in boot image but still getting error. screen shot https://1drv.ms/f/s!AvrwFkn-ASCWkip4JbH8gT9NmBC_
thx
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
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
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?
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
Finally it is working. I reset jpg file as original and it is start working no error…
I mean I changed my background.jpg file size and resolution as default (original file comes with), and so far no error……
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?
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
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.
Hi,
We will add it to our backlog for next version.
Regards,
Jörgen
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.
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?
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
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!!
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)
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
Hi, Very nice tool. Thank you very much.
It will be great to add the Distribution Point name variable also into the background.
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
Hello,
Great Tool. Thanks a lot.
Question… will it be possible in the next release to move the text down/up…?
thanks again
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?
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..
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?
Can we add more TS variables to the background other than computer name?
Hi,
Currently not, what would you like to add?
Regards,
Jörgen
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.
figured it out. I had an “&” in my config file, and it did not like that.
Hi,
Everything works (Cmtrace, CMD, etc) except for SMSTS.log. Any reason why this doesn’t work?
Thanks!
Alex
Hi,
Could it be that it is not created yet? when are you trying to open it?
Regards,
Jörgen
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.
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!
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.
Hi, When installing packages it does not Show your OSD background and shows a windows generic background. how can I get around that?
Hi,
Sounds strange, did you run a new OSDbackground step in the TS after a restart?
/Jörgen
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.
It seems that whatever the third step is, it stops the steps on the right hand side from showing. Is this a common error?
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
I have the same issue with adk 1809 and sccm 1806.
Osdbackground is in latest version.
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?
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
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?
New Feature Request: Can you add Domain Name or Workgroup to the left side also?
Seems the scripts stopped working with WinPE 1903, or is it just me?
Make sure you download the latest version and update the files. It works just fine with 1903
Regards,
Jörgen
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?
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.
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(“?”,””)
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.
Is it possible to not show the Management point by editing the config file? Thanks.
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?
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.
Thanks for pointing it out, OSDBackground has been replaced with TSBackground which have the same functionality and more.
Regards,
Jörgen