UGTS Document #22 - Last Modified: 8/29/2015 3:23 PM
How to deploy printers with Group Policy

Printer deployment can be tedious unless you use VBScript, Group Policy, or some other automated solution. Users often don't know how to find printers in the directory or select the default printer.

Without an automated solution, you would have to manually add the desired printers to every machine and user profile and set the default printer manually. This is not feasible for three reasons:
  • You usually have a large number of machines and user profiles
  • You would have to be able to login as the user to setup their printers - you might not know their password, or the user might not be available
  • If you change the deployed printers, you would have to repeat the manual update procedure
The simplest way to deploy printers with Windows Server 2003 R2 and onward in via Print Management and Group Policy. Note that the procedure below only adds the printers, it does not select the default printer. You will have to educate your users how to select a printer, or how to set the default printer.

First, create a Group Policy Object (GPO) to define the Point and Print settings for your domain. These can be found under User Configuration, Administrative Templates, Control Panel, Printers. If you don't need high security, simply Disable the 'Point and Print Restrictions' setting. If you have Windows 7 machines, you will also need to define this same setting under Computer Configuration. The problem you will find though is that Windows 2003 R2 has no ADM templates defined to let you do this. UGTS has therefore created one for you to use: Win7.adm.  Then deploy this GPO to all Authenticated Users.

Next, find the file pushprinterconnections.exe on a 32-bit Windows 2003 Server and copy it to your domain's scripts folder. This exe can be found in WINDOWS\ServicePackFiles\i386. The domain's scripts folder is usually \domain\sysvol\domain\scripts. Now create another GPO to have this exe run at login time for all users. This can be done with the setting User Configuration, Windows Settings, Scripts, Logon. Browse to the exe to select it using the full path - no command line options are needed. This pushprinterconnections.exe command is needed because Windows XP machines and earlier do not otherwise support automatic printer deployment. You can safely deploy it for all users though, because if it is run on Vista or higher, or on a 64-bit version of Windows XP or higher, it will not do any harm.

Next, if you have not already done so, share the printer in the directory from a server, and verify that clients can print using it. Provide both 32 and 64-bit drivers to make sure that all clients can use it.

Next (and this is the odd part of the procedure), create an empty GPO and call it something like 'Deployed Printers'. Do not define any settings for this GPO, but give it a scope of all the users that you want to get the printers you'll be deploying. Now startup the Print Management MMC in 2003 Server R2. Go to Print Servers, select the server and printer you want to deploy, right-click and do Deploy with Group Policy. Browse to select the empty GPO you created in the last step. Then check one or both of the checkboxes below (per user or per machine), and press the Add button, then Apply or OK. Verify that the printer is listed in the Deployed Printers section at the bottom.

Finally, run gpupdate /force on a client machine, and gpresult to verify that it is getting the empty GPO. Log out and log in, and verify that you now get the deployed printer.