Windows hosted print queues

IMPORTANTThis is the original method of hosting print queues. Now there’s an easier and faster method where you set up print queues with the LPD protocol. To find out how, take a look at Printing from macOS to shared Windows Server queues with LPD and SMB.

This section discusses printer configuration on Mac OS X workstation in environments systems where the print queues are hosted on a Windows operating system. See Mac hosted print queues for OS 10.8+ if your print queues are hosted on Mac OS 10.8+.

When a printer from a Windows environment is shared and added to a Mac system, Print and Scan requests printer access credentials in the form of username and password. Any user that prints to this printer uses these supplied credentials. This means that the administrator that added the printer to the workstation is the owner of all documents printed from the workstation irrespective of the current logged in user.

The ideal solutions varies from network to network and depends on factors including:

  • Your existing network configuration
  • The mix and makeup of operating systems used on the network
  • The underlying directory technologies (Active Directory, LDAP, etc.) if used
  • Whether Macs are used by a single owner or multiple users

The following sections outline common set up scenarios and their pros and cons. Your solution might fit one of these scenarios or might be composed of a combination.

Scenario One: My own Mac (single user)

Many networks, particularly those in a business environment, have a dedicated desktop system for each user. This allows the desktop system’s global settings to be customized for the user. Common examples include:

  • Dedicated computers used in a business
  • Staff laptops or desktops used in education

Requirements

  • Printers hosted and shared from a Windows or Linux server.
  • Mac systems used by a single user (or small group of known users).
  • Each user has a domain account and password.
  • The username associated with the account on the Mac matches the domain username (either the account used to log in, or the account set up as the automatic log in account).
  • Running Mac OS X 10.8 or higher.

Installation

Check the user account information:

  1. Start up the Mac, log in as the local administrator, and ensure the system is connected to the network.
  2. Select System Preferences
  3. Depending on your Mac OS version, select Accounts or Users and Groups.
  4. Click MyAccount(Skip this step in Mac OS 10.8 and 10.9)
  5. Ensure that the Short name associated with the account matches the user’s domain account username. If not, create a new working account as appropriate.

Set up the printers

  1. Select System Preferences > Print and Scan.
  2. Click + to add a new printer.
  3. Control-click the toolbar; then select Customize Toolbar.
  4. Drag the Advanced icon onto the bar; then click Advanced.
  5. Select the Windows printer via spoolss device type.
  6. Enter a Device URL, such as: smb://username:password@server_name/printer_name
    • Tip: server_name is the name of the server hosting the printer, and printer_name is the printer’s share name
    • You might need to include the port in the DeviceURL: smb://server_name:139/printer_name
    • OS X can struggle with printer share names containing spaces. We recommend a share name without spaces
  7. In Name, enter a friendly and informative printer name.
  8. Choose a driver for this printer by selecting Select Software from the list.
  9. Click Add.
  10. Test print and ensure jobs are logged in PaperCut NG/MF as the correct user.

Install the PaperCut NG/MF User Client software

  1. Open Finder; then select Go > Connect to Server.
  2. Enter smb://servername/pcclient where servername is the name of the server hosting PaperCut NG/MF. If you are prompted for a username and password, this is a username that has access to connect to the SMB share on your Windows server.
  3. Drag the PCClient application across to the local Applications directory.
  4. Open System Preferences
  5. Select Users & Groups.
  6. Click the Login items tab.
  7. Click +; then select the newly installed PCClient application. Select the PC Client check box when it is displayed.
  8. Restart the system and ensure the client starts upon login.

Tips and troubleshooting

  • Get the user to log in to the Mac. Verify that the PCClient program starts automatically and shows the user’s balance.
  • Print to the newly set up printer. On the server’s print queue, ensure that the job is displayed under the correct username.
  • Ensure that the print job successfully reaches the printer and that the user gets charged in PaperCut.
  • Check that the balance has changed to reflect the new balance in the PCClient program.

Scenario Two: The multi-user Mac with popup authentication

Schools and universities often have Macs available for student use in dedicated computer labs. In these environments the Macs are shared by many users and Scenario One is not appropriate. Larger Mac networks already using LDAP or Active Directory authentication, or planning on doing so, might want to consider Scenario Three explained in the next section.

Scenario Two uses a popup authentication model. For more information, see Popup authentication.

The end user’s perspective:

  1. The user sees the PCClient program running.
  2. When the user prints a job, the client pops up a window requesting the user to enter a username and password. See Popup authentication.
  3. The user enters a domain username and password.
  4. If the credentials are valid, the job is charged to the user account.

The explanation:

  1. The print event is performed as a generic user – For example, “macuser“, “student“, etc.
  2. In PaperCut NG/MF, the “macuser” account is set up to use popup authentication by enabling the option Unauthenticated user. See Popup authentication for further details.
  3. The popup requests the user to enter a username and password.
  4. The password is authenticated and printing is charged against the supplied account.

Requirements

  • Printers are hosted and shared off a Windows, Mac or Linux server.
  • The Mac systems are set up to log in under a generic account name. (e.g. macuser, student, etc.)
  • The domain contains a user account matching the generic account.

Installing the PaperCut NG/MF User Client software

  1. Open Finder; then select Go > Connect to Server.
  2. Enter smb://servername/pcclient where servername is the name of the server hosting PaperCut NG/MF. If you are prompted for a username and password, this is a username that has access to connect to the SMB share on your Windows server.
  3. Enter account details for an account able to connect to the SMB share if requested
  4. Drag the PCClient application across to the local Applications directory.
  5. Command-click the newly copied PCClient application in the Applications directory. Select Open Package Contents.
  6. Navigate to Contents/Resources/.
  7. Double-click the install-login-hook.command script.
  8. Restart the system and ensure the client starts upon login.

Configure the popup settings

  1. Click the Users tab.

    The User List page is displayed.

  2. Select macuser.
  3. In the Account Details area, complete the following:
    • Balance—set the account balance to zero.
    • select the Restricted check box.
  4. In the Advanced Options area, select the Unauthenticated user (enable popup authentication) check box.
  5. Click Apply.

If users log in to the Mac using their AD/LDAP username, you can eliminate the authentication popup by configuring the client as described in Popup authentication.

Tips and troubleshooting

  • Get the user to log in to the Mac. Verify that the PCClient program starts automatically.
  • Print to the newly set up printer. On the server’s print queue, ensure that the job is displayed under the correct username.
  • An authentication popup should display on the Mac. Enter a valid domain username and password.
  • Charge the corresponding user for the job. Also check that the balance has changed to reflect the new balance in the PCClient program.

Scenario Three: Multi-user Macs using LDAP or Active Directory authentication

Larger networks often run the Macs in a domain environment either authenticating with an Active Directory or an LDAP network. In an authenticated domain environment, the identity of the user (the user’s username) is known and verified at the time of log in. With the help of the TCP/IP Printing Services for Microsoft Windows, and the LPR/LPD support on the Mac, print jobs can be identified on the server and associated with the user’s login name. This avoids the need for the popup authentication used in Scenario Two.

Using the LPR and IPP printing protocols on Windows print servers

LPR is a legacy protocol developed for UNIX that clients use to send print jobs to print servers. Microsoft has supported this protocol for a number of years via an add-on module called Print Services for UNIX (PSfU). Under certain conditions Windows LPD printers can cause issues when using PaperCut hold/release print queues. The information included here is to help customers understand the issue and document suggested workarounds.

The mechanism used by the Windows PSfU subsystem to accept LPR and IPP print jobs is different from other implementations in Windows such native SMB based printers. In SMB the event notification to applications such as PaperCut is well behaved and reliable. Event notification for LPR and IPP based printing does not use the same set of underlying APIs and under some conditions the PaperCut print monitoring layer receives notification after the print job has started. This means that some print jobs can start to print before the hold instruction is issued. This job is then suspended in a Paused Printing state (i.e. both paused and printing) and this results in all other jobs on that queue being held up by the paused job.

The symptoms are generally not consistent, suggesting an underlying race condition bug in Windows. Things that can affect the problem include:

  • Running the print server on a virtual machine
  • The number of processors/cores
  • The current load on the print server
  • The version and patch level of Windows

Because the issue is in the underlying Windows print subsystem, it is not possible for PaperCut to quickly implement a reliable solution and Microsoft is unlikely to implement a fix to this legacy subsystem. If a site does experience this issue there are some steps that can help alleviate or fix the issue.

  1. Use the SMB protocol for Windows based print server queues. Note that using SMB can place some constraints on how users authenticate and how anonymous users are able to print at your site. This is the recommended approach.
  2. Use two print queues. Queue A is virtual and queue B is the real queue attached to the physical printer. Users print to A using LPR and PaperCut can always place a hold on the print job. PaperCut then redirects the job to B on release. Managing virtual print queues is documented in section Find-Me printing and printer load balancing. Configure queue A to use a port with no printer (e.g. LPT1:), it should be permanently paused ( Printer > Pause Printing ), and the virtual queue configuration for A in PaperCut should forward jobs to B (setting Jobs may be redirected to these destination queues).

    If queue A is un-paused then the job will error, however, it can still be re-directed as needed.

Requirements

  • Macs set up in multi-user mode authenticating off a domain. Either Active Directory or LDAP.
  • Printers hosted on a Windows print server.
  • The server needs the TCP Printing Services installed (also known as Print Services for Unix).

Installation

On the server hosting the printers, set up TCP/IP Printing:

  1. Log in to the server as a system administrator.
  2. Select Control Panel > Add Remove Programs.
  3. Click Add/Remove Windows Components.
  4. Select Other Network File and Print Services.
  5. Click Details.
  6. Select Print Services for Unix.
  7. Click Next to complete the installation.

Some systems running firewall software can block LPD printing. On systems running firewall software, ensure that incoming connections from the local network are allowed on port 515.

On each Mac, add the required printers:

  1. Select Applications > Utilities.

    Open the Printer Setup Utility

  2. Click + to add a new printer.
  3. Click the IP tab in the top toolbar.
  4. From the Protocol list, select Line Printer Daemon – LPD.
  5. In Address, enter the IP address of the server hosting the printers .
  6. In Queue, enter the printer’s share name .
  7. In Name, define a user friendly name; then select the printer type.
  8. Click Add.
  9. Repeat for other printers as necessary.

Installing the PaperCut NG/MF User Client software

  1. Open Finder; then select Go > Connect to Server.
  2. Enter smb://servername/pcclient where servername is the name of the server hosting PaperCut NG/MF. If you are promted for a username and password, this is a username that has access to connect to the SMB share on your Windows server.
  3. Enter account details for an account able to connect to the SMB share if requested
  4. Drag the PCClient application across to the local Applications directory.
  5. Command-click the newly copied PCClient application in the Applications directory.
  6. Select Open Package Contents.
  7. Navigate to Contents/Resources/.
  8. Double-click the install-login-hook.command script.
  9. Restart the system and ensure the client starts upon login.

Tips and troubleshooting

  • Restart the system and ensure the PCClient application starts on login and lists the user’s account balance.
  • Ensure print jobs correctly show in the PaperCut job logs under the user’s PaperCut account.
  • Charge the corresponding user for the job. Also check that the balance has changed to reflect the new balance in the PCClient program.

Additional information and tips

The client install process is also covered in User Client. After the first Mac is set up and the printing process is tested, provide the simplified client install notes covered in Deployment on Mac OS X to end users or other SysAdmins.

The PCClient client can accept command line options as explained in Configure the User Client using the command-line. If the client is started via the login hook, you can define the command-line options in the file:

/Applications/PCClient.app/Contents/Resources/login-hook-start

Look for the line starting with client_args and the associated comments above.

Windows hosted print queues