LINUX:SAMBA-Utilisation des imprimantes du serveur

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche

retour au menu de Samba: serveur de fichiers

retour au menu de Gestion d'imprimantes


But

Si vous avez configuré des imprimantes gérées sur le serveur SAMBA par le service CUPS, elles peuvent être utilisées par les clients SMB comme Microsoft Windows. Nous nous baserons sur les imprimantes configurées dans l'article sur la Gestion d'imprimantes.


Configuration de Samba

A la configuration de Samba vue précédemment vue pour l'accès aux partages de fichiers, il faut ajouter la partie dédiée au partage des imprimantes.

Cette ajout est à mettre dans le fichier "/etc/samba/smb.conf":


[global]
...
 printing = cups
 printcap name = cups
 load printers = yes
 cups options = raw
...
[printers]
 comment = Tampon d'impression
 path = /produc/samba/printers
 printable = yes
 create mask = 0600
[print$]
 comment = Pilotes des imprimantes
 path = /produc/samba/drivers
 write list = printadmin root
 force group = printadmin
 create mask = 0664
 directory mask = 0775
...

Quelques explications:

  • Section global
    • printing=cups et printcap name=cups: service d'impression géré par CUPS
    • load printings=yes: Les imprimantes gérées par le service CUPS sont automatiquement ajoutées aux imprimantes partagées de SAMBA.
    • cups options=raw: Le pilote d'impression défini au niveau du service CUPS n'est pas utilisé; le fichier reçu est envoyé tel quel à l'imprimante. Dans ce cas, c'est le pilote lié à cette imprimante au niveau de Microsoft Windows qui est utilisé.
  • Section printers: service de tampon d'impression
    • path=/produc/samba/printers: répertoire où les fichiers d'impression venant du client SMB (par exemple Microsoft Windows) transitent avant d'être envoyés à l'imprimante concernée. Ce répertoire doit avoir tous les droits à spécifier avec la commande de ligne suivante: "chmod 777 /produc/samba/printers"
    • printable=yes: destination dédié à l'impression
    • create mask=0600: Le fichier à imprimé a les droits de l'utilisateur Linux qui s'est connecté et les droits exclusifs de lecture et écriture.
  • Section print$: service de mise à disposition des pilotes d'impression pour les clients SMB de Microsoft Windows
    • path=/produc/samba/drivers: répertoire où les pilotes de Microsoft Windows seront chargés
    • write list=printadmin root: Ce répertoire est accessible en écriture par les utilisateurs du grpoupe "printadmin" et de l'utilisateur ayant les droits administrateur au niveau de SAMBA (admin users), "root" dans notre cas.
    • force group=printadmin: Ce répertoire et son contenu appartient au groupe Linux "printadmin". La commande de ligne suivante permet de le spécifier: "chown -R root:printadmin /produc/samba/drivers"
    • create mask=0664: Tous les fichiers sous ce répertoires ont les droits de lecture et d'écriture pour le propriétaire "root" et le groupe "printadmin"; les les autres utilisateurs n'ont qu'un droit de lecture. La commande de ligne suivante permet d'initialiser ces droits au niveau du répertoire principal: "chmod 664 /produc/samba/drivers" Cette commande est à faire avant le lancement du service "smb.service". Le contenu de base sera généré automatiquement par ce service.
    • directory mask=0775: Au niveau des répertoires, nous trouvons les mêmes droits accompagnés du droits d'exécution nécessaire au niveau des répertoires.


Après ces modifications, le service "smb.service" est à relancer:

systemctl restart smb.service

Il faut quelques minutes avant que ces nouveaux services d'impressions n'apparaissent.


Remarque: Si vous rencontrez des problèmes, SAMBA peut être réinitialisé. Il faut arrêter le service SAMBA. Ensuite on efface tous les fichiers sous le répertoire "/var/lib/samba" sauf ceux du sous-répertoire "/var/lib/samba/private" qui contient les mots de passe des utilisateurs. On relance le service SAMBA. Evidemment si vous avez exécuté certaines commandes spéciales qui modifient le registre de SAMBA, il faut les refaire.


Explorateur de MS Windows

Sous Microsoft Windows, on lance l'explorateur de fichiers et on se place au niveau de la section "Réseau". On voit apparaître nos imprimantes.



Pilotes de Microsoft Windows

Il existe deux méthodes d'utilisation des pilotes liés à ces imprimantes réseaux au niveau de Microsoft Windows:

  • Soit en mode administrateur sur la machine client SMB sous MS Windows, on ajoute le pilote de l'imprimante concernée à partir du CD de pilotes fournis avec l'imprimante ou du téléchargement de ceux-ci à partir du site du fabricant de cette imprimante. Et ensuite on le lie à cette imprimante réseau. Cette opération est à faire sur chaque machine MS Windows client SMB. Cette configuration sera globale pour tous les utilisateurs de cette machine client.
  • Soit on effectue l'ajout de ces pilotes des imprimantes pour Microsoft Windows et on les lie aux imprimantes concernées sur le serveur SAMBA. Dès qu'un client SMB de MS Windows se connecte à une de ces imprimantes réseaux, le pilote concerné s'installera automatiquement sur la machine client SMB et se liera directement à cette imprimante. Mais cette configuration automatique ne sera valable que pour cet utilisateur. Si un autre utilisateur utilise cette même machine client, cette installation se refera aussi automatiquement. Remarquons cependant qu'en pratique, il n'y a souvent qu'un seul utilisateur par machine.


Nous allons décrire cette seconde méthode.


Version et processeur

Nous allons utiliser Microsoft Windows 11 Pro (64 bits) avec un processeur 64 bits. Nous nous limiterons aux versions de MS Windows 64 bits sur les processeurs de la marque Inter et AMD. Les pilotes chargés seront donc de cette famille 64 bits et se retrouveront sous Linux dans le répertoire "/produc/samba/drivers/x64". Si on veut un support, maintenant rare, pour un MS Windows 32 bits, il faudra utiliser une machine équipée de cette version 32 bits et les pilotes associés 32 bits.


Registre

Depuis la version 11 de MS Windows, une configuration comme nous l'envisageons, a été désactivée. Le programme de gestion que nous voulons utiliser, ne pourra pas visualiser les imprimantes d'une machine distante ni modifier les pilotes associés. Il faut exécuter une commande qui vont effectuer deux ajouts dans la base de registre de notre machine MS Windows.

On crée un fichier portant le nom par exemple "rpc-printer-printer.reg" qui contient les lignes:


Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Printers\RPC]
"RpcUseNamedPipeProtocol"=dword:00000001
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print]
"RpcAuthnLevelPrivacyEnabled"=dword:00000000

L'extension ".reg" est importante car en double cliquant sur ce fichier, le programme "regedit.exe" exécute son contenu et la base de registre est adaptée.


Une seconde modification analogue est nécessaire afin d'éviter l'apparition du message d'erreur "0x000006d1". On crée un fichier portant le nom par exemple "fix-printer.reg" qui contient les lignes:


Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Printers]
"ForceCSREMFDespooling"=dword:00000000

On effectue la même opération que ci-dessus.


Après ces modifications, il faudra redémarrer notre machine MS Windows.


Pilotes-téléchargement

Je me suis limité aux pilotes V3. J'ai eu un problème avec un pilote V4 même après modification de son fichier de configuration. Je n'ai pas insisté.


Il faut maintenant récupérer les pilotes. On les cherche sur Internet de préférence sur le site du fabriquant.


  • Virtual PDF

En ce qui concerne l'imprimante virtuelle PDF, on doit prendre un pilote PostScript. Nous avons choisi celui de HP Universal Printing PS.

On va à l'URL: https://support.hp.com/au-en/drivers/hp-universal-print-driver-series-for-windows/model/3271558

On choisit son système opératoire et dans liste retournée, on télécharge la version PostScript 64 bits. On décompresse ce fichier.


  • HP Envy Pro 6400

On cherche de la même façon le pilote de l'imprimante HP Envy Pro 6400 sur l'URL: https://support.hp.com/au-en/drivers/hp-envy-pro-6400-all-in-one-printer-series/29256678

On prend le fichier le plus complet "Offline".

On procède de la même façon. Comme le fichier compressé est un ".exe", on s'aide du programme 7-ZIP pour la décompression.


  • Brother HL-760

Cette imprimante étant très vieille, nous nous sommes rabattu sur un site générique: https://www.driverscape.com/download/brother-hl-760

Nous prenons la version 64 bits.


Pilote-problème

Pour le pilote de l'imprimante HP Envy Pro 6400, lors de l'essai de l'installation du pilote dans la phase qui suit, nous sommes confrontés au message d'erreur suivant:



Ceci provient d'une limitation de SAMBA. Le fichier de configuration présente diverses versions non supportées. Il faut modifier le fichier.

Voici le début du fichier "hpygid31.inf":


[Version]
Signature="$Windows NT$"
Provider=%HP%
ClassGUID={4D36E979-E325-11CE-BFC1-08002BE10318}
Class=Printer
DriverVer=11/12/2019,31.01.2001.7898
CatalogFile=hpygid31.cat
[Manufacturer]
%HP%=HP,NTx86.6.1,NTamd64.6.1,NTx86.6.2,NTamd64.6.2,NTx86.6.3,NTamd64.6.3
[HP.NTx86.6.1]
...
[HP.NTamd64.6.1]
...
[HP.NTx86.6.2]
...
[HP.NTamd64.6.2]
...
[HP.NTx86.6.3]
...
[HP.NTamd64.6.3]
...

Nous le modifions comme suit en ne gardant que la dernière version et en supprimant le n° de version (zones en gras). En effet seules les versions "NTx86" et "NTamd64" sont reconnues.


[Version]
Signature="$Windows NT$"
Provider=%HP%
ClassGUID={4D36E979-E325-11CE-BFC1-08002BE10318}
Class=Printer
DriverVer=11/12/2019,31.01.2001.7898
CatalogFile=hpygid31.cat
[Manufacturer]
%HP%=HP,NTx86,NTamd64
[HP.NTx86.6.1]
...
[HP.NTamd64.6.1]
...
[HP.NTx86.6.2]
...
[HP.NTamd64.6.2]
...
[HP.NTx86]
...
[HP.NTamd64]
....

Nous sauvons ce fichier. Les versions 6.1 et 6.2 ne sont plus accessibles.

Remarquez au passage que la ligne:


Class=Printer

nous renseigne qu'il s'agit d'un pilote pour imprimante.


Console

Microsoft Windows dispose d'une série de consoles pour configurer le système.

Nous allons utiliser cette de la Gestion de l'impression. Pour la lancer, nous exécution le programme "printmanagement.msc". Nous la trouvons parmi les Outils Windows dans les Panneaux de configuration sous le nom de Gestion de l'impression.


Utilisateur

Pour notre travail, nous avons besoin des droits administrateur de la machine MS Windows et de ceux de SAMBA.

L'administrateur de SAMBA selon notre configuration est l'utilisateur "root". Nous créons donc l'utilisateur "root" avec les droits administrateur sous MS Windows.

On se connecte avec ce nouvel utilisateur et on lance la console de Gestion de l'impression.

Si vous n'avez pas mis le même mot de passe de part et d'autre. Connectez-vous au serveur SAMBA via l'onglet Réseau de l'explorateur de fichiers et introduisez le mot de passe de l'utilisateur "root" sous SAMBA (pas celui de Linux!).


Ajout du serveur

Dans cette console, il faut en premier lieu ajouter notre serveur SAMBA. A gauche sur "Serveurs d'impression", on active le menu contextuel (bouton droit de la souris) et on clique sur "Ajouter/Supprimer des serveurs...". On ajoute notre serveur SAMBA qui se nomme dans notre exemple "SERVERDB" et on valide.



Ajout de pilotes

On développe ce nouveau serveur dans la colonne de gauche et si on clique ensuite sur "Pilotes". Dans cette vue, les pilotes sont déjà installés.



Si sur "Pilotes", on active le menu contextuel, on peut "Ajouter un pilote".



On arrive sur un écran où on ne va installer que les pilotes 64 bits ("x64"). On continue.



Ici on peut choisir son pilote. Si dans les pilotes disponibles, on ne trouve pas ce qui convient, on clique sur "Disque fourni", ce qui est notre cas.



Il faut alors trouver le répertoire où se trouvent notre pilote avec son fichier de configuration reconnaissable par un fichier ayant une extension ".inf". Notons que s'il y a plusieurs fichiers ".inf", on prend n'importe lequel; le programme va se débrouiller pour prendre le bon. On valide (bouton "OK").



On revient à la liste des pilotes mais maintenant seuls les pilotes du répertoire choisi y sont repris.



On choisi le pilote et on valide. L'installation du pilote démarre et normalement se clôture sans problème majeur.


Liaison des imprimantes aux pilotes

On développe le nouveau serveur dans la colonne de gauche et si on clique ensuite sur "Imprimantes"; on découvre nos imprimantes CUPS créées antérieurement. Dans cette vue, les pilotes ont déjà été liés.



Si on choisit une imprimante et qu'on visualise ses propriétés via le menu contextuel, on a accès à diverses informations. Le pilote est défini dans l'onglet "Avancé".



La liste déroulante au niveau du pilote permet de choisir le bon pilote.



Il suffit de valider notre choix.


Utilisation

Maintenant n'importe quel utilisateur authentifié peut installer une de ces imprimantes du serveur et ensuite l'utiliser à partir de n'importe quelle machine MS Windows du réseau.




retour au menu de Samba: serveur de fichiers

retour au menu de Gestion d'imprimantes