Wie man von Linux aus effizient auf einem freigegebenen Windows-Drucker druckt

Dieser Artikel erklärt, wie Sie von einem Linux-Rechner aus einen freigegebenen Windows-Drucker verbinden und drucken. Falls Sie bei der Einrichtung schon einmal auf unerwartete Fehler gestoßen sind oder einfach nicht verstehen, warum die Kommunikation zwischen Linux und Windows nicht reibungslos funktioniert, keine Sorge – dieser Artikel sollte einige der häufigsten Probleme lösen. Meistens liegt die Ursache in Netzwerkprotokollen, Berechtigungen oder fehlerhaften Einstellungen. Sobald diese Probleme behoben sind, können Sie problemlos drucken – oder zumindest deutlich einfacher.

So geben Sie einen Windows-Drucker frei und stellen eine Verbindung von Linux aus her

Zuerst den Drucker unter Windows freigeben

Das ist der erste Schritt – wenn der Drucker nicht freigegeben ist, kann Linux ihn natürlich nicht finden. Gehen Sie zum Windows-PC, suchen Sie den Drucker in der Systemsteuerung unter „Geräte und Drucker“, klicken Sie mit der rechten Maustaste darauf und wählen Sie „Druckereigenschaften“. Wechseln Sie zum Tab „Freigabe“, aktivieren Sie „Diesen Drucker freigeben “ und geben Sie ihm einen einfachen Namen (ohne Leerzeichen oder Sonderzeichen – Windows hat damit manchmal Probleme).Achten Sie darauf, dass der Freigabename übersichtlich ist, da Linux ihn später verwenden wird.

Wenn Sie Berechtigungen anpassen oder einen separaten Benutzer für den Druckzugriff hinzufügen möchten, gehen Sie zu Systemsteuerung > Verwaltung > Lokale Benutzer und Gruppen. Erstellen Sie einen neuen Benutzer, z. B.winusr1, entfernen Sie diesen Benutzer gegebenenfalls aus der Gruppe „Benutzer“ (Windows fügt standardmäßig manchmal alle Benutzer hinzu), vergeben Sie ein Passwort ohne Ablaufdatum und verhindern Sie Passwortänderungen, falls der Zugriff nur für den Drucker bestimmt ist. Mit PowerShell könnten Sie beispielsweise Folgendes tun:

$pass = ConvertTo-SecureString "pass2024W0rd-" -AsPlainText -Force New-LocalUser -Name "winusr1" -Password $pass -PasswordNeverExpires -UserMayNotChangePassword Remove-LocalGroupMember -Group "Users" -Member "winusr1"

Dadurch lassen sich spätere Probleme mit Berechtigungen vermeiden, insbesondere wenn Sie Prozesse automatisieren oder Skripte verwenden.

Überprüfen Sie Ihre SMB-Protokolleinstellungen

Windows deaktiviert SMB 1.0 standardmäßig, da es als unsicher gilt. Linux-Tools wie smbclient versuchen jedoch häufig, SMB 1.0 zu verwenden, sofern man ihnen nichts anderes mitteilt. Versucht Linux also, eine Verbindung über SMB 1.0 herzustellen, wird die Verbindung getrennt – insbesondere unter Windows 10/11, wo SMB 1.0 (zum Glück standardmäßig) deaktiviert ist.

Dies führt zu Fehlermeldungen wie: E [Job 13] SMB-Verbindung fehlgeschlagen! E [Job 13] Verbindung zum CIFS-Host nicht möglich: NT_STATUS_IO_TIMEOUT

Um das zu beheben, öffnen Sie das Terminal unter Linux und bearbeiten Sie die Datei /etc/samba/smb.conf. Suchen Sie den Abschnitt [global] (oder fügen Sie ihn hinzu) und fügen Sie dann die folgenden Zeilen ein:

[global] client min protocol = SMB2 client max protocol = SMB3

Dadurch wird SMB 2 oder 3 erzwungen, was sicherer ist und von Windows 10/11 akzeptiert wird. Vergessen Sie nicht, den Samba-Dienst anschließend neu zu starten, damit die Änderungen wirksam werden.

$ sudo systemctl restart smbd

Sobald das erledigt ist, funktioniert ein erneuter Verbindungsversuch meist besser. Linux reagiert etwas empfindlich, wenn die SMB-Protokolle nicht kompatibel sind, daher ist dieser Schritt sehr hilfreich.

Installieren Sie die notwendige Software unter Linux

Um SMB-Freigaben über die Kommandozeile zu verwalten, benötigen Sie smbclient. Es ist in der Regel auf den meisten Distributionen verfügbar – unter Ubuntu oder Debian führen Sie folgenden Befehl aus:

$ sudo apt install smbclient

Nach der Installation können Sie die verfügbaren SMB-Freigaben auf dem Windows-Rechner auflisten:

$ smbclient -L \\\\192.168.31.94 -U winusr1

Ersetzen Sie 192.168.31.94 durch die IP-Adresse oder den Hostnamen Ihres Windows-Rechners und winusr1 durch den von Ihnen erstellten Benutzernamen. Dadurch werden die verfügbaren Freigaben und Drucker angezeigt.

Wenn Sie einen Druckauftrag direkt von Linux aus senden möchten, können Sie Folgendes tun:

$ smbclient -W DOMAIN -U winusr1 //192.168.31.94/HPM1530

Anschließend verwenden Sie innerhalb der SMB-Eingabeaufforderung den Befehl „print“, um eine Datei zu senden:

smb: \> print /home/user/test.txt printing file test.txt as test.txt (856, 2 kb/s) smb: \> quit

Diese Methode ist zwar nicht die eleganteste, funktioniert aber für das direkte Senden von Dateien.

Hinzufügen des freigegebenen Druckers mithilfe von CUPS und der Weboberfläche

Hier wird es etwas benutzerfreundlicher. Die meisten Linux-Distributionen bringen CUPS (Common UNIX Printing System) und Tools wie system-config-printer standardmäßig mit. So stellen Sie eine Verbindung zu Ihrer Windows-Freigabe her:

Öffnen Sie einen Webbrowser und rufen Sie http://localhost:631 auf. Dies ist die CUPS-Verwaltungsoberfläche. Wählen Sie unter „Administration“ > „Drucker hinzufügen“ die Option „Andere Netzwerkdrucker“ > „Windows-Drucker über SAMBA“.

Wenn Sie nach der Geräte-URI gefragt werden, geben Sie beispielsweise Folgendes ein:

smb://winusr1:[email protected]/HPM1530

Ersetzen Sie „password“ durch das tatsächliche Passwort für winusr1. Dieser Schritt schlägt manchmal mit der Fehlermeldung „Zugriff verweigert“ fehl, wenn Samba nicht korrekt konfiguriert ist.Überprüfen Sie daher die Anmeldeinformationen.

Benennen Sie anschließend Ihren Drucker und wählen Sie den passenden Treiber aus. Verwenden Sie lpinfo -m|grep 1536gegebenenfalls die Treibersuche, insbesondere wenn CUPS den richtigen Treiber nicht automatisch erkennt. Für HP-Drucker ist HPLIP eine große Hilfe und in der Regel vorinstalliert. Sie können es aber auch manuell installieren.

$ sudo apt install hplip hplip-gui

Andere Marken benötigen möglicherweise andere PPD-Dateien oder Treiber, aber Foomatic ist ziemlich universell – einfach installieren:

$ sudo apt install foomatic-db-compressed-ppds

Sobald alles eingerichtet ist, können Sie von Ihrem Linux-Desktop aus den freigegebenen Windows-Drucker auswählen und darauf drucken.

Umgang mit häufigen Fehlern

Wenn beim Drucken Fehler wie „SMB-Verbindung fehlgeschlagen“ oder „NT_STATUS_IO_TIMEOUT“ auftreten, überprüfen Sie das CUPS-Protokoll unter /var/log/cups/error_log. Dort werden SMB-Probleme oft detaillierter protokolliert. Die häufigste Ursache ist ein SMB-Protokollkonflikt – hier kommen die zuvor vorgenommenen SMB-Konfigurationszeilen ins Spiel.

Noch etwas: Die Windows-Firewall kann SMB-Verbindungen blockieren. Stellen Sie sicher, dass die Datei- und Druckerfreigabe in der Netzwerk-Firewall zugelassen ist. Gehen Sie unter Windows zu „Windows Defender Firewall“ > „Eine App oder ein Feature durch die Windows Defender Firewall zulassen “ und prüfen Sie, ob die Datei- und Druckerfreigabe aktiviert ist.

Abschließend ist zu beachten, dass die Freigabeberechtigungen wichtig sind: Stellen Sie sicher, dass das Benutzer- oder Gastkonto Zugriff auf den freigegebenen Ordner und Drucker hat. Manchmal kann es aufgrund von Berechtigungseinschränkungen in Windows oder eines auf „Öffentlich“ eingestellten Netzwerkprofils zu Problemen kommen.

Die SMB-Verbindung kann manchmal etwas knifflig sein, aber wenn man das Protokollproblem behebt und die korrekten Berechtigungen einstellt, klappt es meist beim zweiten oder dritten Versuch. Linux und Windows harmonieren nicht immer von Anfang an perfekt, aber mit diesen Anpassungen läuft es deutlich reibungsloser.

Zusammenfassung

  • Den Drucker unter Windows richtig freigeben – keine Leerzeichen im Freigabenamen.
  • Passen Sie die SMB-Protokollversionen in /etc/samba/smb.conf an.
  • Installieren Sie smbclient und überprüfen Sie die Freigaben von Linux aus.
  • Verwenden Sie die CUPS-Weboberfläche, um den Drucker mithilfe der SMB-URI hinzuzufügen.
  • Stellen Sie sicher, dass die Windows-Firewall SMB nicht blockiert.
  • Prüfen Sie die Protokolle, falls Fehler auftreten.

Zusammenfassung

Einen Windows-Drucker unter Linux zum Laufen zu bringen, kann mühsam sein, insbesondere wegen der Besonderheiten des SMB-Protokolls und der Berechtigungen. Sobald aber alles eingerichtet ist – SMB-Protokolle, Firewalls, der richtige Treiber – läuft es meist reibungslos. Hoffentlich spart diese Anleitung etwas Aufwand und ermöglicht es, den Drucker unter Linux ohne größere Probleme anzupingen. Ich drücke die Daumen, dass jemand die Einrichtung dadurch etwas schneller abschließen kann als beim letzten Mal.