Terminal Services failed printer redirection operation

TS_failed_printer_redirection_operation_2000 (Rule)

Knowledge Base article:

Summary

The terminal server experienced an error during client connection that does not affect its overall functionality. The printer redirection operation failed.

This rule covers the following event IDs: 1100, 1102, 1103, 1107, 1108, 1109, 1110, 1111, 1112

Microsoft® Windows Server™ 2000 operating systems only:1113, 1114, 1115

Causes

Possible causes include:

Event 1100: Terminal Server Remote Desktop Protocol (RDP) device redirection failed to initialize for a single user session. Serial, Parallel, Printer, and File System Redirection will be disabled. Check the System log for other related errors.

Event 1102: A driver required for the printer is not installed on the server.

Event 1103: An internal communication error occurred. Redirected printing will no longer function for a single user session.

Event 1107: The printer could not be deleted.

Event 1108: Configuration information for the printer could not be restored.

Event 1109: The printer could not be set as the default printer.

Event 1110: An error occurred during the Windows setup process while reading the printer driver .inf file. No printer drivers can be installed. This event occurs when there is a missing or corrupted printer driver .inf file.

Event 1111: The driver required for the printer is unknown. This event occurs when a client logs on. The Windows Server operating system attempts to match the name of the printer driver on the client with the printer driver name provided in all of the following three Windows .inf files:

Printupg.inf

Prtupg9x.inf

Ntprint.inf

If the name of the driver is not found, the error messages are logged and the printer is not redirected.

Event 1112: Terminal Server failed to register for user printing preferences change notification.

Event 1113 (Windows Server 2000 operating systems only): There is not enough memory to complete the operation. Save your work, close other programs, and then try again.

Event 1114 (Windows Server 2000 operating systems only): There was an error communicating with the Print Spooler service. Open the Services snap-in and verify that the Print Spooler service is running.

Event 1115 (Windows Server 2000 operating systems only): Either there was an error communicating with the Print Spooler service, or there was an unexpected internal error in Terminal Server RDP device redirection. If you experienced an internal error in Terminal Server RDP device redirection, contact technical support.

Resolutions

Possible resolutions include:

Event 1100: Start the spooler on the server.

Event 1102: Run Setup to reinstall the printer driver .inf file. If the printer driver installed on the client computer is an OEM driver, and a driver is available from the printer’s manufacturer, replace the OEM driver with the driver available from the printer manufacturer. The client user must log on to Terminal Server again before the printer driver change takes effect.

Event 1103: Check the status of the Terminal Services Device Redirector in the System folder of Device Manager.

Events 1107, 1112: Try freeing up resources by closing applications. Ensure that the spooler is running on the server.

Event 1108: Upgrade your Windows Server software to the most current version of the product.

Event 1109: Try freeing up resources by closing applications. Ensure that the spooler is running. Reinstall the local printers if you want them on your client system.

Event 1110: Run Setup again to reinstall the printer driver .inf file.

The Event 1110 error may also be caused by an incorrect .inf file name reference in the PrinterMappingINFName value that you add. Make sure that you use the correct INF file name.

Event 1111: Install a printer driver on the server that will match the printer driver installed on the client.

The following steps are recommended for fixing this problem. This procedure allows you to specify a different .inf file name in the registry for Windows to use, if it is unable to locate the driver in Ntprint.inf.

Do one of the following:

(Recommended) On the client computer, install a printer driver that is compatible with the existing driver on the server.

Install a client-compatible OEM printer driver on the server. This is not recommended unless the driver inconsistency cannot be fixed on one or more client computers.

Note: Installing a printer on the server will install a printer driver automatically.

Map the OEM printer driver on the client to the printer driver installed on the server and identified in the registry. Open Registry Editor and locate the following key:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd

Add the following values:

Name: PrinterMappingINFName

Type: REG_SZ

Data: Name of the .inf file to which you want to redirect lookups. Example: c:\winnt\inf\ntprintsubs.inf

Name: PrinterMappingINFSection

Type: REG_SZ

Data: Name of the section in the .inf file to which you want to redirect lookups.

Example: Printers

Event 1113 (Windows Server 2000 operating systems only): Close applications that use high amounts of memory.

Event 1114 (Windows Server 2000 operating systems only): Open the Services snap-in and verify that the Print Spooler service is running. Start the Print Spooler service if it is not running.

Event 1115 (Windows Server 2000 operating systems only): Open the Services snap-in and verify that the Print Spooler service is running. If restarting the Print Spooler service does not clear the problem, the printui.dll driver file on the server may be corrupt. You can reinstall the printer on the server to replace a suspect printui.dll file.

Verify that the spooler is running on both the client and the server either by viewing the Print Spooler status in the Services snap-in, or entering net start spooler in a command window on the server.

Stop the spooler on the server and restart it.

From the client that already has a printer installed, restart the spooler.

If the spooler does not run on either the client or the server, contact technical support.

Troubleshooting a corrupt printui.dll file on the server:

Run Setup and reinstall printui.dll from the product disk.

Element properties:

TargetMicrosoft.Windows.Server.2000.TerminalServerRole
CategoryEventCollection
EnabledFalse
Event SourceTermServDevices
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
Terminal Services failed printer redirection operation
{0}
Event LogSystem
CommentMom2005ID='{BA74B2B8-C698-4800-AF99-795E161FA02F}'

Member Modules:

ID Module Type TypeId RunAs 
Event_Data_Source DataSource Microsoft.Windows.EventProvider Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="TS_failed_printer_redirection_operation_2000" Target="Microsoft.Windows.Server.2000.TerminalServerRole" Enabled="false" Remotable="true" Comment="Mom2005ID='{BA74B2B8-C698-4800-AF99-795E161FA02F}'">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="Event_Data_Source" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>System</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>TermServDevices</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery>EventNumber</XPathQuery>
</ValueExpression>
<Operator>MatchesMOM2005RegularExpression</Operator>
<Pattern>^(1100|1102|1103|1107|1108|1109|1110|1111|1112)$</Pattern>
</RegExExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertOwner>$Data/PublisherName$</AlertOwner>
<AlertMessageId>$MPElement[Name="TS_failed_printer_redirection_operation_2000.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>