Setting the Desktop Wallpaper Background with Group Policy is a fairly common request from administration or management. Unfortunately, the actual setup is not as straightforward as you would think. As with any Microsoft product, there are a myriad of ways to configure this and every way has a unique set of features (and drawbacks). In this guide, we will cover two ways of setting the desktop wallpaper background with Group Policy plus a few tricks that you’ll need to know first.
Before configuring even a single option – ask yourself these two questions first:
- Do you want your users to be able to change their backgrounds from one you set?
- Do you want a group of users or a group of computers (such as a physical site) to have the same background?
As you can probably guess, the answer to the first question depends on if you want to use a policy or preference to configure the desktop wallpaper. A preference allows you to set a default background for your users and can be configured to let them change it to something that suits their taste. A Policy locks down any wallpaper background settings! It is an “IT-On-High” kind of mandate.
Your answer to question 2 will determine your need for Loopback Policy Processing. It will also depend on the type of users that you manage. I work in education – most education organizations (at least K-12) tend to restrict this kind change.
Unrelated to this article, there tends to be an (overblown) fear that students will set their background to something inappropriate. In 2 years, I have had 3 cases of this. Thankfully, I have Administrators with some humor! Those three students now have this custom (and locked) background set for them:
Setting the Desktop Wallpaper Background with Group Policy Preferences
Deploying a custom desktop wallpaper with Group policy is really easy with Group Policy Preferences. Microsoft stores the wallpaper location in the registry and in clear text. The registry setting can be found at HKEY_CURRENT_USER\Control Panel\Desktop\ and is named WallPaper.
You can also configure whether the wallpaper should be stretched or centered with Group Policy Preferences. This is determined by the WallpaperStyle setting in the same Desktop\ key. A setting of zero (o) equates to “Center the bitmap”. A setting of 2 equates to “Stretch the bitmap”. Zero is the default. If you are curious, you can find an explanation of the other Desktop settings here.
To deploy your wallpaper, navigate to User Configuration/Preferences/Windows Settings/Registry and create a new preference item. You will probably make these changes in your User’s GPO or a specific User WallPaper GPO. Use the screenshot below to customize the WallPaper registry setting.
You will need to ensure that your CRUD method is set to Update or Replace. If not, your settings will not apply. To let your users change this setting after it has applied once, be sure to check the box – “Apply once and do not reapply.” It can be found in the common tab for each preference.
Setting the Desktop Wallpaper Background with Group Policy Administrative Templates
If you wish to enforce a particular background and prevent users from changing it, you will need to use Administrative Templates. The setting Desktop WallPaper can be found at User Configuration\Administrative Templates\Desktop\Desktop\. Strangely, there is a Desktop Folder within a Desktop folder…
The setting will need to be enabled. You will also need to specify a wallpaper path that is accessible as your user. Finally, select the wallpaper style. Here is an example screenshot:
If interested, you can use the Group Policy Cloud App to find out some background info on this setting.
And that is all there is to it! In this post, you’ve learned the two ways to configure a user’s desktop background. You’ve also learned which way to choose and the benefits of each. Be sure to read the other article in this series for a cool extension of this technology! If you want to learn how to automatically change your desktop backgrounds or to sync those backgrounds to the Bing image of the day, see this guide.
I need your help. How can I change the wallpaper daily or weekly? but having GPO.
Greetings and thanks!
See this: https://deployhappiness.com/syncing-the-bing-image-to-the-logon-background-with-powershell/
I know this is super old, but I’ve been messing with it recently and wondered if you could help out a bit.
We’ve got 3 computers that are for Public use, and since it is generally students we use DeepFreeze to lock them down. With DeepFreeze, we simply restart the computer (using another article of yours, I scheduled that for Midnight, and it’s working well) and they go back to normal.
Our issue is that the Creative Team likes to change the wallpaper to holiday/festive themed wallpapers around holidays or big events, which means we have to unfreeze all 3, let them change the wallpaper, and refreeze them, which doesn’t always work like it should. I came up with an idea to test out that involves putting the background image for the computer in a specific folder all departments have access to, and then using a GPO to update the background on reboot. I’ve configured it, and it looks like it works…the only issue is it doesn’t seem to change with any regularity. I’ve swapped out the background image, and it’s showing the old one. I’ve tried doing gpupdate /force a handful of times, and then repeatedly restarting/shutting down before the scheduled reboot time to see if that might force it, and nothing seems to really change.
It’s just odd that it apparently worked well enough at least once to change the background…it just won’t change again.
To double check – are you seeing the new backgrounds on the frozen computers?
On another note, have you looked into using mandatory profiles for your students instead of deepfreeze? For us, it provides all of the benefits without the drawbacks as only profile changes are reverted.
I actually haven’t checked into those. I’ll definitely look it up and see, as DeepFreeze likes to give us headaches from time to time.
And as for the backgrounds, it started working on my test VM. It would show the first background I set, but when I swapped it for a new image to see if it would change on restart, it wouldn’t pull the new one. But, after getting side tracked on another job for a few days, I came back to see the VM would change every time on restart…so I guess it just didn’t like it at first.
Thanks as always for the helpful blog and ideas!
This is a nice way to do this – however I am having trouble with a third party application that can allow users to set a wallpaper and it will tweak the “Wallpaper” registry key and override the group policy setting. I can set GPO to delete the key, but that only takes place when you log in, after wards users can use this third party application and it creates the wallpaper registry key and they can put anything up there – thoughts?
Configure the desktop with this setting: User Configuration\Administrative Templates\Desktop\Desktop\
Excellent way to set wallpaper!
I think it’s a good idea to also set this GPO: “Prevent Changing Desktop Background” located at: User Configuration > Administrative Templates > Control Panel > Personalization
Extracted from: http://www.sysadmit.com/2016/05/gpo-establecer-fondo-escritorio.html
Thank you for the tip Tom!
Attempting to use registry preferences to set the wallpaper however it does not work the first time the user logs into a computer. The settings do apply if they log in a second time. Any suggestions?
You can probably set the Always Wait for Network at Startup and Logon to have the desktop set the first time. It will slow down logons a bit though.
thank you very much.
Wow … try to do this … worked for me this way
0) User Configuration/Policies/Administrative Templates/Desktop/Desktop Wallpaper ==> \\SRVDOMAIN\SHARE\WALLPAPER.JPG
1) User Configuration/Preferences/Windows Settings/Registry ==> Action ==> Exclude ==> HKEY_CURRENT_USER ==> Control Panel\Desktop ==> TranscodedImageCache
2) User Configuration/Preferences/Windows Settings/Registry ==> Action ==> Exclude ==> HKEY_CURRENT_USER ==> Control Panel\Desktop ==> TranscodedImageCount
3) User Configuration/Preferences/Windows Settings/Registry ==> Action ==> Update ==> HKEY_CURRENT_USER ==> Control Panel\Desktop ==> Wallpaper ==> REG_SZ ==> \\SRVDOMAIN\SHARE\WALLPAPER.JPG
Thanks for the suggestions Lucianoscs.
No issues creating this on user basis but what about a group of computers? The only method I’ve found so far is per user.
You can use loopback for this: http://deployhappiness.com/loopback-policy-how-a-computer-gets-a-transgender-operation/
I make this and work when the user logon for first time. I place the file in a server with unc path \\server\desktop\wallpaper.jpg. But I have one problem, when I change the image file for another image (same name but different image) the image not change in the Windows 8 Clients.
What’s the problem??
Add a delete preference before the create/update preference. Set this preference to run apply once. Whenever you update the image file, uncheck/recheck the apply once box.
How can I do that? Can you explain step by step?
I think this blog post does give a step by step guide. What exactly are you stuck on?
I need to create a desktop wallpaper for entire domain users but in default domain policy I did not find User Configuration\Administrative Templates\Desktop\Desktop\. Strangely, there is a Desktop Folder within a Desktop folder…
Its just missing I think
please help me out why that option is not coming over there..
What OS are you using the GPMC on?
Any thoughts about how to set up a Group Policy to dynamically change an users background in relation with users current screen resolution? So that the background or wallpaper doesn’t get stretch and distorted when the user is working on a screenresolution with different resolution and ratio.
In theory – you should be able to do this with Item Level Targeting (ILT). You would need to have a registry ILT that checks the current screen resolution. Let me know when you get this working!
Since I’m enforcing the desktop wallpaper through administrative templates instead of GPP, I made individual GPOs for each of the resolutions in my environment then used WMI Filtering for the resolution because ILT obviously isn’t available. Not the most efficient use of group policy but it gets the job done.
That is a good solution Kevin. What is your WMI filter?
I have one for each resolution which look like this: SELECT ScreenHeight,ScreenWidth FROM Win32_DesktopMonitor WHERE ScreenWidth=’1024′ AND ScreenHeight=’600′
Very cool Kevin!
Thank you very much for letting me know!
Thank you for the article, clear and straightforward 🙂
Not a problem at all! Thank you for letting me know!