stopping users / software from changing default printer

I have a program that keeps chaning the default printer.  I'm trying to restrict users and programs from changing the default printer, is there a way I can do this? The users are "Clients" on  Win 2k Citrix (terminal server).
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 people going in and changing it, or is it changed automatically when they log in?  If the former is the case, you can use a registry change to keep them from getting into the printer control panel settings:

You would just need to set up a login script or batch file of some kind that gets launched when they log in (you could place the batch file in the Startup folder for "All Users", this way it only affects this server and cannot be deleted by a user).

There doesn't appear to be any kind of entry in a group policy or a registry change to just prevent changing the default printer.  I have searched and searched and found nothing.  That doesn't mean it can't be done, but the chances are pretty low that it could.

Please post back if you need help doing what I suggested above.

mikeieeAuthor Commented:
It appears to be a program that is changing it, the program has a virtual printer attached to it, and when you hit preview to preview a document, it's changing the default printer to the virtual printer, but then not changing it back.  Also a bunch of programs that I run on CITRIX don't actually give a print dialog box so they don't give the option of changing the printer at all - this is where I run into the problem.

What about just running a script that changes the default printer every time someone logs in?  For a citrix server that would be every application instance would "log in" causing the default to change.

Now that is doable!  

The registry entry that changes is this one:

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows]
"Device"="Adobe PDF,winspool,Ne00:"

The part that changes is "Adobe PDF" and "Ne00".  If you change your default printer with regedit.exe open in this key, you will see this value change.

So what you could do is set it to the correct printer and then export the file as a .reg file somewhere accessible by all users.  Then create a batch file that runs this command:

reg import <yourfile.reg>

You could also do this without creating the file (using another reg operation), but that's up to you.


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
mikeieeAuthor Commented:
it does not answer my question really, you'd think you could stop a user from changing the printer based on permissions...
Well, you actually can restrict access to parts of the registry.  Just open regedit, find the keys mentioned above, and then go to Edit -> Permissions.  You can then restrict the permissions of the user there.  The only problem is, any registry setting in HKEY_CURRENT_USER has to be set for each and every user.  

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 Networking

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.