Print Spooler: Reinstall the printer driver check registry permissions and restart the print spooler

Microsoft.Windows.Server.2008.PrintServer.PrintSpoolerService.PrintSpoolerStatus.System.Reinstalltheprinterdrivercheckregistrypermissionsandrestarttheprintspooler.EventBased.UnitMonitor (UnitMonitor)

Reinstall the printer driver check registry permissions and restart the print spooler.

Knowledge Base article:

Summary

Reinstall the printer driver check registry permissions and restart the print spooler.

Resolutions

To maintain compatibility with applications that directly access printer registry locations, the print spooler attempts to create links from old locations to new locations. If these links cannot be created, this error occurs. Note that although this only effects older applications, it is probably a sign that the system itself is in poor condition.

Often when this error occurs, no user action is required. If printing is not working correctly, possible resolutions include:

In the Administrative Tools folder, open the Services snap-in.Locate the Print Spooler service in the list of services, and then confirm that the status is Started. If its status is not Started, select the service then click Start on the Action menu. Note: You can also do this from an elevated Command Prompt window by typing the following command: net stop spooler and net start spooler

In some instances, you might receive Error 1068 ? \The dependency service or group failed to start\ ? when attempting to start the print spooler. This can happen if the Print Spooler service relies on other services that are not running. To resolve this issue, use the following procedure:

In the Services snap-in, right-click Print Spooler and then click Properties. Click the Dependencies tab. The first box lists all of the system services that must be running for the Print Spooler service to start. These are the dependencies. Make a note of each service, click OK, and then start each service that the Print Spooler service depends on, if the service is not already started. For each service that is not already started, right-click it, click Properties, and then confirm that the Startup type is Automatic.

Element properties:

TargetMicrosoft.Windows.Server.2008.PrintServerRole
Parent MonitorSystem.Health.AvailabilityState
CategoryStateCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.2SingleEventLog2StateMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Print Spooler Status Alert
{0}
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Windows.Server.2008.PrintServer.PrintSpoolerService.PrintSpoolerStatus.System.Reinstalltheprinterdrivercheckregistrypermissionsandrestarttheprintspooler.EventBased.UnitMonitor" Accessibility="Public" Enabled="true" Target="Microsoft.Windows.Server.2008.PrintServerRole" ParentMonitorID="SystemHealth!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Windows!Microsoft.Windows.2SingleEventLog2StateMonitorType" ConfirmDelivery="true">
<Category>StateCollection</Category>
<AlertSettings AlertMessage="Microsoft.Windows.Server.2008.PrintServer.PrintSpoolerService.PrintSpoolerStatus.System.Reinstalltheprinterdrivercheckregistrypermissionsandrestarttheprintspooler.EventBased.UnitMonitor.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/EventDescription$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Negative" MonitorTypeStateID="FirstEventRaised" HealthState="Warning"/>
<OperationalState ID="Success" MonitorTypeStateID="SecondEventRaised" HealthState="Success"/>
</OperationalStates>
<Configuration>
<FirstComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</FirstComputerName>
<FirstLogName>System</FirstLogName>
<FirstExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Microsoft-Windows-PrintSpooler</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>MatchesRegularExpression</Operator>
<Pattern>^(53)$</Pattern>
</RegExExpression>
</Expression>
</And>
</FirstExpression>
<SecondComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</SecondComputerName>
<SecondLogName>System</SecondLogName>
<SecondExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Microsoft-Windows-PrintSpooler</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>MatchesRegularExpression</Operator>
<Pattern>^(15|16)$</Pattern>
</RegExExpression>
</Expression>
</And>
</SecondExpression>
</Configuration>
</UnitMonitor>