“Customizing screensavers?” I hear you cry, “That’s a bit retro isn’t it?”
Nowadays screensavers have more or less disappeared. It makes much more sense to just turn off the screen after 10 minutes of inactivity. However, there are some instances where a screensaver can be useful, for example, an always-on kiosk or even digital signage.
One of the more useful standard screensavers in the Windows operating system is called “3D Text”. Useful because by default it will display the time but can be customized to display some text instead
As you can see from the screenshots above, you are given a load of settings you can tweak to get the message to display exactly how you want. Unfortunately, they can only be set on the client PC. This is no good if you want to deploy it to 100+ computers in your domain.
Group Policy lets you specify a few things under User Configuration > Policies > Administrative Templates Control Panel > Personalization
- Enable screen saver
- Lets a user choose a screensaver
- Force specific screen saver
- This is where you can point it to ssText3d.scr to force the 3D Text screensaver to run
- Screen saver timeout
- How many seconds of inactivity before the screensaver starts e.g. 600 (10 minutes)
If you want to prevent the screen turning off at all you’ll also need to deploy a custom Power Plan and set “Turn off display after:” to “Never”
That is where Microsoft stops helping you, as there is no ssText3d.admx file that will let you configure the actual text displayed. Luckily for us, we can deploy trusty old registry settings via group policy preferences (GPP) to get the job done.
The easiest way to do this is to customize the screensaver on a client PC and then import those settings via the GPP wizard. I thought it was useful to create a Collection Item called Screensavers\ssText3D to make it more visible to other people what is being configured. As you can see in the screenshot below, I’ve configured a whopping 19 registry values to get it working how I want. The import wizard also brought with it a lot of unnecessary values so I took them out.
I won’t bother explaining what each value does as they are fairly obvious. As I said earlier, you don’t need to figure things out like if RotationStyle 0 or 2 is applicable, just configure it on a client and import the settings.
I got this all working really well, and now it’s in group policy I can easily change the message, the colour or duplicate the whole policy for different users or devices.
One final gotcha I should warn you about – keep it short and sweet! I spent ages wondering why the policy wasn’t working at first. I could see it was applying to the local computers but my message “Tap the screen to wake me up” wasn’t being displayed. It turns out that there is a character limit on the DisplayString value. You can only have up to 20 characters. It started working immediately as soon as I changed the value to “Tap to wake up”.