Link to home
Start Free TrialLog in
Avatar of ddotson
ddotson

asked on

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

Hello:

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?

Dan
Avatar of andy_i
andy_i

Dan,

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.
Avatar of ddotson

ASKER

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.
Yes you could set the variable in the login script or in the registry HKCU|environment as something like
HKEY_CURRENT_USER|ENVIRONMENT as a string type
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
ASKER CERTIFIED SOLUTION
Avatar of oBdA
oBdA

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of ddotson

ASKER

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.
Avatar of ddotson

ASKER

Well,  I wasn't able to achieve my goal, but oBda's suggestions of the bginfo program is one that works.