Bug 27340 - Über Windows7 kann nicht aus dem notepad bzw. wordpad heraus gedruckt werden
Über Windows7 kann nicht aus dem notepad bzw. wordpad heraus gedruckt werden
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: Samba4
UCS 3.0
Other Linux
: P5 normal (vote)
: UCS 3.1
Assigned To: Arvid Requate
Stefan Gohmann
: interim-3
Depends on:
Blocks: 31624
  Show dependency treegraph
 
Reported: 2012-05-30 12:25 CEST by Felix Botner
Modified: 2013-06-03 23:54 CEST (History)
2 users (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments
log.samba.fail (232.87 KB, application/octet-stream)
2012-05-30 12:26 CEST, Felix Botner
Details
log.samba.ok (1.90 MB, application/octet-stream)
2012-05-30 12:27 CEST, Felix Botner
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Felix Botner univentionstaff 2012-05-30 12:25:53 CEST
Ich habe ein Samba4 DC Slave (amd64) und ein in dessen Domäne gejointes Windows7 (amd64). Auf dem Slave wurden zwei Drucker eingerichtet (PDF Drucker und HPTechnik). Auf beiden kann ich mind. über acroread, notepad  und wordpad nicht drucken. Über den IE funktioniert es jedoch.

Im Anhang zwei mal die log.samba (debug/level=4) für je einen erfolgreichen Versuch (IE) und einen Fehlschlag (notpad) beim Drucken.
Comment 1 Felix Botner univentionstaff 2012-05-30 12:26:48 CEST
Created attachment 4407 [details]
log.samba.fail
Comment 2 Felix Botner univentionstaff 2012-05-30 12:27:07 CEST
Created attachment 4408 [details]
log.samba.ok
Comment 3 Felix Botner univentionstaff 2012-05-30 12:37:28 CEST
Acroread funktioniert.
Comment 4 Stefan Gohmann univentionstaff 2012-07-17 17:09:46 CEST
UCS 3.1 will be the next release.
Comment 5 Arvid Requate univentionstaff 2012-10-11 18:48:41 CEST
Das Problem tritt bei solchen Druckern auf, für die keine Treiber am Print-Share hinterlegt sind. Wenn das serverseitige Hinterlegen von Druckertreibern keine Option ist, dann man als Workaround für jeden Drucker dieser Art jeweils zwei Zeilen in /etc/samba/local.conf eintragen:

[speziellerdruckername]
        use client driver = Yes

und danach ucr commit /etc/samba/smb.conf; /etc/init.d/samba restart; ausführen.

Einen wichtigen Hinweis gibt die smb.conf Manpage dazu:
Man darf bei jedem Drucker anscheinend nur das eine oder das andere tun:
Entweder "use client driver" oder einen serverseitig hinterlegten
Druckertreiber mit dem Drucker *verknüpfen*. Das bedeutet, dass der
Admin die Drucker an den Clients einheitlich eingebunden haben muss (!).

==============================================================================
       use client driver (S)

           This parameter applies only to Windows NT/2000 clients.
           It has no effect on Windows 95/98/ME clients.
           When serving a printer to Windows NT/2000 clients without
           first installing a valid printer driver on the Samba host,
           the client will be required to install a local printer
           driver. From this point on, the client will treat the printer
           as a local printer and not a network printer connection.
           This is much the same behavior that will occur when
           disable spoolss = yes.

           The differentiating factor is that under normal circumstances,
           the NT/2000 client will attempt to open the network printer
           using MS-RPC. The problem is that because the client considers
           the printer to be local, it will attempt to issue the
           OpenPrinterEx() call requesting access rights associated
           with the logged on user. If the user possesses local administator
           rights but not root privilege on the Samba host (often the case),
           the OpenPrinterEx() call will fail. The result is that the client
           will now display an "Access Denied; Unable to connect" message in
           the printer queue window (even though jobs may successfully be
           printed).

           If this parameter is enabled for a printer, then any attempt to
           open the printer with the PRINTER_ACCESS_ADMINISTER right is
           mapped to PRINTER_ACCESS_USE instead. Thus allowing the
           OpenPrinterEx() call to succeed. This parameter MUST not be
           enabled on a print share which has valid print driver installed
           on the Samba server.

           Default: use client driver = no
==============================================================================

Anmerkung: Bei Windows 7 Druck aus Notepad erhält man keine Fehlermeldung
           und der Druckjob ist nicht erfolgreich sondern "versackt".


PS: Kurze Notiz zum Thema Druckertreiber hochladen, was insbesondere von Windows 7 x64-Systemen aus nicht gut dokumentiert ist:

 * Die generelle Anleitung für Windows XP
   http://www.samba.org/samba/docs/man/Samba-Guide/happy.html#id2582657
   gilt für x64 (Windows 7) Systeme in etwas modifizierter Form:
   1. Druckertreiber x64 und x86 (!) downloaden.
   2. Explorer > Netwerkumgebung > UCS-Server [click]
   3. In der oberen Menüleiste "Remotedrucker anzeigen" auswählen
   4. Rechtsclick auf die freie Fläche "Servereigenschaften...",
      Reiter "Teiber" > Hinzufügen > Weiter > x86 und x64 auswählen
      > Datenträger > .inf Datei aus den heruntergeladenen x64-Treibern
      auswählen. > Ok > Fertig stellen
      Dann werden die x64-Treiber zum Print-Share des Servers hochgeladen.
      Bei der folgenden Rückfrage nach x86-Treiber Speicherort der .inf Datei
      für x86 auswählen, Dann werden die x86-Treiber hochgeladen.
      Nun sind die Treiber auf dem Server hinterlegt (/var/lib/samba/printers).
      Dialog Schließen.
   5. Dann geht's weiter nach der oben verlinkten Web-Anleitung für XP, nur
      kann man dann den Treiber aus einem Dropdown wählen. Also im Detail:
      Links-Klick auf den Drucker, dann Rechts-Klick > Eigenschaften
      Reiter "Erweitert" > Treiber aus Dropdown auswählen > OK/Übernehmen
      Wichtig: Popupdialog erscheint "Vertrauen Sie diesem Drucker?"
      Antwort: "Treiber installieren".
      Jetzt werden die auf dem Server hinterlegten Treiber für die lokale
      Architektur *heruntergeladen*.

      Wenn man Schritt 4 auslässt, kann man in Schritt 5 nur x86-Treiber
      uploaden, die dann aber später für den lokalen Client nicht verwendbar
      sind. Der Dowload entfällt somit und Windows hat dann weiterhin keinen
      Treiber für den Drucker installiert, sprich er ist nicht nutzbar.
Comment 6 Stefan Gohmann univentionstaff 2012-10-16 15:31:51 CEST
Ich denke wir sollten das dem Admin transparent in dem UDM Modul anzeigen und dann über das Listener Modul in die Config schreiben.

Ich glaube sonst wird das immer wieder zu Anfragen und Problemen führen. Der Default sollte IMHO pro Drucker dann "use client driver = yes" sein.
Comment 7 Arvid Requate univentionstaff 2012-11-06 14:31:41 CET
Das UDM Modul shares/printer bietet jetzt eine Option "Clientseitigen Windows Treiber verwenden" ("Use Windows client driver"), die auf das LDAP-Attribut univentionPrinterUseClientCriver abgebildet und durch den cups-printers.py Listener ausgewertet wird.
Comment 8 Stefan Gohmann univentionstaff 2012-11-13 13:27:05 CET
OK, die Konfigurationen werden richtig geschrieben. Drucken ist möglich.

Changelog OK
Comment 9 Moritz Muehlenhoff univentionstaff 2012-11-21 13:16:06 CET
Ich finde den Namen irreführend (sie stammt aus dem ebenso irreführenden Samba-Optionsnamen).

Ich glaube "Druckertreiber-Einrichtung auf Windows-Clients erlauben" trifft es besser.
Comment 10 Arvid Requate univentionstaff 2012-11-21 14:09:26 CET
Hmm ggf. "Ohne serverseitig hinterlegte Druckertreiber"
Comment 11 Stefan Gohmann univentionstaff 2012-12-12 21:09:57 CET
UCS 3.1-0 has been released: 
 http://forum.univention.de/viewtopic.php?f=54&t=2125

If this error occurs again, please use "Clone This Bug".