We help IT Professionals succeed at work.

Best way to map printers via script/group policy (Win 2008 r2)


We have a windows domain (with 2008 domain controllers, and one 2003 domain controller), and several hundred clients.  The clients are all running Vista or 7, with the exception of perhaps a dozen XP computers.

There is also a RDP/terminal server (running 2008 R2) that about 60 users connect to.

We're getting rid of all our old printers, and signing a lease to get new, networked devices.  Would like an easy, straightforward way to map printers to the users, regardless whether they're logging onto their local machine or onto the RDP server.  Whichever they log on to, they would need the same printers mapped.  Each user is going to need one printer (for the most part - depending on what department or building they're in), and perhaps 2 or 3 more just as backups.

We have our printers named pretty consistently, such as:

I would love to be able to, for instance, create security groups, one for each printer, and then based on what group(s) the user is in, those are the printers that it maps to him.  Thus if a user ever switches locations or departments, we just put them in that new printer group, and they're good to go when they log in next.

My question is what is the best way to do this?  Also, how would I handle which printer is their 'default'?  I.E. if they're in three printer groups, and i want one to be the default, is there a particular way to do it?  If not, as long as it maps all three of them, and they can go in and manually pick which one they want as their default (but the one they pick should stay their defalut, so the next time they log in, it doesn't 'reset' it)

Just overall looking for the best way at the end of the day to manage several hundre users printing to ~75 networked printers

Please dont' just post links for me to read - i want to have some actual opinions :)
Watch Question

Technical Lead
Top Expert 2011
Here a vbs i worked on to map network printers and sets it to one to default and delete the old ones

Option Explicit
Dim netPrinter, UNCpath
UNCpath = "\\my-print-svr\my-printer"
Set netPrinter = CreateObject("WScript.Network" )
netPrinter.AddWindowsPrinterConnection UNCpath
' Here is where we set the default printer
netPrinter.SetDefaultPrinter UNCpath

UNCpath = "\\my-print-svr\my-printer2"
netPrinter.AddWindowsPrinterConnection UNCpath
'Adds second printer

Dim objNetwork, strUNCPrinter
strUNCPrinter = "\\my-print\my-printer1"
Set objNetwork = CreateObject("WScript.Network" )
objNetwork.RemovePrinterConnection strUNCPrinter
'Deletes printer

Dim objNetwork1, strUNCPrinter1
strUNCPrinter1 = "\\my-print\my-printer2"
Set objNetwork1 = CreateObject("WScript.Network" )
objNetwork1.RemovePrinterConnection strUNCPrinter1
'Deletes second printer

Since it appears you have Windows 2008, you can very easily deploy printers using group policy preferences. You'll want to install the printers on a print server and then share them, then you can deploy them with a GPO. http://www.msserveradmin.com/the-one-reason-you-should-use-group-policy-preferences/ has more information on how to do this.

First I would make a print server with all printers and drivers installed on it. Its best if you manually create the TCP/IP Ports and manually install the drivers for each. If necessary, add x86/x64 drivers under "additional drivers" in the printer properties on the print server. Check "list in directory" when you create the share if desired(you may not want to if you are going to manage everything)

To ease the installation of print drivers on the workstations, Be sure to make a Computer GPO for your workstations that allows standard users to install print drivers. This is found under Local Policies/Security Options/Devices: Prevent users from installing printer drivers - Set to Disabled

I would then create Organizational Units (OUs) for each department containing different Printer GPOs.
For Example: "Admin Printers" or "Accounting Printers". Then drop your users into the appropriate OUs

Configure the new GPOs on Server 2008 r2 under  "User Configuration > Preferences > Control Panel Settings >Printers" by right clicking and selecting "New > Shared printer" Use the "Create" or "Update" action and put in the path to your printer. eg. \\printserver1\dell 3000cn. Repeat as necessary.

If you use the update action, default printers will be overwritten after user logs off and back on and annoy him or her greatly!. Thus if you want users to change their default and it not revert next logon, I would use the create action. It will create the printer only and not reapply the settings (including default) unless the gpo was changed  "update".  Personally I like the users to set it so I don't use the default printer option(Much less complicated that way)

Note: if you have some printers that everyone needs access to, just add those to a GPO and put it at a higher level in Group Policy. They will filter down to all lower levels. You may want to get out a good old piece of paper and figure out how many GPOs you will need to cover all your users, but if you are like me you will just figure it out as you go :)

Be sure to Test with some temp users before you go into production!

Let me know if you have more questions.....dealing with printers is one of the biggest feats of IT. VDI is easy compared to this :)

chris_martin62Desktop Systems Analyst

Heres a link for using GPO

good thing is you can use Item level targeting to tagert you securtiy groups so you can have one policy and it only installs on computers in that group.


Thanks guys. I am going to try your suggestions this week and let you know.

Also, I did create a print server for all the printers :)


Real quick question - we really can't do it with moving users into different OUs, because the users are already in seperate OUs that we can't change.
Is there any way to do it based on the GROUP they're in, not the OU?
chris_martin62Desktop Systems Analyst

Yeah you can do that by push printers group policy preferences on the user side.  From that you then can do item level targeting using your groups.

Just make sure you have your scope correct and if you are linking this in the computer OU that u use loop back policy processing

Explore More ContentExplore courses, solutions, and other research materials related to this topic.