I got disappointed after searching high and low on Google for how to use Group Policy in order to set a default printer. Almost every article I read assumed the reader had a print server available, or would deploy a local printer connection right from the Group Policy Management Console. Finally, I found the solution!
In the environment that I support, we have “Printer Packages” by the manufacturer. These packages are essentially printer queues with default settings already entered for the Printer Preferences – you know, the items you CAN NOT change easily from a remote location, to many systems?
Anyways, the printer packages contain a folder of all the files needed, and a simple .EXE file that runs, and installs the printer queue, complete with port settings, name, defaulting to colour or black & white (depending on printer), double sided, etc. These can be deployed with PDQ, so I’m happy!
Since I have many printers in my building, when moving to Active Directory, once request came in to support changing the default printers.
Now, you could do this with scripting, but I want to avoid scripts now, the best I can. I wanted to use Group Policy and its magic to do my bidding across my organization!
But every article spoke of creating a printer, or connecting to a shared printer. This would not work in my environment, and my search was yielding less-tempting results.
I finally figured out that I could use the Registry preferences to set what I needed, on a user basis.
After creating the GPO, I went to edit it, and navigated to User Configuration\Preferences\Windows Settings\Registry. Once there, I created a New Registry Item, and entered the following information:
- Hive: HKCU
- Key Path: SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows
- Value Name: Device
- Value Type: REG_SZ
- Value Data: PrinterQueueName,winspool,Ne01:
As you’ll notice from the example, you can use spaces in the names; in fact, you are required to! Do not use quotation marks to capture the entire string of characters. The value shown here is automatically put in when I created the new server.
What if the printer doesn’t exist?
As you’d expect, it won’t do anything. Sure, it can try setting the value, but the system seems to just choose another printer as the default anyways.