To get an easy view on the spooler service state for my windows servers, I did the following:
1) In SAM, added all my windows server nodes into the template "Windows Print Services"
2) Deleted the 8 other licensed components, leaving only the 'Print Server Spooler Service' as the remaining component
3) Modified the 'Print Server Spooler Service' component template by changing the 'Status When Process is Not Running' to "Not Running" - this will get the service status, but then WON'T cause SAM to go into warning/error alert on systems when you have the service stopped....
4) Create a custom table view and use this as the SQL code:
Select
[NODE].[Caption]
,[APP].[ApplicationName]
,[APP].[ApplicationAvailability]
,[APP].[ComponentName]
,[APP].[ComponentErrorCode]
,[APP].[ComponentAvailability]
,CASE
WHEN [APP].[ComponentAvailability] = '11' THEN 'Not Running'
WHEN [APP].[ComponentAvailability] = '1' THEN 'Running'
WHEN [APP].[ComponentAvailability] = '0' THEN 'Unknown'
WHEN [APP].[ComponentAvailability] = '12' THEN 'Unreachable'
ELSE 'Missing Data'
END AS 'Component State'
FROM [SolarWindsOrion].[dbo].[Nodes] AS NODE
INNER JOIN [SolarWindsOrion].[dbo].[APM_CurrentStatistics] AS APP
ON [NODE].[NodeID] = [APP].[NodeID]
WHERE [APP].[ApplicationName] = 'Windows Print Services'
ORDER BY [APP].[ComponentAvailability], [NODE].[Caption]
Add in the Caption, ApplicationName, ComponentName and ComponentState columns, order by ComponentState
Now you have the display of all the various states of your Windows server spooler services. If you have a bunch running unnecessairly, make a smaller footprint by stopping and disabling the spooler service using powershell:
$Cred = Get-Credential
$Service = "Spooler"
$ComputerList = Get-Content -path "c:\users\YOURUSERPROFILENAMEHERE\desktop\ServerToStopDisableSpoolerService.txt"
Foreach ($Computer in $ComputerList)
{
Write-Host "Working on $Computer"
$result = Invoke-Command -computername $Computer -scriptblock { Set-Service -ComputerName $Using:Computer -Name $Using:Service -StartupType Disabled } -Credential $Cred
$result = Invoke-Command -computername $Computer -scriptblock { Stop-Service -Name $Using:Service } -Credential $Cred
}
Write-Host "Done."
Write-Host;Write-Host
Then create the text file with your server names in it (one name per line). The get credentials should be an admin on the remote box to successfully run. Domain admin account necessary if you want to remotely stop the spooler on a DC/RODC.
Thanks, Brent