This chapter continues our examination of the Windows Server 2003 printing system and covers printer management, permissions, advanced configuration, and troubleshooting. Working with the Print SpoolerIn the previous chapter, we defined and discussed most of the different parts of the printing process. In addition, we worked with installing and configuring print drivers and print devices. The intermediate link between the print driver and the print device is the print spool, which is also known as the spool file. It's a file on the print server that contains the data to be printed. This file contains the print data and the print devicespecific commands needed to format the printed output. Most print jobs do not go directly to the print device, especially on a print device that is heavily used. Because a print device usually prints slower than the print job can be processed, the file is stored in the spool file so that the user can continue on with his or her work while the print server manages the print job. This has additional benefits. Printers, being mechanical devices, tend to jam and run out of paper. Because the print job is stored in a file, it can be resumed when the print device is repaired. In addition, the print job can be restarted, if some of the pages were damaged or lost. The content of the spool file is referred to as the print queue. Users have the ability to view the print queue, using the Print Manager applet. Users can hold or cancel their own print jobs, or the print jobs of other users if they are granted the appropriate permissions. After the print device finishes printing the job, the print job is deleted. Note: Save Print jobs Windows Server 2003 has an option to save all print jobs on the hard drive of the print server. Use this option only if required by your company, because it can fill a hard drive very quickly. The print spooler is part of the operating system and runs as the Print Spooler service. The print spooler manages the print queues for all local or network printers that are managed by the server. By default, the spool file is located at %systemroot%\System32\Spool\Printers. As you might have noticed, this is on the system drive. In environments where a large number of printers are hosted on the server, this may impact performance because there will be a large number of files written to and read from the spool file, in addition to the constant accessing of the operating system files. In this situation, it's best to move the spool file to another volume, preferably one that's attached to a different controller. To move the spool file, use the procedure in Step by Step 7.1.
Note: Command Line The Print Spooler service can also be stopped and started from the command line using the net stop spooler and net start spooler commands. On servers that have been assigned to be print servers, you will want to relocate the spool file for the following reasons:
A separate set of spool files are generated for each print job. After the job has completed successfully, the spool files will be deleted from the spool folder. Each print job consists of two files:
Large print jobs can generate a significant impact on the network and print server loads. The print spooler files on a Windows Server 2003 print server can be relocated to a dedicated hard disk if these loads are going to be high. For more information about how to do this, see KB article 314105, "How to Move the Windows Default Paging File and Print Spooler to a Different Hard Disk," at http://support.microsoft.com/?kbid=314105. If network performance is an issue, consider directly connecting the print device to the server, because this will reduce the impact on the server from printing to approximately half; the print job from the server will be passed over the parallel or USB bus rather than the network. Assigning Print PermissionsLike any Windows resource, the printing environment in Windows Server 2003 is highly secure and configurable. Access to printer objects is controlled in the same manner as access to objects such as files and foldersthey are defined on a user and group basis. For printer objects, three basic roles are granted the permissions shown in Table 7.1. These permissions allow users who are assigned these predefined roles to print, manage documents, or manage printers.
The permissions are broken down by the default groups that are granted the predefined roles, as shown in Table 7.2.
The previous two tables outline the default permissions and roles. However, these can be changed to provide more granularity. While you will find that in most situations, the standard permissions will suffice, there will be specific circumstances where limiting access to printers is necessary. For example, access to printers that print payroll checks, or to specialized photo or high-resolution color printers, should be limited to a select group of users both for security reasons and because of the cost per page compared to other printers. As you can see in Table 7.1, when a shared printer is installed, by default all users are able to print to it. In Step by Step 7.2, we will change the permissions of a shared printer to remove the default access and grant access to a specific group.
Print Job ManagementYou can manage print jobs through the Print Queue window. Each logical printer has its own print queue that can be accessed by double-clicking its icon in the Printers folder. Figure 7.6. The Print Queue window, showing paused print jobs.You can manage documents by selecting one or more documents in the queue and then issuing one of the following commands from the Document menu:
Keep in mind that the documents you can manage depend on your access level. If you have only Print access to the printer, you can manage only your own documents. If you have Manage Documents or Manage Printers access to the printer, you can manage any print job in the queue. If you have Manage Documents or Manage Printers access to a printer, you also can use the commands from the Printer menu of the Print Queue window. These commands include the following:
As we saw earlier in this section, you can also use printer permissions to delegate management of the printers and the print jobs to other users, without having to add them to other groups that would grant them more permissions than you want them to have. This will free you as the system administrator for other tasks. Printer PoolingPrinter pooling is a form of load balancing in that two or more print devices are represented by a single printer. The users send their print jobs to what looks like a single printer. The print server then queues the print jobs in the order they were submitted. When a print device finishes a print job, it receives the next job in the queue. For example, suppose that the accountant is printing a year-end summary report. Typically, these types of reports can be very detailed and take a long time to print. Unfortunately, several other users also have print jobs that need to be completed, and they have already submitted these jobs to the same printer as the year-end summary report. Normally, if the other users needed to get their print jobs completed in a reasonable amount of time, they would have to cancel the jobs they sent to the first printer, then resubmit them to another printer. However, with printer pooling, while one printer is tied up with the year-end summary report, the other print jobs are automatically routed to other available printers in the pool. Printer pooling is a very efficient way to print because it balances the load. You never have multiple jobs waiting for a specific printer while another printer is idle. For printer pooling to work successfully, the following conditions must be met:
To configure a printer pool, use the procedure outlined in Step by Step 7.3.
After the procedure has been completed, if you look at the Ports tab, you will see that several ports have the identical printer name assigned to them, as shown in Figure 7.8. Figure 7.8. The Ports tab showing the completed configuration.
As you can see in Figure 7.8, the ports can be of different types; the only limitation is that the same driver must be used for all printers. The advantage of printer pooling is that users don't have to figure out which printer is available, so they can get their print job out quickly. This is all handled automatically by the server. Scheduling Printer AvailabilityIn the previous section, we examined how to use one logical printer to represent several physical print devices. However, we can do just the oppositewe can set up several logical printers to represent one physical print device. You can set up several logical printers, each with slightly different configurations (but using the same print driver). For example, take a look at the Advanced tab of the printer Properties dialog box shown in Figure 7.9. Figure 7.9. The printer Properties dialog box's Advanced tab.
The first area is the Always Available and Available From option buttons. The default is for the printer to always be available. However, suppose the Accounting department has a weekly job that prints a 500-page report. Unless you have a very fast printer, you wouldn't want to print that during normal business hours because no one else would be able to print. Although you could pause this large job and enable it after the other jobs have finished, that isn't easy, and can become tiresome when there are lots of print jobs to manage. There's a much easier way to accomplish this. For example, you could create an additional logical printer and name it After Hours. The Advanced tab of the Printer Properties dialog box for the After Hours printer might say that it is available only from 6:00 p.m. to 6:00 a.m. Then, whenever users need to print a huge print job, they would print to the After Hours logical print device. The job would sit in the print queue for that logical device until 6:00 p.m., and then start printing when everyone has gone home. To schedule printer availability, use the procedure outlined in Step by Step 7.4.
Although this sounds great in theory, as the system administrator you must use a combination of user education and printer permissions to make it work. You will need to educate users about which printers are available 24 hours, which ones are not, and why. After instructing them to use the after hours printers for all large print jobs, make it a habit to cancel any large jobs that are sent to other printers. In addition, starting with Windows Server 2003 version R2, you have the ability to set disk quotas at the folder level. This allows you to limit the size of jobs that a user or group can send to a logical printer by setting a quota for these users on the folder that the spool file is located in. Another idea is to make the scheduled printers easily identifiable by giving them recognizable names such as After Hours, Big Jobs, and so on. In addition, make liberal use of comments in the comments field for the printers. You can also use printer permissions to deny access to printers for users who should always print their jobs after hours. Conversely, those users who never print large jobs should be denied access to the after hours printers so that they inadvertently don't send a print job to them. Note: Disk Space Make sure that the server that holds the print queue for the After Hours printer has a lot of free space, because several large print jobs could possibly remain on the disk until after hours. Setting Printer PriorityAnother way of controlling the precedence of print jobs is via Printer Priority. Priority is used to set the default importance of the print jobs in the queue. Priority can be set from 1 to 99. The job assigned the higher numerical number is printed first. For example, suppose you have a department with 30 employees and 2 managers. The managers believe that their print jobs should be printed before the employee print jobs. In this case, you would create two logical printers, one for the managers and one for the employees. The managers' printer would have a priority of 99, whereas the employees' printer could be left at 1. With this configuration, any job sent to the managers' logical printer would be placed in the queue and print before any job sent to the employees' logical printer. The employees' print jobs would be processed only after the managers' jobs are completed. To configure a second logical printer with a different priority, follow the procedure in Step by Step 7.5.
In the previous section, we outlined the default permissions and roles. However, these can be changed to provide more granularity. For example, let's configure a logical printer for the managers group referred to in the previous example.
This works unless the managers are also members of the Employees group. Review the rules on Deny Access from Chapter 4, "Managing and Maintaining Access to Resources." |