Stampa da Linux a una stampante condivisa Windows

Questo articolo spiega come connettersi e stampare da un computer Linux a una stampante condivisa connessa a un host Windows.

  1. Il primo passo è condividere la stampante su un computer Windows a cui è connessa. Apri le proprietà della stampante, vai al fileCondivisionescheda, abilitare ilCondividi questa stampanteopzione e specificare il nome della stampante condivisa (il nome non deve contenere spazi o caratteri speciali);
  2. Crea un nuovo utente localewinusr1. Rimuovere un utente dal gruppo Utenti locale, impostare la password in modo che non scada mai e impedire la modifica della password.

    È possibile utilizzare PowerShell per creare un utente locale con le impostazioni specificate:
    $pass = ConvertTo-SecureString "pass2024W0rd-" -AsPlainText -Force
    New-LocalUser -Name winusr1 -Password $pass -PasswordNeverExpires -UserMayNotChangePassword
    Remove-LocalGroupMember -Group Users -Member winusr1

Per impostazione predefinita, per connettere le stampanti Windows condivise viene utilizzato il protocollo SMB. Installa ilsmbclientper verificare se è possibile accedere in remoto alla stampante condivisa sull'host Windows da Linux:

Su Ubuntu/Debian esegui il comando:

$ sudo apt install smbclient

Elenca le condivisioni SMB su un computer Windows remoto

$ smbclient -L \\192.168.31.94 -U winusr1

  • 192.168.31.94 – Indirizzo IP o nome host del computer Windows
  • winusr1: nome utente Windows locale

Questo comando elenca le cartelle di rete condivise (incluse le condivisioni amministrative) e le stampanti.

Dalla console è possibile verificare la disponibilità di una stampante SMB e inviare un file da stampare:

$ smbclient -W DOMAIN -U winusr1//192.168.31.94/HPM1530
Stampa il file specificato:
smb: \> print /home/sysops/test.txt
printing file test.txt as test.txt (856,2 kb/s)
smb: \> quit

Il modo più semplice per accedere e gestire le stampanti di rete in Linux è utilizzare il sistema di stampa Common UNIX integrato (TAZZE). L'interfaccia web system-config-printer viene utilizzata per gestire CUPS.

CUPS e system-config-printer sono installati per impostazione predefinita sulla maggior parte delle distribuzioni desktop Linux. Controllare e installare se necessario:

$ dpkg -l cups
$ dpkg -l system-config-printer
$ systemctl status cups

Lettura consigliata:Come modificare la porta della stampante per risolvere i problemi di stampa in Windows 11

Ora collega una stampante di rete condivisa da Linux:

  1. Passare al seguente URL nel browser per aprire l'interfaccia web di CUPSlocalhost:631;
  2. Vai aAmministrazione->Aggiungi stampante->Altre stampanti di rete->Windows Printer via SAMBA;
  3. Utilizzare il seguente formato per specificare le impostazioni di connessione della stampante condivisasmb://winusr1:[email protected]/HPM1530(Questa stringa include il nome utente e la password, il nome host/IP remoto di Windows e il nome della stampante condivisa);
  4. Quindi impostare il nome e la descrizione della stampante;
  5. Successivamente, CUPS ti chiederà di selezionare il produttore e il modello della stampante. L'elenco dei driver può essere piuttosto lungo. Utilizzare il comando seguente per trovare rapidamente il nome del driver in base al modello di stampante:$ lpinfo -m| grep 1536
    Seleziona il driver che hai trovato in CUPS.
  6. L'installazione della stampante condivisa è completata.

Dove puoi trovare i driver di stampa CUPS per Linux? Nel caso delle stampanti HP, ad esempio, la maggior parte delle distribuzioni Linux sono dotate del sistema di stampa e imaging HP Linux (HPLIP) pacchetto preinstallato. Include i driver per la maggior parte delle stampanti HP.

$ dpkg -l hplip

È possibile installare manualmente il pacchetto HPLIP:

$ sudo apt install hplip hplip-gui

Anche altri fornitori potrebbero rilasciare pacchetti driver simili oppure potresti riuscire a trovare un file PPD predefinito per una stampante specifica. È anche possibile utilizzare ilfoomaticLibreria dei driver della stampante PPD (installata automaticamente sul desktop Ubuntu):

$ apt install foomatic-db-compressed-ppds

Il primo tentativo di stampare un documento da Linux su una stampante Windows condivisa è fallito nel mio caso con un errore. Controlla la presenza di errori in /var/log/cups/error_log:

E [Job 13] SMB connection failed!
E [Job 13] Unable to connect to CIFS host: NT_STATUS_IO_TIMEOUT

Ciò indica che CUPS non può connettersi alla cartella SMB della stampante sul computer Windows. In questo caso, il problema è che Linux smbclient tenta di utilizzare il protocollo SMB 1.0 per accedere alle stampanti condivise. La versione SMB 1.0 è disabilitata su Windows 10 e 11 e tale connessione verrà rifiutata.

Modifica il file/etc/samba/smb.confper fare in modo che il client SMB Linux utilizzi una versione SMB 2 o 3 più sicura per le connessioni. Nel[globale]sezione, aggiungere le seguenti righe:

client min protocol = SMB2
client max protocol = SMB3

Riavvia CUPS:

$ sudo systemctl restart cups

Il client Linux ora può stampare correttamente su una stampante condivisa sul computer Windows.

Puoi anche connetterti a una stampante Windows condivisa dalla riga di comando. Il primo passo è trovare il nome del driver per il modello della tua stampante:

$ lpinfo --make-and-model '1536' -m

Copia il nome completo del driver e collega la stampante SMB:

$ sudo lpadmin -p HP1536mfp -v smb://winusr1:[email protected]/HPM1536 -m postscript-hp:0/ppd/hplip/HP/hp-laserjet_m1530_mfp_series-ps.ppd

Abilita la stampante CUPS su Linux:

$ cupsenable HP1536mfp

Elenco stampanti:

$ lpsatat -v
$ lpstat -p

L'elenco delle stampanti SMB collegate è archiviato nel file/etc/cups/printers.conffile. Tieni presente che il nome utente e la password di Windows che utilizzi per connetterti alla stampante sono archiviati qui in formato testo normale (quindi questo utente deve disporre di autorizzazioni minime sul computer Windows).

Related Posts