Windows 2000 and Printing: What were they thinking?

Patrick Goetz pgoetz at
Sat Apr 28 17:22:24 GMT 2001

On Sat, 28 Apr 2001, Eugenijus [ISO-8859-1] Janus(kevic(ius wrote:
> As it is on NT 4.0, once logged in as administrator you must set up 
> printer drivers for intranet printers. At this stage drivers are 
> installed locally for every printer you set up.

Well, I thought the whole idea of having a print server with downloadable
drivers was that you didn't need local printer drivers any more and that
all the resources were set up when the share was mounted.  The advantage
of this is that you can change the printer driver on the server and all
the clients get updated automatically (not to mention not having to worry
about installing drivers on the clients in the first place and being able
to add and change printers without having to much with the client

Of course I realize that W2K clearly doesn't work this way.  When I first
set up the Samba print server and mounted an /etc/printcap printer on a
W2K machine, I couldn't get print jobs sent from the W2K machine to
actually print. They showed up on the printer and were then being
rejected.  The problem is that the brain-damaged HP postscript driver
insists on putting PJL commands at the top of the postscript file (hence
completely negating the whole point of using plain ascii postscript in the
first place, but I digress) and we have a print filter on the real print
server (the Samba server was just remote spooling the jobs to the actual
print server) which was messing up the PJL header so that the HP printer
ended up rejecting the print job as being "improper postscript".  My
solution was to have the Samba print server spool the print jobs directly
to the HP printer unfiltered.  As soon as I did this, everything started
working perfectly.  Now the weird thing.  As an experiment, I set the
/etc/printcap file back to the old one (which spooled the jobs to a linux
print server instead of directly to the printer), but the W2K machine
continued to be able to print.  I tried stopping and restarting lpd, nmbd,
smbd.  I removed the printer and reconnected it on the W2K machine, and
rebooted the W2K machine a million times; I even used regedit32 to
manually delete the printer from the registry.  No matter what I did, I
continued to be able to print when it hadn't worked before.  Insanity.  
Then I started thinking that the whole thing had just been some kind of
anomaly and the linux print server wasn't really messing up the jobs.  
Nope.  I set up another printer and exactly the same thing happened.  
Weirdest of all, when I switched the second printer to printing in raw
mode (leaving the first still spooling to the linux print server -- in
theory --) the second printer started printing and the first one finally
broke!!!  F*cking windows, if there was ever an argument for relegating
bill gates to the ranks of the unemployed this has got to be it.

But in any case, I set up printer drivers on the Samba printer server as
per the instructions and mounted them on the W2K machine as
root/administrator as required by W2K.  If W2K needs the drivers to be
installed locally when I do this, shouldn't this have happened
automatically?  Shouldn't permissions on the spool directory be set up by
default to allow what 99.999% of all users want; I mean don't most people
want to have access to a printer if such is available?  What magical,
undocumented, un-newsgrouped incantations do I have to perform to get the
drivers in a state where ordinary users can mount printers?

> When a user log is, (s)he initially gets empty list of printers, but 
> (s)he can add any intranet printer, which has its drivers installed 
> locally without any problems. I don't' believe this functionality has 
> ben changed for Win2k. I think you should check access rights to printer 
> drivers first

Thanks for the tips; I'll look at this, but I still maintain that the
default access rights should set up to allow users to mount
printers.  Certainly such restrictions should be controlled either by the
print server and/or the host providing the share and NOT by the client
machine, not to mention that all of this crap should be documented
someplace by Microsoft.  Also, at the moment, I'm not at all convinced
that any of this will work on W2K, based on >2 days of pulling my hair out

<rant>I'm annoyed at the X people for not allowing for kernel mode video
device drivers sooner (think games) and Corel for not getting it together
to provide a usable office productivity suite for linux (think
corporations).  Had both these things happened when they should have,
Samba would only have to worry about providing services to a few legacy
Win98/95 machines, since everyone and their pet gecko would already be
using linux by now.</rant>  (Of course since I'm not working on my own X
drivers or office suite, I guess I can't really complain too loudly. :-) )

More information about the samba-ntdom mailing list