Terminal server connect assorted shared printers

HI all

I have a 2003 terminal server which is used by about 25 staff

Many of the staff have printers connected to their workstation via USB or parallel. Their local printer is set up to connect via RDP printer redirection so they can print to their own printer from TS, works as expected.

The problems:
- I need them to be able to print to any room, not just the one they are in now.
- I need the printer to have a short, clear name like "Dr1Print" instead of "Canon bla bla bla on ThatPC (in session X)"
- I want all staff to have access to all printers automatically without having to add each one manually.

So i have set each workstation printer to be shared and in the directory with an appropriate name. Each user can now add whatever printer to their TS profile by adding a new printer from the directory, and it appears with a name like "Dr1Print on Dr1PC". I would prefer the name was just "Dr1Print" if possible.

I have tried using group policy preferences and this works for some printers because they have their own IP address (they are proper network printers, not USB printers that are shared) but i cannot get it to work for printers that are shared via a workstation.

Is there a way to set up one of these shared printers via GP prefs?

I hope this makes sense.
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Your best bet is to buy network capable printers.  Then all you need to do is setup each of them as a local printer on the server and any user that connects to TS will see it.  I know it sounds expensive but it will be worth it in time saved troubleshooting local printers.
I Like puterg33k Idea, and I'll like to add:

If you Share all the printers from the workstations where they (phisically) connected. You can name the share any name you want like "Dr1Print".

Then, connect all the printers shares to the TS2003..... like puterg33k said.

Actually you don't have to share them out on the workstation side.  All you need to do is set them up as a local printer with a TCP/IP port on the server side.  Any user that connects will see the printer with no need for any fancy scripts or policies.  You don't even have to share it out on the server just name the printer what you want and you are all set.  Here is a link with the steps for creating the printer.  

Active Protection takes the fight to cryptojacking

While there were several headline-grabbing ransomware attacks during in 2017, another big threat started appearing at the same time that didn’t get the same coverage – illicit cryptomining.

Dr_SnapidAuthor Commented:

puterg33k: can you please elaborate? How can assign IP addresses to USB printers? To me that link seems to be for network printers, i have USB

Although i could upgrade the printers to network capable ones (some of them are already LAN capable), I would also have to add extra cabling to the rooms. Each room currently only has one network port which is used by the PC. Using the USB printers avoids the need for extra network cabling or using splitters or switches in the rooms.

segp: When you say connect them to the TS2003, is there some way i can do it for all users? As i said in my opening post, i can already do what you suggest, but i would like to do it for all users. If i log on as admin and add them all, that does not add them for all other users. I have to do it for every user manually...
You could look at putting a switch and buying an external jet direct for each of the USB printers but it would be cheaper to buy brother laser printers like the HL-5250DN or the 4040CN if you need a color printer.  They are less expensive than HP printers and work with the HP LJ 4 driver which is stable in TS.  This option is going to be the easiest to support long term.

If you really can't upgrade I would setup any network capable printers like i said above.  For the remaining USB printers I would create a login script that maps each of the remaining.  Just use the following command in a regular batch file.  Just update the PCName and PrinterShare with the correct info and you will be all set.

rundll32 printui.dll,PrintUIEntry /dn /n\\PCName\PrinterShare /q
Dr_SnapidAuthor Commented:
I will try the login script puterg33k.

I guess I was trying to avoid them and use the GP prefs because it is a 2008 domain after all, and startup scripts are supposed to have been replaced. But since it's a 2003 server i see no harm in giving it a try. I think i should be able to sort it that way, i'll keep you posted.
If you don't want to use logon scripts you can either modify c:\windows\system32\usrlogon.cmd or add a new cmd file to the server using these instructions


I know it is for NT but we have roughly 53 Win2003 citrix servers that we added a  TSLogon.cmd to because of a custom app  

As always please remember to backup any files or registry before you modify them.

These files run everytime a user logs on to the server

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Dr_SnapidAuthor Commented:
My solution was a little variation on puterg33k's idea...

Create a script in a central location for each PC which uses printui commands to create all the printers needed for a certain workstation (ie: \\server\printerscripts\reception.cmd)
These files contain whatever printer configs I want, plus the line to start explorer:
rundll32 printui.dll,PrintUIEntry /dn /n\\PCName\PrinterShare  /q
rundll32  printui.dll,PrintUIEntry /in /n\\PCName\PrinterShare  /q
rundll32  printui.dll,PrintUIEntry /y /n\\PCName\PrinterShare  /q
start explorer.exe  

rundll32 printui.dll,PrintUIEntry /dn /n\\PCName\PrinterShare  /q     <delete the printer
rundll32  printui.dll,PrintUIEntry /in /n\\PCName\PrinterShare  /q         <create the printer
rundll32  printui.dll,PrintUIEntry /y /n\\PCName\PrinterShare  /q       <set as  default
...   <more printers if needed
 start explorer.exe        <   start the desktop (because the run at  startup option in mstsc starts only the program not the desktop as well)

On each workstation under all users > desktop i created the mstsc shortcut with the 'run at startup' option set to run the appropriate script for this workstation.

viola! This solution gives me all the control i need and makes sure that even if it's the first time a user has used this workstation, their TS session has the printer nearest them, plus any key printers nearby (like colour, stapling etc)

Thanks guys!
Dr_SnapidAuthor Commented:
Seems my post above got messed up a bit by the rich text editor, sorry... dont know why those tags are there
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Server OS

From novice to tech pro — start learning today.