I want to change desktop wallpaper with Group Policy.....


I want to change the desktop wallpaper with Group Policy.  I found the Administrative Template that lets me make the change - but here's the problem:

Each user has wallpaper that is unique to them.  It has their name in the upper right hand corner.  I tried using the full UNC like this:  "\\server\share\%username%.jpg".  The policy implemented, but no wallpaper, so I checked the desktop settings, and it had "%username%" as the name of the wallpaper.

If this part of Group Policy isn't going to let me use an environment variable, then I need to come up with another idea.  I would like to avoid the heavy-network-traffic solution of using a login script to copy the user's wallpaper to a dummy location.  Example - my wallpaper is "ddotson.jpg".  I thought of using a script to copy it to the workstation as "wallpaper.jpg".  But you can see that problem - heavy overhead. I don't know if it would work anyway.

Any ideas on how to make this work?

Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.


Are you using a 'Home' drive share? (something along the lines of \\srvname\%username%)

If so are you also storing their personal environment variables in there? You could setup a script to run on creation of the new user to create & rename %username%.jpg to wallpaper.jpg. The policy can then look to H:\desktop\wallpaper.jpg - where H: is the homeshare=%username%. No environment variables in the policy and no major network traffic copying to a dummy location. Script is only run once, at creation.

Another possible option would be to run the SET command to set a variable eg
         SET WALLPAPERPATH=\\server\share\%username%.jpg
or       SET WALLPAPER=%username%.jpg
and instead of using the UNC+variable just put in the variable (must confess haven't tried this option but may be conflict between variable including the '.jpg' extension.
ddotsonAuthor Commented:
I am not using the Home drive share.  I don't fully understand it.  The closest I have come is this:  I have a shared folder called "users".  Everyone's individual folder is inside, and each have the appropriate permissions set.  Their folders have the same name as their username. Hence, my folder is "ddotson".  There are also public access folders in the users folder.

I kindof like your idea of setting a variable equal to the path.  I am already using a login script - is this the place to do that, and how persistant is the variable?
I disagree with putting the file in their home folder as they would have access to it. I do agree with putting it in a share they have read only access to.

Let me throw another wrench in the works.  Pushing wallpaper out over a network not aonly slows logins considerably, but also needlessly uses up bandwidth.

If you want to have the username on the desktop you could change "My Computer" to "DDotson logged on to Workstationname."   I have read about this but never got around to implementing it.
Cloud Class® Course: Microsoft Windows 7 Basic

This introductory course to Windows 7 environment will teach you about working with the Windows operating system. You will learn about basic functions including start menu; the desktop; managing files, folders, and libraries.

Yes you could set the variable in the login script or in the registry HKCU|environment as something like
Value name of WALLPAPER and Value Data as \\servername\share\%username%.jpg
This will cause a permananent variable to be set that is updated at each login.

Back in the dim and distant past when I was first starting out, remember seeing a ex colleague set something up, when active desktop first came out, that was locally stored and updated, using some sort of script, to the time and message of the day! I assume this idea could be used. I'll try and dig out how he did it!

As for needlessly using bandwidth this is a possible problem
Hi ddotson,

Question 1: Did you enable the Active Desktop on your workstations? If AD is not enabled, .jpg wallpaper won't work. The environment variable should work, though.

But as was already pointed out: Don't get the wallpaper from a network share (besides: network traffic is the same, whether you copy it to a dummy location or you apply it as \\server\share\username.jpg -- the data has to go over the net in both cases).

But if all you're looking for is an easy way to put the user name (and perhaps even some machine info) on the desktop, have a close look at bginfo from SysInternals: http://www.sysinternals.com/ntw2k/freeware/bginfo.shtml.


Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
ddotsonAuthor Commented:
Well, I have tried setting an environment variable via the login script. For some reason, the variable was never created.  I manually created the variable, but the desktop wallpaper wants a full path and won't accept variable names.

I tried setting the wallpaper to a local jpg, and then use the login script to copy the individual wallpapers to the local wallpaper, ie: copy \\server\share\ddotson.jpg c:\winnt\wallpaper.jpg /y  

That didn't work.  The only thing that has worked so far is the bginfo program suggested by oBdA.T he problem is that it doesn't look as nice as my wallpaper. I'll leave the question open for any last ditch ideas.
ddotson...  your issue is copying over a large jpg file through a logon script.  Your pushing this out everytime a user signs on in addition to everything else that must occur at that time.  Test your script with the wallpaper file already resident on the workstation.  I understand this wil not get your desired end result, but it will establish whether pushing the jpg file and running the script are having some load issues.

I recently asssisted a large school district, we developed three different wallpapers (Technicians/Adults/Students).  This assited in quickly identifying from a distance if a student was logged on with more priveleges then he/she should have.  The wallpapers were placed in the system directory of the local workstation and pointed to in the group policies.  So they were not even specified in a script, just the group policy.

To identify the user and machine name was our next objective and we were going to attempt to show that by altering the My Computer variable with "%username% logged on to %workstationname%"  We ran out of time in the deployment.
ddotsonAuthor Commented:
Well,  I wasn't able to achieve my goal, but oBda's suggestions of the bginfo program is one that works.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Windows 2000

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.