Local printers appearing in other users sessions

We are hosting a 2008 Enteprise SP1, 64bit running Terminal Services.

The users are running a 32 bit application (written in VB6) via remote app, and we are using Temrinal Services Easy Print.

We have a strange behavior that I would like to know if someone can explain (and hopefully help to get rid of)

  • When User A logs on he can se his own printer(s).
  1. HP LaserJet 4 (redirected 1)
  2. HP LaserJet IIP (redirected 1)
  • When User B later logs on he can se his own printer(s):
  1. Canon MF3200 Series (redirected 2)

but for some reason these printer(s) now also become visible for User A , who now can se:

  1. HP LaserJet 4 (redirected 1)
  2. HP LaserJet IIP (redirected 1)
  3. Canon MF3200 Series (redirected 2)


  • When User C then logs on his printer(s) become visible for User A and User B and so on

This behavior is not 100% consistent, but it happens often enough to be a problem.

(Users logging in early in the morning can se 200 .. 300 printers in the afternoon.)

This behavior is not reproducible if we use 64 bit applications, only 32 bit applications seems affected.

Any suggestions would be appreciated

September 8th, 2009 3:04pm

Hi,

Is the VB6 application using the standard windows common print dialog to display the list of printers or some other home-grown screen? From your description it appears thatthe VB6app is not using standard apis to obtain the list of printers and is instead using some other method like reading the registry directly.

What happens if you test using 32-bit notepad? It is located here:

c:\windows\syswow64\notepad.exe

I created a test vb6 app that opens the print dialog. I then ran it under Windows Server 2008 SP2 TS. It only displayed the current user's redirected printers plus those locally installed on the server which is the expected behavior.

Irealize you are runningServer 2008 RTM version so my test does not match precisely, however, I have seen these symptoms before under 2003 or 2000 and it was an application issue.

Thanks.

-TP

Free Windows Admin Tool Kit Click here and download it now
September 8th, 2009 6:08pm

Hi, and thanks for the answer.

When I look at the print dialog via 32-bit notepad I can only see my local printers (as it should be).

But our customers VB6-application uses a more complex printer management and need to select printer depending on printer name and so on, so it enumerates the printers using "Printer"-object in VB6.

Dim MyPrinters As Printer
For Each MyPrinters In Printers
debug.print MyPrinters.DeviceName
Next MyPrinters

The program worked fine on Windows 2000 and Windows 2003 terminal servers earlier.


If I (as administrator) look in the registry at the server at
HKEY_USERS\<User Sid>\Software\Microsoft\Windows NT\CurrentVersion\Devices
I see the printers the user sees (including the ones from other sessions).

I also must repeat that this is not happening at 100% of the time, but I can't figure out what the difference is between when it works as expected and when it don't.

Thanks
/Thomas
September 9th, 2009 6:31am

I solved this myself! :-)

(I want to share this in case anyone else has the same problem.)

If a user don't have the correct version (3.0 SP1) or later of the .net framework and logs on, then this users printers pops up in already logged in users sessions.
(Thats in 32-bit windows programs that don't use the standard print dialog, but selects printers by enumerating the printers using "printer"-object in VB6.)


/Thomas.
  • Marked as answer by Thomas Flyckt Monday, September 14, 2009 1:23 PM
Free Windows Admin Tool Kit Click here and download it now
September 14th, 2009 1:22pm

this would explain alot, thanks for this info.
September 14th, 2009 9:54pm

I want the function what Thomas mentioned above in server 2008 R2.

I tried many different setting but our user still can't see other's redirected printer (only can see own redirected printer)

our user already has admin rights and also tried easy print under GP policy!!

it was working fine with windows 2003 terminal server but after I upgrade to windows 2008 then it doesn't work anymore!!

Anyone can advice whether windows 2008 R2 server does not support this function anymore?  or any right procedure to configure it?

Many Thanks!

Free Windows Admin Tool Kit Click here and download it now
July 7th, 2015 12:52am

Hi

I want the function what Thomas mentioned above in server 2008 R2.

I tried many different setting but our user still can't see other's redirected printer (only can see own redirected printer)

our user already has admin rights and also tried easy print under GP policy!!

it was working fine with windows 2003 terminal server but after I upgrade to windows 2008 then it doesn't work anymore!!

Anyone can advice whether windows 2008 R2 server does not support this function anymore?  or any right procedure to configure it?

Many Thanks!

July 7th, 2015 12:55am

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics