TSBackground for ConfigMgr
Do not miss this eye candy, TSBackground for ConfigMgr, that also adds security to your deployments.

We are all familiar with the ConfigMgr standard TSProgresUI, which makes a great job but perhaps is not so aesthetically appealing.

TSBackground is the successor of “OSDBackground” that we published a couple of years ago. This new version addresses known issues as well as adds a lot of new functionality requested, including replacing the built-in ProgressUI. The first picture shows a design that we recently made for a customer. Apart from the more complicated controls, such as the progress bars, everything is customizable. TSBackground can show fixed text in combination with the content of any TS variable in any color, font and location you desire.
Debug
TSBackground has password protected debug features built in. Just right click the upper left corner of the screen, type your password and gain access to the debug tools.


This makes it possible to disable the F8 command support that we technicians love but frequently forget to turn off once a new boot image is put in production. This is a huge advantage as anyone with the right skills will be able to dump sensitive information from your environment so long as it is enabled.
Configuration
TSBackground is fully configurable with respect to graphic layout, you can make it appear in almost any way or fashion that you like. This comes with the price of not being done just as easily as it was with the old “OSDBackground”, but if you willing to spend a little time and read the manual carefully you will surely get what you want.
When the application is launched the layout is loaded from .xaml files located in a dedicated sub folder. There are some “rules” that needs to be honored, naming is one, including the standard xmlns namespace in every top grid is another. Study the included standard files (General.xaml and Status.xaml) and consult the manual for more in-depth information on how to modify or create these files. A “Design Viewer” is available in the “Tools and Script” folder, this will help you assure that your file(s) are valid before tested in a Task sequence.
Setup
To avoid having to download the binaries TSBackground is best included in the boot image and later, in the Task sequence, transferred to the OS disk just before “Setup Windows and ConfigMgr”.
Boot image
The manual explains how to add the files to the Boot image, this is done on the “Customization” tab.

Launch in PE
The recommended method to launch the application is by injecting a custom winpeshl.ini file into the boot wim – this sounds difficult but is only a matter of placing a file (included in the download) in a folder, update the image and then remove the file. The manual explains this. This method is preferred and recommended as the injected file, including the launch command, automatically runs on every boot to Windows PE. This means we do not have to bother about putting in extra steps to start the application after for example a bios update or configuration.
Start in full OS (Windows)
To re-start TSBackground at the earliest possible moment when the computer enters full OS we recommend adding a “RunSynchronousCommand” to the “unattend.xml” file.
This is very well described here, so we will not spend more time on it:
In short you should add the following command, adjust “Order” according to your environment, to your unattend.xml file:

A fully functional (Windows 10 x64, en-US CST) file is included in the download as an example.
Task sequence
To test this and visualize where (aprox.) to put the various steps related to TSBackbackround we used the wizard to create a standard TS. We also added basic error handling which has been covered earlier on this blog, https://ccmexec.com/2016/12/error-handling-in-ts-without-mdt-using-osdbackground/

The green dots mark TSBackground related steps.
Summary
As you understand this tools / utility does not solve any technical issues, but it does add an extra security layer with regards the F8 Command support and it sure looks nice. We have already seen some very nice custom layouts and backgrounds circulating on Twitter, one that really stuck out was made by the admins over at Minnesota IT Service (Chris Molstad).

TSBackground can be downloaded from TechNet Gallery and comes with and extensive manual as well as several tools to help you design your own favorite “TSBackground”.
https://gallery.technet.microsoft.com/Configuration-Manager-Task-6422b6f8?redir=0
Make sure to follow us on Twitter, if not already, for news on this and other tools:
@ccmexec and @Josch62
its given me .net 4.6.2 missing error after boot in winpe while trying to execute TSBackground
Please consult the manual, specifically “2. DESCRIPTION AND REQUIREMENTS”; it seems like you’re missing the “Optional components”.
Is there a way we can run this with USMT and starting from Software Center. I’ve tried an always have it throw an error.
Hi Johan,
I’ve been reading up on this and am excited to try to have this awesome layout working in a dev environment. I believe I have everything set correctly, but I think one issue I’m coming across is related to the “12. START IN PE (WINPESHL.INI) – RECOMMENDED” step.
I’ve added WScript.Quit(0) to the prestart commands, and have added the source directory with the boot files. I’ve also added WINPESHL.ini i386 and x64 to my configinstall\osd\bin\i386 and \x64 folders, and updated the boot image and distribution points afterwards.
After that, I updated our USB boot image, and attempted to boot into SCCM to start an OSD, but it gets to the standard SCCM GUI, and reboots itself within a few seconds.
Any ideas what would cause that or what logs I might be able to pull in this situation?
Hello,
Thanks for the article!
So far I was able to configure all perfectly apart from the COMPUTERNAME isn’t showed.
What it could be?
The sample General.xaml binds to “OSDComputerName”, if you don’t set that TS variable during you deployment there will be nothing to show, try changing it to “_SMSTSMachineName”.
Hello.
Can i use it in mdt task sequence? Where should i put thoose steps?
Is there any chance you have any plans for making this work on people who don’t use SCCM and simply use Windows Deployment Server and Microsoft Deployment Toolkit? This looks absolutely incredible!
Hi,
Currently no 🙁
Maybe
i am trying to implement this to test it out and i am getting an error with the TSBackground Init. it is failing at the first step. does anyone have any sugguetions. i am scratching my head.
Hi Jörgen,
we want to use TSBackground for our TS, but we have one show stopper. In the “prepare Computer System” step we disable the UEFI Network Stack of our Dell Latitude devices with command line “cmd /c cctk –uefinwstack=disable –ValSetupPwd=********”. When the command run TSBackground freeze instant and the osd stands still, connection to TSBackground Remote Control lost too. Every other command cctk command is running well, only uefinwstack isn’t working, but we need it to avoid a boot loop.
Kind regards
Sorry, posted my question in the wrong blog article before
There has been some issues when TSB freezes during heavy load or disk manipulation(s); we haven’t tested your exact scenario but think there’s good hope that it’s solved in the latest version, available here: https://onevinn.schrewelius.it/
Hi Johan, thank you for fast reply. I tried the new version but the freeze is still there. If I run the task sequence without TSBAckground or only disable the step with TSBackground, it worked like a charm. Thank you for your help.
“disable the step with TSBackground”, tells me your not using the recommended method (winpeshl.ini) to launch TSB. Correct me if I’m wrong?
If that’s the case, the application is probably running from the HDD, not from the RAM drive (X:) and can be expected to crash/freeze etc. when you run fiddle with the drive.
Hi Johan, sorry for the misunderstanding. I missed one word in my sentence. To load the TSBackground i only use the recommended method (winpeshl.ini).
Running Task Seqeuence without TSBackground – everything is working like a charm
Running Task Sequence with TSBackground – System Freeze after this command “cmd /c cctk –uefinwstack=disable –ValSetupPwd=********”
Running Task Sequence with TSBackground and disable only the affected CCTK command -everything is working like a charm
I tried the Dell cctk in Version 4.1 and 4.3 without any luck.
The cctk command disabled the uefi network stack successfully but freeze instant.
I tried another way and used the Dell command powershell provider.
Set-Item -Path DellSmbios:\SystemConfiguration\UefiNwStack “Disabled” -Password %DellBiosPW%
Same problem like with cctk tool before. 🙁 Freeze!
TSBackground is not useable for us very pitty
Sorry for spaming you comment area 🙂 An Edit function would be nice 🙂
I get it to work! My test device is faulty and freeze when you change the state of the UEFI NW Stack.
I just wanted to share that! Thanks for TSBackground
Hi,
We are currently implementing version 3 of TSBackground but after first reboot TS Background is never launched. Step Copy TSBToHdd is running before Setup and ConfigMgr client.
Before first reboot I can see that the TSBackground folders exists in C:\Windows\Temp
TSBackground folder is gone from C:\Windows\Temp after first reboot.
Any idea why not TSBackground is not launching after first reboot or why the files are removed from C:\Windows\Temp after first reboot?
We have used TSBackground 2 without problems.
Thanks for a great tool! 🙂
That would be expected if the >>old<< RunSynchronous command is still present in the unattend.xml file... Or the package containing the file has not been redistributed.
Thanks for the qucik replay Johan. We have never used RunSynchronous command to start TSBaackground after first reboot we went with the commandline to start it with.
I have redistributed the boot image again with new downloaded files to be certain it contains all the
updated files. Where should the step “copy TSBToHDD” copy the files to?
Thanks in advance 🙂
Ok, remember that MK III differs a bit from the older version and you should read the manual carefully – it’s crystal clear on where to put the the “CopyTSBToHDD” step. And please, be sure to follow recommendations, no other implementations have been tested, so your pretty much on your own if not…
I have read your doc up and down several times and I have put “copy tsbstep” where it should be according to the docs in the task sequence. I have removed everything from the TS that was referring to the old version of TSBackground.
This was the last resort to ask for some trobuleshooting guidance since “copy TSBToHDD” complete successfully but I cannot find any files on the harddrive after first reboot, and it hard to dig deeper when you dont know what “Copy TSTToHdd” is doing after it has completed since the docs have zero information about that command.
Thanks for you help.
Thank you Johan, we are a fan of the TSBackground since the first version. Great work.
With the 1.7 version we have the same issue like Nicklas told. I think the location C:\Windows\Temp isn´t optimal.
We have a rate of 50% that the TSBackground runs until the end of the OS tasksequence.
We set the copy TSBToHDD step between Apply Image and Setup Windows/Config Manger Agent. For troubleshooting we setup on many positions of the OSD tasksequence a PS script step to check if the TSBackground files still exist in C:\Windows\Temp\ or were lost. So we could see that the files are sometimes cleared away. Likewise after the Step Setup Windows/Config Manger Agent.
Wouldn’t it be a solution to be able to determine the target path yourself and configure it in the TSBackground.exe.config file ?
(ConfigMgr2002/ADK2004/Windows10 1909)
Thanks in advance.
would be nice to have a pause button ^^
also would like to see some a ts example for a upgrade scenario 😀
@Nicklas,
We had what seems to be the same problem, I wonder if you are doing the same, we were using an “Operating System Upgrade Package” as part of the TS, this seems to move everything that is in the windows folder to windows.old during the windows setup stage meaning TSBackground isn’t in the expected location after a reboot and therefore doesn’t start up again.
We’ve changed to using an “Operating System Image” which I guess is the preferred method anyway for installing the OS and it’s working as described in the manual.
This is my first time trying to use TSBackground so I don’t have any previous version only the latest download. I’ve placed the copytsbtohdd step in the task sequence like the manual says but TSBackground never loads after the Setup Windows + CFGMgr step (it works fine for the WinPE part of the build). This page mentions the unattend.xml command but that’s not in the manual do I need to use that?
Nicklas
Did you ever figure out the proper place to put the Copy TSTToHdd step. We are having the same issue where no matter what we have tried the TSbackground doesn’t load on reboot from winpe to full os. Does anybody know if the unattend.xml file is still required in the newest version, we never used it in the older build.
Nicklas
Did you ever get your task sequence working? We recently did the same as you and updated from the older build of tsbackground where we manually copied tsbackground.exe and called the .exe after a reboot into full OS. We have been through the task sequence and documentation and can’t figure out where the files go after the setup config mgr client step.
Make sure to use the latest version from here: https://onevinn.schrewelius.it/
If you have used an older version before you might have some leftover references in your Unattend-file, make sure these are removed. To get a hint of what might be going wrong; switch to Debug mode while still in PE and check out the log at x:\windows\temp\smstslogs\tsbackground.log
Hey Johan,
I’m trying to get the UserGroupDN and LogonDomain working.
Are there any networking/domain controller requirements to set this up? – I have the correct group and domain, but when I enter known correct login details the login prompt just disappears.
I should note, using TSBackground Remote Control works as expected so I know I have the correct group.
Hi
I’m starting to use TSBackground and I have a task where I put a script to make the device name (D + BiosNumber) and I have put it in a variable.
The end of the script looks like this:
$ newname = $ ff + ‘-‘ + $ csn
try {
$ tsenv = New-Object -ComObject Microsoft.SMS.TSEnvironment
$ tsenv.Value (“_ SMSTSMachineName”) = $ newname
Write-Output 0
}
catch {
Write-Output “you forgot to flush the toilet”
}
But I am not able to put the name on the background of TSBackground and is also entering the domain with that generic name of Widows that appears to me for example: MININT-8NCKVFF
Do you have any suggestions? please
Heyas, I worked out the cause of the login not working, the domain field is case sensitive. Nice easy fix ;o)
Hey Rodrigo,
_SMSTSMachineName is a read only variable, when managing computer names in a TS using variables, it’s best practice to use OSDComputerName (input)
Applies to the Apply Windows Settings step.
Specifies the name of the destination computer.
All the best
MP
Hi mark
I made the changes to the script as well and revised the .xaml files again.
And yes, I managed to make it work.
Now I will work harder to personalize the TS.
Thank you for the tip.
Hi Johan
I really like your tool. Its great.
Can you tell me if there is a way to change the location of the log copy?
Actually your tool store the logs to %systemdrive%\smstslogs.
We have run tests without TSBackground with the same result, indicating that this is in fact a bug in ConfigMgr 2010. You can add a step to your TS to delete it, or wait for MS to fix it…
First off, thanks for a great free tool which makes supporting OS Deployments a lot easier, it’s saved us a LOT of time diagnosing imaging issues in the last couple of years. I’ve tried finding a place to log issues and have come up blank as the technet page is now no longer working, so if there’s a better place, please advise.
We’ve just upgraded to the latest v1.7 version and noticed some issues when we press F8:
1. with only the encrypted password in the config file, the enter key doesn’t work (tried multiple machines) so we can’t enter the password.
2. We’ve also tried using an AD group but no matter how many accounts we try that are in the group it just closes the account info dialog box when pressing enter (so we know enter works on this but not number issue 1 above) or click the button.
Thanks in advance for any support you can offer.
Michael
Can you please make sure you’re on the latest version from here: https://onevinn.schrewelius.it/ Also note that you will have to create a new encrypted debug password using the latest encrypter, the algorithm was changed and is now FIPS compatible, which ironically meant lowering the encryption level. If you use AD-group, I’m afraid the Domain name is case sensitive, something that will be handled in the next revision.
Thanks Johan, updating the password using the encryption tool fixed this.
For the AD domain login, both AD and the config file have the domain in uppercase with the DN copied directly from the group properties, so maybe something else isn’t right. I’ll wait for the next version to test this again.
I get an error during the specialize phase after updating to 1.0.20324.1 , it looks like the exe isn’t getting copied into the Temp directory. The documentation says to ensure there’s no copy function used anywhere but it’s still in the example TS provided in the package. Putting the CopyTSBToHdd step in restores functionality.
What process is currently correct for this?
Documentation is hard! You should use the TS Step (CopyTSBToHDD), remove the command (old method) from the Unattend file.
the download link https://gallery.technet.microsoft.com/Configuration-Manager-Task-6422b6f8?redir=0 is not working anymore. can you update the download link?
You’ll find it here: https://onevinn.schrewelius.it/ Will update the post when time allows.