4. Configuring Printer Driver Isolation Mode
Administrators can use
Print Management to configure the Driver Isolation mode for each
printer driver installed on a print server. There are several scenarios
in which doing this might be useful to increase print server
reliability. For example, if a print queue associated with a particular
driver keeps crashing, the administrator can change the Driver Isolation
mode for the driver to Isolated so that the driver runs within its own
separate process. That way, other print queues on the server won't be
affected when the driver crashes. The administrator can then contact the
vendor to request an updated driver for the printer.
Another example might be when a
vendor supplies the administrator with a printer driver whose quality is
unknown. In this case, the best practice is to assign the driver to an
isolated process and then collect and analyze crash statistics for the
print queue associated with the driver over a period of time. Once the
driver is determined to be sufficiently stable, the administrator can
move the driver to the shared process.
4.1. Configuring Printer Driver Isolation Mode Using the Print Management Console
You can configure the Printer
Driver Isolation mode for a printer driver from under the All Drivers
node, a custom driver filter node, or the Drivers node for a print
server. To configure the Driver Isolation mode for a printer driver,
right-click the driver and select Set Driver Isolation from the context
menu (see Figure 2). Doing this displays four choices:
None Runs the driver within the spooler process (legacy Isolation mode).
Shared Runs the driver within the shared process.
Isolated Creates a new isolated process for this driver only.
This menu option displays (None) if the DriverIsolation entry in the
driver's .inf file is missing or has a value of 0, or it displays
(Shared) if the DriverIsolation entry in the driver's .inf file has a
value of 2. In other words, None indicates that the driver is not
designed to support driver isolation, and Shared indicates that it is
designed to support driver isolation.
Note also the new Driver
Isolation column in the details pane when drivers are being displayed in
Print Management, which is new in Windows 7 and Windows Server 2008 R2.
Figure 2. Configuring the Printer Driver Isolation mode for a printer driver
If you are using the Print
Management console on a computer running Windows 7 or Windows Server
2008 R2 and connect to a print server running a previous version of
Windows, the Print Management console will indicate that driver
isolation is not supported on that server, and you will not have the
option to change modes.
4.2. Configuring Printer Driver Isolation Mode Using Group Policy
You can configure certain aspects of printer
driver isolation globally on a Windows Server 2008 R2 print server by
using the following two Group Policy settings, which are new in Windows 7
and Windows Server 2008 R2 and apply only to those platforms:
Computer Configuration\Policies\Administrative Templates\Printers\Execute Print Drivers In Isolated Processes
policy setting determines whether the print spooler will execute
printer drivers in an isolated or separate process. If you enable or do
not configure this policy setting, the print spooler will attempt to
execute printer drivers in an isolated process. If you disable this
policy setting, no driver isolation is attempted, and the print spooler
will execute printer drivers in the print spooler process. In other
words, adjusting this policy setting to Disable lets you completely
disable driver isolation and force everything to run in legacy mode
(mode = None). Any other setting allows driver isolation to work as
specified by a driver's .inf file and Print Management console settings.
Configuration\Policies\Administrative Templates\Printers\Override Print
Driver Compatibility Execution Setting Reported By Print Driver
policy setting determines whether the print spooler will override the
driver isolation compatibility reported by the printer driver via the
DriverIsolation entry in its .inf file. Doing this enables you to
execute printer drivers in an isolated process even if the driver does
not report compatibility. If you enable this policy setting, the print
spooler will attempt to execute the driver in Isolation mode regardless
of the DriverIsolation entry in the driver's .inf file. If you disable
or do not configure this policy setting, the print spooler will honor
the DriverIsolation entry in the driver's .inf file.
Both of these policy
settings apply only to printer drivers loaded by the print spooler;
print drivers loaded by applications are not affected. After changing
these policy settings, use gpupdate/force and then restart the Print Spooler service to ensure that the new policies take effect.
4.3. Troubleshooting Driver Isolation
troubleshoot driver isolation issues using the event logs. By default,
Admin logging for the PrintService is enabled in Windows 7 and Windows
Server 2008 R2, and you should monitor the Application and System Event
Logs for events coming from the print spooler.
To see additional events related to driver isolation activities, you can enable Operational logging as follows:
Open Event Viewer and expand the following:
Application and Services\Logs\Microsoft\Windows\PrintService.
Right-click Operational and select Enable Log.
After you enable
Operational logging, look for Informational Events with an Event ID of
842 and with a Source that is PrintService. This event indicates the
Isolation mode that was used to print a particular print job and
provides information such as the following.
The print job <x> was sent through the print processor <print processor name> on printer
<printer name>, driver <print driver name>, in the isolation mode <x> (0 - loaded in the
spooler, 1 - loaded in shared sandbox, 2 - loaded in isolated sandbox). Win32 error code
returned by the print processor: 0x0.
5. Exporting and Importing Print Server Configurations
You can export the configuration of all print queues and printer
drivers on a print server to a Printer Migration file
(*.printerExport), which you then import on either the same print server
or a different one. This is useful for administrators who want to back
up printer configurations or migrate printers
to a different print server. Exporting print queue configuration
settings and printer drivers is also a useful method for backing up the
configuration of a print server as part of your organization's Business
Continuity Plan (BCP).
To export all printer
drivers and the configuration of all print queues for a print server,
right-click the print server's node in Print Management and select
Export Printers To A File. This opens the Printer Migration Wizard,
which displays a list of print queues and printer drivers that will be
exported. Save the resulting *.printerExport file on a network share so
that you can import it again during a disaster recovery scenario or when
consolidating print servers.
You can import previously exported print server configurations by using either of the following methods:
print server's node in Print Management, select Import Printers From A
File, and then browse to select a *.printerExport file and import it.
a *.printerExport file while logged on to the print server into which
you want to import the configuration information to start the Printer
Migration Wizard and import the configuration.
The PrintBRM command-line tool can also be used in Task Scheduler to perform nightly backups of your print server configurations.
Printer Export Files
The printer export file has a
.printerExport file extension and is essentially a compressed cabinet
(.cab) file that contains XML definition files for the drivers, ports,
forms, and printers on a computer. It also contains all of the driver files for each printer.
The following files are part of the printer export file:
Printer driver description file. This file contains a list of every
driver installed on the computer and the driver files for each driver.
BrmForms.xml Forms description file. This file contains a list of all of the installed forms.
Port monitor definition file. This file usually contains either Windows
NT x86 or Windows x64 as the architecture and a list of port monitors
and port monitor files installed on the computer.
Printer ports definition file. This file contains a list of all printer
ports that have been installed on the computer. This list does not
include printer connections.
Printer definition file. This file contains a list of all printers that
have been installed on the computer. This list does not include printer
Spooler attributes definition file. This file contains information
about the spooler directory path and a value that determines whether the
source computer was a cluster server.
6. Performing Bulk Actions Using Print Management
You can also use Print Management to perform bulk actions for printers and printer drivers on a print server.
You can perform
the following bulk actions on printers by selecting several (or all)
printers on a print server or as displayed within a printer filter:
Cancel All Jobs
List In Directory
Remove From Directory
You can perform the following bulk
actions for printer drivers by selecting several (or all) printer
drivers for a printer or as displayed within a printer filter, such as
the All Drivers default filter:
Remove Driver Package
Managing Print Queues and Servers with the Print Management Console
Frank Olivier, User Experience Program Manager
With Windows 7
client computers and the Windows 7 Print Management console, printer
administrators can easily provide users with high printer availability.
This can be achieved by moving users from the print queues on one server
to identical print queues (for the same physical printers) on another
server when the first server is unavailable.
First, use the Print
Management console to deploy printers to a number of users using a GPO
(such as \\ServerA\ColorPrinter with GPO1), and link GPO1 to an
organizational unit (OU) with a number of users or computers.
Then, using the Print
Server import/export tool, do a backup of a print server. In the Print
Management console, right-click a print server and select Export
Printers To A File. All the print queues and printer drivers will be
exported to a .printerExport file. Alternatively, you can use the
command-line PrintBRM tool (in %WinDir%\System32\spool\tools), either
from the command line or from Task Scheduler, to do periodic backups of
the print server.
When a print server goes down
because of a hardware failure, the administrator can easily move users
to a new server. On the new server (Server2), use the Print Management
console to import the .printerExport file. New print queues will now be
created (such as \\Server2\ColorPrinter if the old server had
Using the deploy
printers functionality in the Print Management console, deploy the
printers using GPO2. With the Group Policy Management tool, disable the
link to GPO1. The print queues from Server1 will be undeployed, and the
print queues from GPO2 (Server2) will be installed.
When the old print server is online again, the link to GPO2 can be disabled, and the link to GPO1 can be enabled.