Wie man Drucker und Treiber unter Windows mithilfe von PowerShell effektiv verwaltet

PowerShell kann beim Umgang mit Druckern Gold wert sein – besonders wenn man keine Lust mehr hat, sich durch endlose Menüs zu klicken oder mit fehlerhaften Treibern zu kämpfen. Ehrlich gesagt ist es aber ziemlich merkwürdig, dass es nicht immer einfach ist, alles zu automatisieren oder überhaupt herauszufinden, was funktioniert. Drucker bereiten oft Probleme aufgrund von Treiberproblemen, nicht gemeinsam genutzten Einstellungen oder Port-Problemen. Dieser Leitfaden bietet Ihnen daher einige nützliche Befehle und Tricks, um Drucker direkt mit PowerShell zu reparieren, zu installieren oder zu verwalten. Sobald Sie den Dreh raus haben, können Sie damit viel Zeit sparen.

So reparieren oder verwalten Sie Drucker mit PowerShell in Windows

Hinzufügen von Druckertreibern zum DriverStore

Haben Sie schon einmal von der Fehlermeldung „Treiber nicht gefunden“ beim Hinzufügen von Druckern gehört? Das liegt meist daran, dass der Treiber noch nicht im Windows-Treiberspeicher vorhanden ist. In den meisten Fällen müssen Sie den richtigen Treiber manuell hinzufügen, bevor Sie weitere Schritte unternehmen können. Das Cmdlet verarbeitet nur Treiber, die bereits im Treiberspeicher vorhanden sind. Das bedeutet, dass Sie die INF-Dateien in der Regel zuerst manuell mit pnputil.exeAdd-PrinterDriver in den Speicher hochladen müssen.

Laden Sie dazu die Treiberdateien von der Website des Druckers herunter, extrahieren Sie sie in einen Ordner wie C:\drivers\KYOCERA\...und führen Sie dann diesen Befehl in PowerShell aus (als Administrator ausführen):

pnputil.exe -i -a "C:\drivers\KYOCERA\KyoClassicUniversalPCL6\OEMsetup.inf"

Dieser etwas ungewöhnliche Schritt fügt Ihren Treiber dem Windows-Treiberspeicher hinzu. Anschließend können Sie PowerShell anweisen, alle installierten Treiber aufzulisten:

Get-PrinterDriver

Und wenn Sie den neuen Treiber zur Treiberliste Ihres Druckservers hinzufügen möchten, können Sie Folgendes tun:

Add-PrinterDriver -Name "Kyocera Classic Universaldriver PCL6"

*Achten Sie darauf, den genauen Treibernamen aus der INF-Datei zu kopieren*, um Probleme zu vermeiden. Dies ist wichtig, da Ihr neuer Drucker möglicherweise nicht korrekt erkannt wird, wenn der Name nicht übereinstimmt. Bei manchen Konfigurationen kann dieser Schritt knifflig oder hartnäckig sein – dies hängt davon ab, ob Windows Ihre INF-Datei als gültig erkennt und ob der Treiber signiert ist.

So installieren Sie einen Drucker mit PowerShell

Die Einrichtung eines neuen Druckers beschränkt sich nicht nur auf das Anschließen. Zunächst muss ein Port erstellt werden – insbesondere bei Netzwerkdruckern. Bei lokalen Druckern reicht in der Regel die Auswahl von USB oder LPT aus, bei Netzwerkdruckern ist jedoch häufig die Einrichtung eines IP-Ports erforderlich. Hier ist eine typische Vorgehensweise:

Add-PrinterPort -Name "IP_192.168.10.26" -PrinterHostAddress "192.168.10.26"

Ersetzen Sie die IP-Adresse durch die tatsächliche Adresse Ihres Druckers. Windows erstellt Ports nicht immer automatisch, daher müssen Sie dies manchmal manuell tun. Sobald der Port eingerichtet ist, fügen Sie einfach den Drucker hinzu.

Add-Printer -Name "Ricoh IM 2702" -DriverName "Kyocera Classic Universaldriver PCL6" -PortName "IP_192.168.10.26"

Führen Sie das aus, dann sollte der Drucker in Ihrer Druckerliste erscheinen. Falls er nicht sofort angezeigt wird, überprüfen Sie den Geräte-Manager oder die Systemsteuerung unter „Geräte und Drucker“.Manchmal ist ein Neustart oder eine Aktualisierung erforderlich, damit Windows die korrekten Einstellungen vornehmen kann. Sie können den Drucker bei Bedarf auch umbenennen.

Rename-Printer -Name "Ricoh IM 2702" -NewName "Ricoh_2702"

Wenn Sie diesen Drucker nun im Netzwerk freigeben möchten, führen Sie einfach Folgendes aus:

Set-Printer -Name "Ricoh_2702" -Shared $True -ShareName "Ricoh_2702"

Um die Freigabe wieder zu deaktivieren, ersetzen Sie sie $Truedurch $False. Ganz einfach, sobald Sie die Befehle kennen.

Auflisten und Verwalten von Druckern auf Servern

Wenn Sie mehrere Drucker verwalten oder einfach nur sehen möchten, was es so gibt, dann holen Sie sich das hier:

Get-Printer

Es listet alle Drucker inklusive Status, Treiberinformationen, Freigabestatus und verwendetem Port auf. Sie möchten entfernte Server überprüfen? Kein Problem:

Get-Printer -ComputerName "your-server-name" | Format-List Name, DriverName

Dies ist nützlich zur Fehlerbehebung oder zur Überprüfung der Konfigurationen auf bestimmten Rechnern. Und insbesondere, wenn Sie freigegebene Drucker finden möchten:

Get-Printer | Where-Object Shared -eq $true | Select-Object Name

Anschließen oder Entfernen von Netzwerkdruckern

Um einen freigegebenen Drucker von einem Server mit Ihrem Rechner zu verbinden, führen Sie Folgendes aus:

Add-Printer -ConnectionName "\\ServerName\SharedPrinter"

Möchten Sie sehen, was bereits verbunden ist? Dann tun Sie Folgendes:

Get-Printer | Where-Object {$_. Type -eq 'Connection'}

Und falls etwas kaputt ist oder Sie es einfach nur bereinigen möchten, können Sie diese Verbindung entfernen:

Remove-Printer -Name "\\ServerName\SharedPrinter"

Oder um alle zugeordneten Netzwerkdrucker zu löschen (weil sie manchmal lästig werden), gehen Sie wie folgt vor:

Get-Printer | Where-Object {$_. Type -eq 'Connection'} | Remove-Printer

Standarddrucker problemlos einrichten

Hier wird es knifflig – Windows überschreibt in der Regel Ihre Standardeinstellung, wenn Sie aus anderen Anwendungen drucken. Um dies zu verhindern, können Sie einen Registrierungsschlüssel festlegen:

Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" -Name "LegacyDefaultPrinterMode" -Value 1 -Force

Anschließend können Sie Ihren bevorzugten Standarddrucker wie folgt festlegen:

$Printer = Get-CimInstance -Class Win32_Printer -Filter "Name='Ricoh IM 2702'" Invoke-CimMethod -InputObject $Printer -MethodName SetDefaultPrinter

Es ist zwar etwas umständlich, funktioniert aber in den meisten Fällen – insbesondere dann, wenn Windows die Standardeinstellungen ständig von selbst neu zuweist.

Wie man einen Drucker vollständig entfernt

Wenn Sie einen Drucker loswerden möchten, ist das ganz einfach:

Remove-Printer -Name "HP LaserJet M1530"

Vergessen Sie aber nicht, dass Sie den Treiber gegebenenfalls auch entfernen sollten, wenn er Probleme verursacht:

Remove-PrinterDriver -Name "HP Universal Printing PCL 6"

Dies kann mitunter Ressourcen freigeben oder Treiberkonflikte beheben. Beachten Sie, dass in einer Domänenumgebung Gruppenrichtlinienobjekte (GPOs) diese Vorgänge häufig steuern.Überprüfen Sie daher die Richtlinien, falls die Änderungen nicht wirksam werden.

Das Testen mit dem Drucken von Testseiten oder dem Leeren der Warteschlange kann sicherlich Invoke-CimMethodhelfen, hartnäckige Probleme aufzuspüren. Zum Beispiel:

Invoke-CimMethod -MethodName "printtestpage" -InputObject (Get-CimInstance Win32_Printer | Where {$_. Name -eq "HP LaserJet M1530"})

Dieser erzwungene Testdruck kann aufdecken, ob der Drucker tatsächlich online ist oder ob es sich nur um verbliebene Geistereinstellungen handelt.

Die Druckerverwaltung über PowerShell ist zwar nicht perfekt, aber deutlich schneller als das manuelle Klicken, insbesondere bei der Fehlersuche oder der Bereitstellung in großem Umfang. Denken Sie daran: Manchmal klappt es nicht beim ersten Versuch, aber sobald Sie die richtigen Befehle kennen, wird es alles verändern.

Zusammenfassung

  • Stellen Sie sicher, dass die Treiber im Treiber-Store vorhanden sind, bevor Sie neue Drucker installieren.
  • Erstellen Sie Ports, bevor Sie Netzwerkdrucker hinzufügen.
  • Verwenden Sie PowerShell für die Fernverwaltung und Masseninstallationen.
  • Drucker und Treiber bei Bedarf entfernen und bereinigen.

Zusammenfassung

PowerShell ist zwar etwas ungewöhnlich, aber für die Druckerverwaltung sehr nützlich, sobald man den Dreh raus hat. Rechnen Sie mit etwas Ausprobieren, insbesondere bei Treibern. Hoffentlich helfen Ihnen diese Befehle, Frustration zu vermeiden und die Druckerverwaltung etwas einfacher zu gestalten. Beachten Sie jedoch: Auf manchen Rechnern funktioniert dies nur, wenn Sie PowerShell als Administrator ausführen oder anschließend Ihre Geräteliste aktualisieren. Ich drücke die Daumen, dass dies jemandem ein paar Stunden spart.