One of my customers asked me to change the default wallpaper for the users, the same wallpaper should be used for desktop, start screen and lock screen. Also a specific accent color scheme should be selected to be used on the start screen.
My first thought was to simply use the new Windows 8.1 Group Policy settings to force a specific lock screen and set the colors, but the customer had one more request:
“oh, by the way.. users must be able to change these to their own preference afterwards.”
So with that request the GPOs were out of play.
(If you are looking for the group policy settings for lock screen and color scheme, they can be found here Computer configuration\Policies\Administrative templates\Control Panel\Personalization.)
Replacing the wallpaper
After poking around for a while, looking at the old Windows 7 wallpaper registry values, sysprep OOBE options etc. I failed to find a suitable solution that would allow me to specify a custom wallpaper, so replacing the default Windows 8.1 wallpaper was the way to go.
First we need to create a wallpaper that has the following resolution, as that is the resolution of the image that we are replacing:
1920x1200px 72dpi 24bit color depth .jpg format.
The wallpaper is then added to a SCCM package along with a script to replace it.
Next is to create a script that will replace the existing wallpaper files in the following locations with our new wallpaper located in the package:
By replacing the files just after applying the image, but before Windows minisetup, we can replace the files without having to deal with file security and copies in the winSxS folder that we would else have to battle with if executing the script in the running operating system.
Using desktop wallpaper as default for start screen
Now that we have replaced the wallpaper files we need to make some registry changes to force Windows to use the desktop wallpaper on the start screen as well.
Setting the following registry value to a decimal value of 219 does exactly that:
- MotionAccentId_v1.00 = 219 (REG_DWORD)
Specifying default color scheme
Windows comes with a predefined set of colors schemes for the start screen:
By setting the following registry value to the decimal value of the color scheme we can preselect the scheme we want:
- ColorSet_Version3 = <scheme value> (REG_DWORD)
If you prefer to create your own color scheme you can set the following registry values to specify the start and accent color.
- AccentColor = <color value> (REG_DWORD)
- StartColor = <color value> (REG_DWORD)
To find the values you must set the colors as needed on a Windows 8.1 computer, an read the decimal value from the registry.
If you prefer to use an overlay instead of the desktop wallpaper, you can set the following registry value to specify one of the overlays that come with Windows.
- AccentId_v8.00 = <overlay value> (REG_DWORD)
The overlay can be any of these values:
As I like to keep things in my task sequences, I created a vbscript that will replace wallpaper files and set the registry values in the default user profile at deployment time.
The script relies on the ZTIUtility.vbs file from the MDT toolkit, that must be placed in the same package as the script and the wallpaper file, which must be named Wallpaper.jpg.
In the task sequence add a Run Command Line step after the “Apply Operating System” step but before the “Setup Windows and Configuration manager” step.
Download the script here:
This is probably just one solution to the problem, I could have used Group Policy Preferences for setting the registry keys, but I like to keep things in my Task Sequences when possible, as this does not require involvement of the Active Directory guys etc.
One thing to remember, is that Windows 8.1 has to be activated before the desktop wallpaper will be used as background for the start screen, this is usually not a problem in the enterprise where KMS activation is in place.