I currently manage a computer lab in an academic library. We have a CUPS printer shared via Samba which is used to provide cash sales printing, for students who forgot their ID cards, and for guests. It's worked great for several years.

We recently upgraded the lab to Windows 10, and discovered that it no longer "remembers" the printer. We can easily install the printer by navigating to \\xxx.yyy.zzz.253\Cash Sales Printer -- it finds the driver, installs, and works fine. But it's only available on that profile. We need it to be universally available to every user who logs in, even if they have never done so before.

How can I set up this printer so that it's available by default?

UPDATE:

I have tried adding it as a local printer using the following steps:

  1. Add Printer from the Devices and Printers menu in the Control Panel
  2. Click "The printer I want wasn't listed"
  3. Click "Add a local printer or network printer with manual settings" and Next
  4. Click "Create a New Port"
  5. Pick "Standard TCP/IP Port" from the drop down and Next
  6. Type in the IP address in the "Host name or IP address" field and Next
  7. It sits and spins for about 2 minutes, and then says:

Additional port information required dialog.

I've tried a couple of different things at this point. I selected "Standard Print Server" as the device type and proceeded through the setup, selecting the correct driver along the way. In this case, I successfully defined a printer, but all my test print jobs failed.

I also tried selecting the device type as "Custom", changing the protocol to LPR, and feeding it lpr1 as the queue name. This failed -- I got the printer defined, but could not successfully print to it.

I've tried entering its share name as the host, but Windows 10 refuses to accept \ characters as input in that field, so I couldn't proceed with that.

UPDATE 2:

Further details on the setup.

The printer itself is an HP LaserJet P4014n. It has a built-in print server, and is connected to our network. However, it is NOT being shared out directly to the lab computers in question.

This printer is our cash sales printer. We need to have the ability to authorize print jobs before the printer starts churning them out. In order to accomplish this, we set up an Ubuntu Linux server, and connected the printer to it via CUPS. Here's the printers.conf file that defines it:

<Printer Cash_Sales>
UUID urn:uuid:f8c8f3f0-d4c6-3ec9-7acb-4325bdec9e3e
Info Pay cash for your black and white prints.
Location Front desk.
DeviceURI hp:/net/HP_LaserJet_P4014?ip=aaa.bbb.ccc.ddd
PPDTimeStamp *
State Idle
StateTime 1424138203
Type 8425668
Accepting Yes
Shared Yes
ColorManaged Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy retry-job
Option job-hold-until indefinite
Option job-hold-until-default indefinite
</Printer>

The Option job-hold-until settings allow us to use the CUPS web interface to release print jobs that are sent to this printer via CUPS.

The next step is to share that CUPS-defined link to the printer via Samba. Here are the relevant lines from smb.conf:

[printers]
   comment = Cash Sales
   browseable = yes
   path = /var/spool/samba
   printable = yes
   guest ok = yes
   read only = yes
   create mask = 0700

# Windows clients look for this share name as a source of downloadable
# printer drivers
[print$]
   comment = Printer Drivers
   path = /var/lib/samba/printers
   browseable = yes
   read only = no
   guest ok = yes

Everything on the Linux end is working fine. I can go to any machine in the lab and access the Samba share of the CUPS printer of the actual printer using:

\\aaa.bbb.ccc.ddd\Cash Sales Printer

... where the a.b.c.d is the actual IP address. Windows can find the drivers on the Samba share just fine, and install the printer, and print to it.

The only thing remaining is to get the damn thing set up in the lab. We did this under Windows 7, 8, and 8.1 for the last four years. But I can't figure out the final step. Either there is some crucial bit of knowledge that I lack, or else something has changed between win 8.1 and win 10 that prevents this from working.

School started three weeks ago. The cash sales printer is not set up by default, and the reference librarians are having to go set it up 10 to 20 times per day, once per individual user who needs it. I've been struggling with this for weeks, in between all the other stuff I have to do I've been covering three full time positions since February, when both of the other members of the tech department left for new positions.

It feels like I'm so close to a solution. I just want the stupid thing to work.

  • Define the printer as a LOCAL PRINTER using standard TCP/IP rather than mapping it per each login. Do that and then it should work on all profiles; at least be defined and as long as the account logged on has access to print to it, then it should work just fine.... Otherwise look into Group Policy setting and defining a shared network printer, but the LOCAL PRINTER as standard TCP/IP setup on the local admin account or one Windows account should work for all accounts moving forward. If you're interested in this as an answer for me to add, please hit me back and let me know. – Pimp Juice IT Sep 9 '16 at 19:33
  • @Homey_D_Clown_IT No joy. See updated notes in question. – Will Martin Sep 9 '16 at 20:19
  • Can you confirm 1. the exact make and model of this Printer 2. confirm how you have it connected to the network and what you have it connected to e.g. via USB on another Windows 10 (8, 7, Vista, x86, x64, etc.) machine and setup as a share, or true Ethernet connected and TCP IP defined network printer, etc. Also, you say if you connect to it via standard \\server IP\sharename that it works fine.... so I assume it's not a driver issue unless what you point it to is different that it brings down via the local printer setup options.... – Pimp Juice IT Sep 9 '16 at 20:55
  • @Homey_D_Clown_IT Further detail added to the question. It's a complex setup. – Will Martin Sep 9 '16 at 21:22
  • What version of Samba are you running? It may be related to the SMB version used in Win 10 not being supported by your Samba. Samba 4.3 has better support for Win 10 clients. If you can upgrade Samba to latest version (4.5.0) then it may fix your problem... especially with the fact it worked perfectly with previous versions of Windows. – Kinnectus Sep 9 '16 at 21:34
up vote 0 down vote accepted

Resolved! The procedure that worked is as follows:

  1. Go to the Control Panel, Devices and Printers, and Add Printer
  2. Click “The printer I want wasn’t listed”
  3. Select “Add a local printer or network printer with manual settings” and Next
  4. Select “Create a new port”
  5. Change the type of port to “Local Port” and Next
  6. For the port name, enter \\HOST_NAME_OR_IP\SHARE_NAME
  7. When prompted for a driver, choose your manufacturer/driver.
  8. Finish out the wizard, naming the printer “Cash Sales” along the way.

In this way, the printer is defined used a local port, and therefore shows up in all profiles.

But the local port actually points to a network share, so that the print job goes to the right place.

One gotcha to note is that my Samba was advertising the share as being named “Cash Sales Printer”, but internally it was named “Cash_Sales” -- this appears to correspond to how the printer was named in CUPS. I had to use the \\\aaa.bbb.ccc.ddd\Cash_Sales version to make it work.

There's also a downside, which is that the automated driver deployment doesn't work. You have to select the driver manually from the great big long list that comes with Windows, or else supply a driver via the “Have Disk” option. So deployment is considerably more tedious. But at least it works!

Many thanks to the commenters who suggested things.

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.