We help IT Professionals succeed at work.

Set Default Printer via Group Policy

mrichmon used Ask the Experts™
How do I set the default printer for all users that log onto my workstations?

I would prefer to do this via group policy, but any other means that would allow for a change BESIDES touching every user account or computer would be helpful.
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
How do I set the default network printer for all new users of a Windows XP workstation?

When a new user logs onto a Windows XP workstation for the first time, they do not have a default printer configured. If you want to alter this behavior, modify the Default User profile to contain the default network printer:

1. Replace the server (jsi001) and printer share (HP2250) with the values appropriate to your network in the following text. Copy / Paste it to a C:\TEMP\NewStuff.reg (or similar) file:



[HKEY_USERS\TempHive\Software\Microsoft\Windows NT\CurrentVersion\Devices]

[HKEY_USERS\TempHive\Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts]

[HKEY_USERS\TempHive\Software\Microsoft\Windows NT\CurrentVersion\Windows]

2. Use tip 3970 to run:

ModifyProfile.exe /PROFILE:"C:\Documents and Settings\Default User\NTUser.dat" /REG:C:\TEMP\NewStuff.reg /KEYNAME:TempHive

NOTE: You can use PsExec.exe or Workstation.bat to perform this process on remote computers.

NOTE: See Add local and remote printers from the command line.


Unfortunately this will not work for a couple reasons:

1) The settings for the default user - but my new users do not get the default user profile - they are using a required mandatory profile from Active Directory

2) It requires the format \\server\printer but there is no server name that I know of - just the IP....

And the printers are already added as local printers to the machines...
The server name can be replaced by the IP address, the server name is nothing but the computer's name that you see in the my network places list.

You can do the same thing with the registry tip above by exporting the values into a *.reg file.  Then you can create a shortcut in the startup folder to add the information to the registry:

regedt32 /s "C:\ChangeDefaultPrinter.reg"

To change the default printer setting, I think all you have to change is this registry key:
      HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device

You can get the entries for what to put for each printer from this registry key, you take the name of the key followed by a comma, followed by the contents of the key:
      HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices


There is no computer name in my network plcases.

Those registry keys have to be done per machine...

I need to be able to change this as needed - like a group policy setting



I have already explored the first 2 of links.

Link #1 - No information about default printers - have you looked at the document or even the Group Policy settings?  I have in depth.

Link #2 - this does not address simply setting a printer that is already added to the computer as the default.  It doesn't do what I need

Link #3 - not even on the right topic.

You could do a login script that runs regedt32 like I mentioned above.  And if you want, you can put the reg file on a network location.


Yes and I have explored the login script option, but it isn't really as flexible as I would like.  The login script has to be added
to every domain account and based on some other factors a logins script isn't ideal.

ALthough you are correct in that it is a posibility in most cases.  If I don't get any actual workable answers for my situation I will award
your login script idea the points.

I know this solution still includes a script but, you can put the script and reg file mentioned above in a network share. Then attach a group policy to the OU containing your users or computes and setup the script as a startup or logon script depending on you needs. So you don't need to touch each AD account. just administer the script from one place.

Ok octree - you are 4 years late on that answer :) - so not likely to help mrichmon much.  However, in the name of helping anyone else who happens along this discussion (which I assume was octree's intention)-  I would like to add that using loopback processing can let you tie the script to the computer and not the user - if you want the printer to change based on where the user logs in (often helpful).  Also when writing the login script, printer names can be a bit strange, I recommend logging on setting the printer as your default printer and then taking a look at the registry to see how it is described.

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\windows   default printer is labeled device

Editing Reg through login script:

I know is is a bit late, but it is still useful.  You can use GPO to run this script:

Set WshNetwork = CreateObject("WScript.Network")
WshNetwork.SetDefaultPrinter "\\printerserver-OR-ip\printer"

Back in 2004 when the question was posted I'm sure Group Policy Preferences were a mere amoeba in Microsofts thoughts. However adding printers and setting defaults can all be done via GPPs now.