Problème lors de l'installation d'une imprimante via cups et samba

Bonjour à tous,

J’ai mis en place un serveur d’impressions sur lequel je partage mes imprimantes via cups et samba, le problème est que lorsque je double clique depuis windows sur une de mes imprimantes windows commence la copie et l’installation du driver puis me demande si j’autorise l’installation je dis oui et la il me dit “connexion à l’imprimante impossible, code erreur 0x000000d8”

voici mes paramètres samba smb.conf :


======================= Global Settings =======================
[global]
workgroup = TEST
realm = TEST.LOCAL
preferred master = no
server string = Samba Server version %v
security = ADS
encrypt passwords = yes
log level = 3
log file = /var/log/samba/%m
max log size = 50
printcap name = cups
printing = cups
winbind enum users = Yes
winbind enum groups = Yes
winbind use default domain = Yes
winbind nested groups = Yes
winbind separator = /
netbios name = SRV-SMB-TEST
idmap config * : range = 10000-20000
idmap config * : backend = tdb
template shell = /bin/bash
#template homedir = /partage/scan/%u
load printers = Yes
printing = cups
printcap name = cups
force printername = yes
enable privileges = yes

======================= Printing ===============================

load printers = yes

printing = cups
printcap name = cups
printer admin = root

======================= Share Definitions =======================

[SCAN]
comment = Dossier Scan
path = /partage/scan
read only = no
writable = yes
browseable = no

[Partage]
comment = Dossier de transfert des fichiers
path = /home/pi/partage
read only = no
writable = yes
browseable = yes

[printers]
comment = All Printers
browseable = yes
path = /var/spool/samba
printable = yes
read only = no
printer admin = root
use client driver = no

[print$]
comment = Printer Drivers
path = /usr/share/cups/drivers
browseable = yes
read only = no
guest ok = yes
writable = yes
inherit permissions = yes

[Driver windows]
comment = Dossier de transfert des fichiers
path = /usr/share/cups/drivers/x64
read only = no
writable = yes
browseable = yes
guest ok = yes


et sinon voici ce que j’obtiens quand je fais un testparm :


Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
WARNING: The “enable privileges” option is deprecated
Unknown parameter encountered: "printer admin"
Ignoring unknown parameter "printer admin"
Processing section "[SCAN]"
Processing section "[Partage]"
Processing section "[printers]"
Unknown parameter encountered: "printer admin"
Ignoring unknown parameter "printer admin"
Processing section "[print$]"
Processing section "[Driver windows]"
Loaded services file OK.
WARNING: You have some share names that are longer than 12 characters.
These may not be accessible to some older clients.
(Eg. Windows9x, WindowsMe, and smbclient prior to Samba 3.0.)
Server role: ROLE_DOMAIN_MEMBER


Voici ce que j’obtiens quand je fais un cupsaddsmb :


NT_STATUS_OBJECT_NAME_COLLISION making remote directory \x64
putting file /tmp/00a4959eada31 as \x64/HP_Color_LaserJet_MFP_M477fdn.ppd (19905,3 kb/s) (average 19905,7 kb/s)
putting file /usr/share/cups/drivers/x64/ps5ui.dll as \x64/ps5ui.dll (0,0 kb/s) (average 14218,3 kb/s)
putting file /usr/share/cups/drivers/x64/pscript.hlp as \x64/pscript.hlp (0,0 kb/s) (average 11058,7 kb/s)
putting file /usr/share/cups/drivers/x64/pscript.ntf as \x64/pscript.ntf (0,0 kb/s) (average 9048,0 kb/s)
putting file /usr/share/cups/drivers/x64/pscript5.dll as \x64/pscript5.dll (0,0 kb/s) (average 7656,0 kb/s)

Running command: smbclient //192.168.0.200/print$ -N -A /tmp/00a4959e9af4e -c 'put /usr/share/cups/drivers/x64/cups6.ini x64/cups6.ini;put /usr/share/cups/drivers/x64/cupsps6.dll x64/cupsps6.dll;put /usr/share/cups/drivers/x64/cupsui6.dll x64/cupsui6.dll’
WARNING: The “enable privileges” option is deprecated
Unknown parameter encountered: "printer admin"
Ignoring unknown parameter "printer admin"
Domain=[TEST] OS=[Windows 6.1] Server=[Samba 4.5.8-Debian]
putting file /usr/share/cups/drivers/x64/cups6.ini as \x64/cups6.ini (0,0 kb/s) (average 0,0 kb/s)
putting file /usr/share/cups/drivers/x64/cupsps6.dll as \x64/cupsps6.dll (0,0 kb/s) (average 0,0 kb/s)
putting file /usr/share/cups/drivers/x64/cupsui6.dll as \x64/cupsui6.dll (0,0 kb/s) (average 0,0 kb/s)

Running command: rpcclient 192.168.0.200 -N -A /tmp/00a4959e9af4e -c 'adddriver “Windows x64” “HP_Color_LaserJet_MFP_M477fdn:pscript5.dll:HP_Color_LaserJet_MFP_M477fdn.ppd:ps5ui.dll:pscript.hlp:NULL:RAW:pscript5.dll,HP_Color_LaserJet_MFP_M477fdn.ppd,ps5ui.dll,pscript.hlp,pscript.ntf,cups6.ini,cupsps6.dll,cupsui6.dll”'
Unknown parameter encountered: "printer admin"
Ignoring unknown parameter "printer admin"
Printer Driver HP_Color_LaserJet_MFP_M477fdn successfully installed.

Warning, no Windows 2000 printer drivers are installed.
Running command: rpcclient 192.168.0.200 -N -A /tmp/00a4959e9af4e -c 'setdriver HP_Color_LaserJet_MFP_M477fdn HP_Color_LaserJet_MFP_M477fdn’
Unknown parameter encountered: "printer admin"
Ignoring unknown parameter "printer admin"
Successfully set HP_Color_LaserJet_MFP_M477fdn to driver HP_Color_LaserJet_MFP_M477fdn.

Running command: smbclient //192.168.0.236/print$ -N -A /tmp/00a4959ec7c79 -c 'mkdir x64;put /tmp/00a4959ec6a62 x64/Samsung_M4070.ppd;put /usr/share/cups/drivers/x64/ps5ui.dll x64/ps5ui.dll;put /usr/share/cups/drivers/x64/pscript.hlp x64/pscript.hlp;put /usr/share/cups/drivers/x64/pscript.ntf x64/pscript.ntf;put /usr/share/cups/drivers/x64/pscript5.dll x64/pscript5.dll’
WARNING: The “enable privileges” option is deprecated
Unknown parameter encountered: "printer admin"
Ignoring unknown parameter "printer admin"
Domain=[TEST] OS=[Windows 6.1] Server=[Samba 4.5.8-Debian]
NT_STATUS_OBJECT_NAME_COLLISION making remote directory \x64
putting file /tmp/00a4959ec6a62 as \x64/Samsung_M4070.ppd (20916,4 kb/s) (average 20916,8 kb/s)
putting file /usr/share/cups/drivers/x64/ps5ui.dll as \x64/ps5ui.dll (0,0 kb/s) (average 14940,6 kb/s)
putting file /usr/share/cups/drivers/x64/pscript.hlp as \x64/pscript.hlp (0,0 kb/s) (average 11620,4 kb/s)
putting file /usr/share/cups/drivers/x64/pscript.ntf as \x64/pscript.ntf (0,0 kb/s) (average 9507,6 kb/s)
putting file /usr/share/cups/drivers/x64/pscript5.dll as \x64/pscript5.dll (0,0 kb/s) (average 8044,9 kb/s)

Running command: smbclient //192.168.0.200/print$ -N -A /tmp/00a4959ec7c79 -c 'put /usr/share/cups/drivers/x64/cups6.ini x64/cups6.ini;put /usr/share/cups/drivers/x64/cupsps6.dll x64/cupsps6.dll;put /usr/share/cups/drivers/x64/cupsui6.dll x64/cupsui6.dll’
WARNING: The “enable privileges” option is deprecated
Unknown parameter encountered: "printer admin"
Ignoring unknown parameter "printer admin"
Domain=[TEST] OS=[Windows 6.1] Server=[Samba 4.5.8-Debian]
putting file /usr/share/cups/drivers/x64/cups6.ini as \x64/cups6.ini (0,0 kb/s) (average 0,0 kb/s)
putting file /usr/share/cups/drivers/x64/cupsps6.dll as \x64/cupsps6.dll (0,0 kb/s) (average 0,0 kb/s)
putting file /usr/share/cups/drivers/x64/cupsui6.dll as \x64/cupsui6.dll (0,0 kb/s) (average 0,0 kb/s)

Running command: rpcclient 192.168.0.200 -N -A /tmp/00a4959ec7c79 -c 'adddriver “Windows x64” “Samsung_M4070:pscript5.dll:Samsung_M4070.ppd:ps5ui.dll:pscript.hlp:NULL:RAW:pscript5.dll,Samsung_M4070.ppd,ps5ui.dll,pscript.hlp,pscript.ntf,cups6.ini,cupsps6.dll,cupsui6.dll”'
Unknown parameter encountered: "printer admin"
Ignoring unknown parameter "printer admin"
Printer Driver Samsung_M4070 successfully installed.

Warning, no Windows 2000 printer drivers are installed.
Running command: rpcclient 192.168.0.200 -N -A /tmp/00a4959ec7c79 -c 'setdriver Samsung_M4070 Samsung_M4070’
Unknown parameter encountered: "printer admin"
Ignoring unknown parameter "printer admin"
Successfully set Samsung_M4070 to driver Samsung_M4070.


Si certains ont des idées je les acceptes avec plaisir car je ne sais vraiment plus quoi faire
merci d’avance

Bonjour,

Je suis dans le même problème que toi, et malheureusement malgré mes recherches j’ai pas trouvé de solution a part installer l’imprimante via le panneau “périphériques et imprimantes” en manuel. Donc je rejoins ce fil pour voir si une âme charitable nous donne la solution. D’après mes tests j’ai pas eu de problème sur un windows 32 bits mais le drame en 64 bits :scream: je pense que c’est un bug mais pas pu vérifier.

la version de windows que ce soit en 32 ou 64 bit n’impact pas le fonctionnement je pense vu que cela dépend des drivers windows que tu exportes sur ton cups

Je lance un dernier appel a l’aide au cas ou quelqu’un verrait ce sujet

Bonjour,

Je viens de refaire les test sur une vm windows 7 et windows 10 x 64 avec un serveur cups et pas de soucis sa fonctionne donc je vais essayer de t’aider.

Déjà ton option printer admin = root est obsolète donc tu peux commenter cette ligne.

Ensuite je te conseille de changer le path de ta section

[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
browseable = yes
read only = no
guest ok = yes
writable = yes
inherit permissions = yes

Parce qu’il se trouve que lors de la commande cupsaddsmb -a -v cups copie les drivers vers le dossier samba defini dans ta section [print$]. Alors que c’est pour cela que cups rale [quote=“thomasc, post:1, topic:74815”]
NT_STATUS_OBJECT_NAME_COLLISION
[/quote]

Voila j’attends ton retour

Bonjour,
tout d’abord merci à toi d’essayer de m’aider.
J’ai essayé ce que tu m’as dis de faire et j’obtiens les messages suivants :

 sudo cupsaddsmb -U test -a -v
Un mot de passe pour test est nécessaire pour accéder à localhost via SAMBA :  
***************
Running command: smbclient //localhost/print$ -N -A /tmp/021d459f2c422 -c 'mkdir x64;put                                 
/tmp/021d459f59b4d x64/HP_Color_LaserJet_MFP_M477fdn.ppd;put 
/usr/share/cups/drivers/x64/ps5ui.dll x64/ps5ui.dll;put 
/usr/share/cups/drivers/x64/pscript.hlp x64/pscript.hlp;put 
/usr/share/cups/drivers/x64/pscript.ntf x64/pscript.ntf;put 
/usr/share/cups/drivers/x64/pscript5.dll x64/pscript5.dll'
 Domain=[TEST] OS=[Windows 6.1] Server=[Samba 4.5.12-Debian]
NT_STATUS_OBJECT_NAME_COLLISION making remote directory \x64
NT_STATUS_ACCESS_DENIED opening remote file 
\x64/HP_Color_LaserJet_MFP_M477fdn.ppd
NT_STATUS_ACCESS_DENIED opening remote file \x64/ps5ui.dll
NT_STATUS_ACCESS_DENIED opening remote file \x64/pscript.hlp
NT_STATUS_ACCESS_DENIED opening remote file \x64/pscript.ntf
NT_STATUS_ACCESS_DENIED opening remote file \x64/pscript5.dll

Unable to copy 64-bit Windows printer driver files (1).
Running command: smbclient //localhost/print$ -N -A /tmp/021d459fe7343 -c 'mkdir x64;put 
/tmp/021d459f59b4d x64/HP_Color_LaserJet_MFP_M477fdn.ppd;put 
/usr/share/cups/drivers/x64/ps5ui.dll x64/ps5ui.dll;put 
/usr/share/cups/drivers/x64/pscript.hlp x64/pscript.hlp;put 
/usr/share/cups/drivers/x64/pscript.ntf x64/pscript.ntf;put 
/usr/share/cups/drivers/x64/pscript5.dll x64/pscript5.dll'
Domain=[TEST] OS=[Windows 6.1] Server=[Samba 4.5.12-Debian]
NT_STATUS_OBJECT_NAME_COLLISION making remote directory \x64
NT_STATUS_ACCESS_DENIED opening remote file 
\x64/HP_Color_LaserJet_MFP_M477fdn.ppd
NT_STATUS_ACCESS_DENIED opening remote file \x64/ps5ui.dll
NT_STATUS_ACCESS_DENIED opening remote file \x64/pscript.hlp
NT_STATUS_ACCESS_DENIED opening remote file \x64/pscript.ntf
NT_STATUS_ACCESS_DENIED opening remote file \x64/pscript5.dll

Unable to copy 64-bit Windows printer driver files (1).
Running command: smbclient //localhost/print$ -N -A /tmp/021d459f9cf3c -c 'mkdir x64;put 
/tmp/021d459f59b4d x64/HP_Color_LaserJet_MFP_M477fdn.ppd;put 
/usr/share/cups/drivers/x64/ps5ui.dll x64/ps5ui.dll;put 
/usr/share/cups/drivers/x64/pscript.hlp x64/pscript.hlp;put 
/usr/share/cups/drivers/x64/pscript.ntf x64/pscript.ntf;put 
/usr/share/cups/drivers/x64/pscript5.dll x64/pscript5.dll'
Domain=[TEST] OS=[Windows 6.1] Server=[Samba 4.5.12-Debian]
NT_STATUS_OBJECT_NAME_COLLISION making remote directory \x64
NT_STATUS_ACCESS_DENIED opening remote file 
\x64/HP_Color_LaserJet_MFP_M477fdn.ppd
NT_STATUS_ACCESS_DENIED opening remote file \x64/ps5ui.dll
NT_STATUS_ACCESS_DENIED opening remote file \x64/pscript.hlp
NT_STATUS_ACCESS_DENIED opening remote file \x64/pscript.ntf
NT_STATUS_ACCESS_DENIED opening remote file \x64/pscript5.dll

Unable to copy 64-bit Windows printer driver files (1).

Je pense que c’est un problème de droit mais je ne sais pas ou exactement

Bonjour,

Effectivement tu as problème de droit donc :

[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
browseable = yes
read only = no
guest ok = yes
writable = yes
inherit permissions = yes

ensuite tu crée le répertoire si tu la pas encore fait :

mkdir -p /var/lib/samba/drivers

Vide le dossier pour être sur de ne pas avoir de collisions avec les anciens drivers :

rm -rf /var/lib/samba/drivers/*

Ajout root a samba pour qu’il puisse exporter les drivers j’ai essayer comme toi avec un utilisateur ayant les droits il copies bien les drivers mais il me génère toujours une erreur en fin export tandis que root pas de soucis.

smbpasswd -a root

et enfin l’exportation de tout les imprimantes

cupsaddsmb -a -v -U root

normalement a la fin du devrais avoir un :

Successfully set (nom de l'imprimante)

Sur ton client windows tu devrais pouvoir installe ton imprimante.

j’ai effectué toute les manipulations avec succès, j’obtiens donc mon imprimante sur mon dossier partagé Windows mais j’ai toujours mon erreur de départ :

Windows ne peut se connecter à l'imprimante
L'opération à échoué avec l'erreur  0x000000d8

Je te remercie de ton aide mais cela ne fonctionne toujours pas. Si jamais tu as d’autres idées à me proposer je suis preneur, merci d’avance.

Bizarre normalement tu devrais pouvoir installe ton imprimante depuis windows. Sur quel windows tu travail ?

Ceci dit regarde si tu peux le rajoute de façon manuel via le menu périphérique et imprimante puis

ajouter une imprimante
ajouter une imprimante réseau
l’imprimante que je veux n’est pas répertoriée
Selectionner une imprimante partagée par nom
http://tonipservercups:631/printers/nomdeimprimante

SI tu arrive a te connecter et a imprimer depuis l’ajout manuel c’est bon il te restera plus qu’a entre dans la base de registre windows via regedit et de recherche et supprime toute les cles qui contient le nom de ton imprimante.
Car windows a toujours du mal a supprimer proprement les périphériques ou imprimantes.

Mon projet est pour une entreprise avec plusieurs centaines d’utilisateurs et plusieurs dizaines d’imprimante donc je cherche a ce que ce soit automatique sinon ca va etre long…

Je travaille sous windows 10 x64, j’ai essayé la manip que tu m’as dis de faire et ça ne fonctionne pas, il me dit que l’imprimante est introuvable et que je dois vérifier si l’imprimante est connecté et son adresse

Bonjour,

Ok je comprend mieux le problème, par contre il faut que tu arrive a te connecter sur l’imprimante de façon direct via ton serveur cups et après tu pourra tenter via samba. Je suis sur une vm windows 10 x 64 entreprise et pas de problème via les deux méthodes donc on va commencer par cups avant.

Il me faudrait ton fichier cupsd.conf pour verifier.

Le voila :

#Configuration file for the CUPS scheduler. See “man cupsd.conf” for a
#complete description of this file.

Log general information in error_log - change “warn” to “debug”

for troubleshooting…

LogLevel warn
PageLogFormat

Deactivate CUPS’ internal logrotating, as we provide a better one, especially

LogLevel debug2 gets usable now

MaxLogSize 0

Only listen for connections from the local machine.

Listen 631
Listen /var/run/cups/cups.sock

Show shared printers on the local network.

Browsing On
BrowseLocalProtocols dnssd

Default authentication type, when authentication is required…

DefaultAuthType Basic

Web interface setting…

WebInterface Yes

Restrict access to the server…

Order allow,deny allow all

Restrict access to the admin pages…

<Location /admin>
Order allow,deny
allow all

Restrict access to configuration files…

<Location /admin/conf>
AuthType Default
Require user @SYSTEM
Order allow,deny
allow all

Restrict access to log files…

<Location /admin/log>
AuthType Default
Require user @SYSTEM
Order allow,deny
allow all

Set the default printer/job policies…

# Job/subscription privacy... JobPrivateAccess default JobPrivateValues default SubscriptionPrivateAccess default SubscriptionPrivateValues default

Job-related operations must be done by the owner or an administrator…

Order deny,allow

<Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscriptio$
Require user @OWNER @SYSTEM
Order deny,allow

All administration operations require an administrator to authenticate…

AuthType Default Require user @SYSTEM Order deny,allow

All printer operations require a printer operator to authenticate…

<Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer $
AuthType Default
Require user @SYSTEM
Order deny,allow

Only the owner or an administrator can cancel or authenticate a job…

Require user @OWNER @SYSTEM Order deny,allow
Order deny,allow

Set the authenticated printer/job policies…

# Job/subscription privacy... JobPrivateAccess default JobPrivateValues default SubscriptionPrivateAccess default SubscriptionPrivateValues default

Job-related operations must be done by the owner or an administrator…

AuthType Default Order deny,allow

<Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscriptio$
AuthType Default
Require user @OWNER @SYSTEM
Order deny,allow

All administration operations require an administrator to authenticate…

AuthType Default Require user @SYSTEM Order deny,allow

All printer operations require a printer operator to authenticate…

<Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer $
AuthType Default
Require user @SYSTEM
Order deny,allow

Only the owner or an administrator can cancel or authenticate a job…

AuthType Default Require user @OWNER @SYSTEM Order deny,allow
Order deny,allow

J’ai regardé ton fichier cupsd.conf et tu a bien donné les droits a distance donc si tu n’a pas accès depuis un navigateur via l’adresse suivante :

http://ipservercups:631

Donc il te faudra vérifier ton firewall et si ton service est bien lançé.

iptables -L
systemctl status cups.service

J’ai bien accès à la page cups via l’adresse que tu as donné, mon firewall est ok et voici ce que donnes les deux commandes :
iptables -L :

Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

systemctl status cups.service :

● cups.service - CUPS Scheduler
   Loaded: loaded (/lib/systemd/system/cups.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2017-10-26 06:25:16 CEST; 9h ago
     Docs: man:cupsd(8)
 Main PID: 2101 (cupsd)
   CGroup: /system.slice/cups.service
           └─2101 /usr/sbin/cupsd -l
oct. 26 06:25:16 TEST systemd[1]: Started CUPS Scheduler.

Tout semble donc fontionner si je comprend bien

Tout semble ok cote cups si tu as bien accès cote windows donc tu devrais pouvoir ajouter l’imprimante de façon manuel.

Quelle est le nom de ton imprimante depuis cups

http://ipservercups:631/printers/

respect les minuscules et majuscules.

Voici le nom de mon imprimante :

HP_Color_LaserJet_MFP_M477fdn

Donc il te faudra ajouter l’imprimante :

http://ipservercups:631/printers/HP_Color_LaserJet_MFP_M477fdn
puis il te demandera un pilote qui sera : Generic - MS Publisher Color Printer

Ca fonctionne !!!
Merci déja pour cela, aurais tu maintenant une idée pour que je puisse installer de manière automatique sans passer par le panneau de configuration ?

Surtout que lorsque je double clique sur mon imprimante depuis mon dossier partagé il ne comprend pas que celle ci est deja installé et me propose d’installer à nouveau

Ok donc maintenant on va s’occuper de samba :

Il me faudrait ton fichier smb.conf pour voir les modifications que ta effectuer.