PowerShell kan een redder in nood zijn bij het beheren van printers, vooral als je het zat bent om door eindeloze menu’s te klikken of met onbetrouwbare drivers te worstelen. Maar eerlijk gezegd is het best vreemd dat het niet altijd even makkelijk is om alles te automatiseren, of zelfs om erachter te komen wat überhaupt werkt. Printers zijn vaak een bron van ergernis vanwege driverproblemen, gedeelde instellingen of problemen met poorten. Deze handleiding gaat er dan ook over om je een aantal handige commando’s en trucs te geven om printers rechtstreeks vanuit PowerShell te repareren, installeren of beheren. Dit kan je een hoop tijd besparen – als je het eenmaal onder de knie hebt.
Printers repareren of beheren met PowerShell in Windows
Printerstuurprogramma’s toevoegen aan de DriverStore
Heb je wel eens gehoord van foutmeldingen zoals “stuurprogramma niet gevonden” bij het toevoegen van printers? Dat komt meestal doordat het stuurprogramma nog niet in de Windows-stuurprogrammaopslag staat. In de meeste gevallen moet je het juiste stuurprogramma eerst handmatig toevoegen. De Add-PrinterDrivercmdlet werkt alleen met stuurprogramma’s die al in de stuurprogrammaopslag staan. Dat betekent dat je de INF-bestanden meestal eerst handmatig aan de opslag moet toevoegen met behulp van pnputil.exe.
Om dat te doen, download je de driverbestanden van de website van de printer, pak je ze uit naar een map zoals C:\drivers\KYOCERA\..., en voer je vervolgens deze opdracht uit in PowerShell (als beheerder):
pnputil.exe -i -a "C:\drivers\KYOCERA\KyoClassicUniversalPCL6\OEMsetup.inf"
Deze ietwat vreemde stap voegt je stuurprogramma toe aan de Windows-stuurprogrammaopslag. Daarna kun je PowerShell opdracht geven om alle geïnstalleerde stuurprogramma’s weer te geven met:
Get-PrinterDriver
En als je het nieuwe stuurprogramma aan de lijst met stuurprogramma’s van je printserver wilt toevoegen, kun je het volgende doen:
Add-PrinterDriver -Name "Kyocera Classic Universaldriver PCL6"
*Zorg ervoor dat u de exacte drivernaam* uit het INF-bestand kopieert om problemen te voorkomen. Dit is cruciaal, want als de naam niet overeenkomt, wordt uw nieuwe printer mogelijk niet correct weergegeven. Bij sommige configuraties kan deze stap lastig of soms zelfs hardnekkig zijn – het hangt er een beetje vanaf of Windows uw INF-bestand als geldig herkent, of dat de driver is ondertekend.
Hoe installeer je een printer met PowerShell?
Een nieuwe printer installeren is meer dan alleen de stekker in het stopcontact steken. Je moet eerst een poort aanmaken, vooral als de printer op een netwerk is aangesloten. Voor printers die lokaal zijn aangesloten, volstaat het meestal om USB of LPT te selecteren, maar voor netwerkprinters moet je vaak een IP-poort instellen. Hier is een voorbeeld van hoe je dat doet:
Add-PrinterPort -Name "IP_192.168.10.26" -PrinterHostAddress "192.168.10.26"
Vervang het IP-adres door het daadwerkelijke adres van uw printer. Het is vreemd dat Windows niet altijd automatisch poorten aanmaakt, dus soms moet u dit handmatig doen. Zodra de poort gereed is, voegt u de printer zelf toe:
Add-Printer -Name "Ricoh IM 2702" -DriverName "Kyocera Classic Universaldriver PCL6" -PortName "IP_192.168.10.26"
Voer dat commando uit en de printer zou in uw lijst met printers moeten verschijnen. Als hij er niet meteen staat, controleer dan Apparaatbeheer of het paneel Apparaten en printers. Soms is een herstart of een vernieuwing nodig, omdat Windows de printer eerst moet herstellen. U kunt de printer indien nodig ook hernoemen.
Rename-Printer -Name "Ricoh IM 2702" -NewName "Ricoh_2702"
Als je die printer via het netwerk wilt delen, voer dan het volgende commando uit:
Set-Printer -Name "Ricoh_2702" -Shared $True -ShareName "Ricoh_2702"
Om het delen weer uit te schakelen, vervang je $Truedit door $False. Het is vrij eenvoudig als je de commando’s eenmaal kent.
Printers op servers weergeven en beheren
Als je meerdere printers beheert of gewoon wilt zien wat er allemaal te koop is, schaf dan dit aan:
Get-Printer
Het programma toont alle printers, inclusief status, driverinformatie, of ze gedeeld worden en welke poort ze gebruiken. Wilt u externe servers controleren? Geen probleem:
Get-Printer -ComputerName "your-server-name" | Format-List Name, DriverName
Dit is handig voor het oplossen van problemen of het controleren van de configuratie op specifieke machines. En als u specifiek gedeelde printers wilt vinden:
Get-Printer | Where-Object Shared -eq $true | Select-Object Name
Netwerkprinters aansluiten of verwijderen
Om een gedeelde printer van een server met uw computer te verbinden, voert u het volgende commando uit:
Add-Printer -ConnectionName "\\ServerName\SharedPrinter"
Wil je zien wat er al verbonden is? Doe dan het volgende:
Get-Printer | Where-Object {$_. Type -eq 'Connection'}
En als er iets mis is, of als je het gewoon wilt opruimen, kun je die verbinding verwijderen:
Remove-Printer -Name "\\ServerName\SharedPrinter"
Of om alle toegewezen netwerkprinters te wissen (omdat ze soms irritant kunnen zijn), doe je het volgende:
Get-Printer | Where-Object {$_. Type -eq 'Connection'} | Remove-Printer
De standaardprinter instellen zonder gedoe
Hier wordt het lastig: Windows heeft de neiging om je standaardinstellingen te overschrijven als je vanuit andere apps afdrukt. Om dat te voorkomen, kun je een registerwaarde instellen:
Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" -Name "LegacyDefaultPrinterMode" -Value 1 -Force
Vervolgens kunt u uw voorkeursprinter als volgt instellen:
$Printer = Get-CimInstance -Class Win32_Printer -Filter "Name='Ricoh IM 2702'" Invoke-CimMethod -InputObject $Printer -MethodName SetDefaultPrinter
Het is een beetje een trucje, maar het werkt op de meeste systemen, vooral als Windows de standaardinstellingen steeds zelf wijzigt.
Hoe verwijder je een printer volledig?
Als je van een printer af wilt, is het heel eenvoudig:
Remove-Printer -Name "HP LaserJet M1530"
Maar vergeet niet dat je het stuurprogramma mogelijk ook wilt verwijderen als het problemen veroorzaakt:
Remove-PrinterDriver -Name "HP Universal Printing PCL 6"
Dit kan soms resources vrijmaken of conflicten met stuurprogramma’s oplossen. Houd er rekening mee dat in een domeinomgeving GPO’s dit soort zaken vaak afhandelen, dus controleer het beleid als er problemen optreden.
Testen met Invoke-CimMethodtestpagina’s of het leegmaken van de wachtrij kan zeker helpen bij het opsporen van hardnekkige problemen. Bijvoorbeeld:
Invoke-CimMethod -MethodName "printtestpage" -InputObject (Get-CimInstance Win32_Printer | Where {$_. Name -eq "HP LaserJet M1530"})
Deze geforceerde testafdruk kan uitwijzen of de printer daadwerkelijk online is of dat er nog spookinstellingen actief zijn.
Het beheren van printers via PowerShell is niet perfect, maar het is absoluut sneller dan handmatig klikken, vooral bij het oplossen van problemen of bij grootschalige implementaties. Onthoud wel dat dingen soms niet meteen werken, maar als je eenmaal de juiste commando’s hebt gevonden, verandert dat alles.
Samenvatting
- Zorg ervoor dat de stuurprogramma’s in de stuurprogrammaopslag aanwezig zijn voordat u nieuwe printers installeert.
- Maak poorten aan voordat u netwerkprinters toevoegt.
- Gebruik PowerShell voor beheer op afstand en het uitvoeren van bulkinstallaties.
- Verwijder en ruim printers en stuurprogramma’s op wanneer nodig.
Samenvatting
PowerShell is vreemd, maar krachtig voor printerbeheer als je er eenmaal aan gewend bent. Verwacht wat vallen en opstaan, vooral met stuurprogramma’s. Hopelijk helpen deze commando’s de frustratie te verminderen en printerbeheer wat minder pijnlijk te maken. Houd er wel rekening mee dat dit op sommige computers alleen werkt als je PowerShell als beheerder uitvoert of je apparatenlijst daarna vernieuwt. Ik hoop dat dit iemand een paar uur bespaart.