Printer Health Check Up Report
Team requested for a script which monitors the Network Printers. This is to avoid calls to Service Desk for paper, toner etc..,
This script is done for team one who monitors the printers across the networks. This report will provide you the below status
- Printer Full Name
- Location (Provided if its updated in comment or in Location)
- Description of the Printer
- Identifies the Paper Problem
- Check Toner Status
- Check Toner Availability
- Printer Door Issues
- Availability
- Power Saving Mode
- Queue Status
- Any Error Mode
- Out Of Paper
- Any User Intervention Required?
- Paper Jam
- Number of Jobs
Team can execute the report before business day and avoid operational tickets. You can customize the script as per your requirement
Note: I opted .NET class to fetch printer information
Code
Function Get-PrinterInformation{ [cmdletBinding()] param( [parameter(Mandatory=$true, ValueFromPipeline=$true, ValueFromPipelinebypropertyName=$true, helpmessage="Provide Print Server Name")] [String[]]$PrintServerName, [parameter(Mandatory=$true, ValueFromPipeline=$true, ValueFromPipelinebypropertyName=$true, helpmessage="Provide Printer Name")] [String[]]$PrinterName ) BEGIN {} PROCESS { Add-Type -AssemblyName System.printing $PrintServer = New-Object System.Printing.PrintServer("\\$($PrintServerName)") foreach($printer in $PrinterName){ $printerinformation = $PrintServer.GetPrintQueue($printer) $property = @{'Printer Name' = $printer; 'Printer Full Name' = $printerinformation.FullName; 'Location' = $printerinformation.Comment; 'Description' = $printerinformation.Description; 'Paper Problem'= $printerinformation.HasPaperProblem; 'Toner Available' = $printerinformation.HasToner; 'Door Issues' = $printerinformation.IsDoorOpened; 'Is Not Available'= $printerinformation.IsNotAvailable; 'Is PowerSaver On' = $printerinformation.IsPowerSaveOn; 'Is Toner Low' = $printerinformation.IsTonerLow; 'Queue Status' = $printerinformation.QueueStatus; 'Is in Error' = $printerinformation.IsInError; 'Is Manual Feed Required' = $printerinformation.IsManualFeedRequired; 'Is Out Of Paper' = $printerinformation.IsOutOfPaper; 'Need Intervention' = $printerinformation.NeedUserIntervention; 'Is Paper Jammed' = $printerinformation.IsPaperJammed; 'Default Priority' = $printerinformation.DefaultPriority; 'Is Printing' = $printerinformation.IsPrinting; 'Number Of Jobs' = $printerinformation.NumberOfJobs;} $object = New-Object -TypeName PSObject -Property $property Write-Output $object } } END {} } |
Please get the code from Gallery Printer Monitoring Script
Hit Pages Track