You can add shared printers under User Preferences and use loopback, but I found GPP to be remarkably flakey and unreliable. 2% of the time it would decide that it couldn't see the printer and wouldn't add it, including at GP refresh - so the printer would be there for a user, and an hour and a half later it would spontaneously disappear. YMMV, as I think that was driver related for me, but I've found scripting much faster and more reliable.
(Using GPO & pushprinterconnections.exe didn't remove printers as people moved rooms, so they were collecting a long list of every printer in school. That got abandoned quickly.)
As cobbled together from various posts on here (I went through too many to remember the correct attribution, sorry, but thank you whoever you are), my VBS scripts are:
* For a default printer, running as a logon script:
Code:
Dim server
Dim printer
server = "\\yourServer\"
printer = "The Exact Shared Name of Your Printer"
Set wshNetwork = CreateObject("WScript.Network")
on Error Resume Next
'Deletes all network printers
Set clPrinters = wshNetwork.EnumPrinterConnections
On Error Resume Next
For i = 0 to clPrinters.Count - 1 Step 2
wshNetwork.RemovePrinterConnection clPrinters.Item(i+1), true
Next
'Add Network printer
wshNetwork.AddWindowsPrinterConnection server & printer
'Set Default Printer
wshNetwork.SetDefaultPrinter server & printer * For additional printers:
Code:
Dim server
Dim printer
server = "\\yourServer\"
printer = "The Exact Shared Name of Your Printer"
Set wshNetwork = CreateObject("WScript.Network")
on Error Resume Next
'Add Network printer
wshNetwork.AddWindowsPrinterConnection server & printer * And as a logoff script, for the belt-and-braces approach to stripping out existing printers:
Code:
Set wshNetwork = CreateObject("WScript.Network")
on Error Resume Next
'Deletes all network printers
Set clPrinters = wshNetwork.EnumPrinterConnections
On Error Resume Next
For i = 0 to clPrinters.Count - 1 Step 2
wshNetwork.RemovePrinterConnection clPrinters.Item(i+1), true
Next I have a GPO for each script, so the printer outside my office has two GPOs - one for when it's default and one for when it's additional. You'll have a longer list of policies but you can easily read which printers are where from AD. You need to make sure the default printer GPO is run first (i.e. lower down the list on the Linked Group Policy Objects tab) otherwise the additional printer is added then immediately stripped out.
You could write a custom script for each location that added the printers in one script, just another way of doing it. I prefer being able to see and tweak printer deployment without having to delve back into the scripts.
The only problem I have is the lack of logging you get with scripting; if anyone can help me there I'd be delighted.