# PCS Toolkit - Printers Report # Lists all installed printers with driver and port info $timestamp = Get-Date -Format "yyyy-MM-dd_HH-mm-ss" $outputFile = "$env:USERPROFILE\Desktop\PrintersReport_$timestamp.txt" $csvFile = "$env:USERPROFILE\Desktop\PrintersReport_$timestamp.csv" function Log($msg) { Write-Host $msg Add-Content $outputFile $msg } Log "========================================" Log " PCS Toolkit - Printers Report" Log "========================================" Log "Generated: $(Get-Date)" Log "Computer: $env:COMPUTERNAME" Log "" Log "=== INSTALLED PRINTERS ===" $printers = Get-Printer | Select-Object Name, DriverName, PortName, Shared, ShareName, PrinterStatus, Type if ($printers) { foreach ($p in $printers) { Log "" Log "Printer: $($p.Name)" Log " Driver: $($p.DriverName)" Log " Port: $($p.PortName)" Log " Status: $($p.PrinterStatus)" Log " Type: $($p.Type)" if ($p.Shared) { Log " Shared as: $($p.ShareName)" } } $printers | Export-Csv $csvFile -NoTypeInformation } else { Log "No printers installed" } Log "" Log "=== PRINTER DRIVERS ===" Get-PrinterDriver | Select-Object Name, PrinterEnvironment, MajorVersion | ForEach-Object { Log " $($_.Name) ($($_.PrinterEnvironment), v$($_.MajorVersion))" } Log "" Log "=== PRINTER PORTS ===" Get-PrinterPort | Where-Object { $_.Description } | Select-Object Name, Description, PrinterHostAddress | ForEach-Object { if ($_.PrinterHostAddress) { Log " $($_.Name) -> $($_.PrinterHostAddress) ($($_.Description))" } else { Log " $($_.Name) ($($_.Description))" } } Log "" Log "=== DEFAULT PRINTER ===" $default = Get-CimInstance Win32_Printer | Where-Object { $_.Default } if ($default) { Log "Default: $($default.Name)" } else { Log "No default printer set" } Log "" Log "=== PRINT SPOOLER STATUS ===" $spooler = Get-Service -Name Spooler Log "Spooler Service: $($spooler.Status)" Log "" Log "========================================" Log "REPORT COMPLETE" Log "========================================" explorer.exe "/select,$outputFile" Read-Host "Press Enter to exit"