Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:drucken:drucker_einrichten]] 

Drucker einrichten

Grundsätzliches

Nachdem sich ein Benutzer an einem in der Domäne angemeldeter Rechner angemeldet hat, werden zunächst eines oder mehrere so genannte Anmelde-Skripte ausgeführt. Bei diesen Skripten handelt es sich meist um Windows-Batch-Dateien, es können aber auch andere Skriptsprachen zum Einsatz kommen, wie z.B. KiX o.ä. Wir befassen uns hier nur mit „normalen“ Windows Batch-Dateien. Diese Logonskripte befinden bei der PaedML 3.0 im Verzeichnis /home/samba/netlogon/ Das zentrale Musterlösungs-Skript ist die Datei common.bat diese wird nach den elementaren Logon-Einstellungen (logon.bat, login.bat) als letzes aufgerufen. Um bei Updates auf der sicheren Seite zu sein, fügt man am Ende der Datei common.bat eine Zeile der Form

if exist \\%SERVER%\netlogon\mylogon.bat call \\%SERVER%\netlogon\mylogon.bat

ein, damit nach der Datei common.bat die Befehle in der Datei mylogon.bat ausgeführt werden. In dieser Datei können nun eigene Einstellungen und Aktionen definiert werden.

Standarddrucker unter Windows setzen

Alternativ zum setzen des Standarddruckers mit Hilfe der Registry-Patches durch Rembo, kann man das beim Login auch Skriptgesteuert erledigen. Damit das funktioniert, bedarf es zweier Voraussetzungen:

  1. Alle Rechnernamen müssen den Raumnamen enthalten, beispielsweise r123-pc3
  2. Man benötigt ein kleines kostenloses Programm: adprintx.exe

Ist Voraussetzung 1 erfüllt, kann man mit einem Befehl der Art…

for /f "delims=- tokens=1" %%i in ("%COMPUTERNAME%") do set ROOM=%%i \\

(Hinweis: Diese Befehlszeile ist standardmäßig in der common.bat bereits eingetragen und kann bei Bedarf aktiviert werden.)
… in der Batch-Datei den Computernamen am „-“Zeichen aufspalten und erhält so den Raum, in dem sich der Rechner befindet.

Anmerkung 1 : mit tokens=2 erhält man den String nach dem „-“Zeichen.

Anmerkung 2 : die doppelten Prozentzeichen ohne Abstand eingeben!!!

…oder einfacher mit…

set raum = %computername:~0,4%

…weist beispielsweise der Variablen %raum% die ersten vier Zeichen der Variablen „computernamen“ zu.

Nun kann, falls alle Drucker bereits lokal eingerichet sind, anschließend für einen bestimmten Raum mit adprintx.exe der gewünschte Standarddrucker gesetzt werden:

if "%ROOM%"=="r123" \\%SERVER%\netlogon\adprintx.exe /d "HPLJ2100" 

Dabei ist „HPLJ2100“ der Windows Name des Druckers.

Drucker mit Wunschnamen auf Windows-Clients einrichten

Dies führt schon zum nächsten Problem: In der PaedML Linux 3.0 werden die Drucker als Internet-Drucker via CUPS eingerichtet. Gedruckt wird dabei an die „Internet-Adresse“

http://server:631/printers/Druckername

Und der Drucker heißt am Ende „Druckername an http….“ oder ähnlich unpraktisch. Diesen Namen kann man dann teilweise gar nicht oder nur in der Registry ändern.

Für einen „Raum-Wunschdruckernamen“ geht man so vor: Zuerst muss der Drucker unter CUPS https://servername:631/admin auf dem Server eingerichtet sein. Siehe dazu paedML 4.0-Administratorhandbuch.

Dann wird der Drucker zur Nutzung unter Windows beim Windowsstart per Kommandozeile, in der LML also mit einer zusätzlichen Zeile in der common.bat eingerichtet. Für einen Lexmark-Laser T522 z.B. kann die Zeile so lauten:

 if "%ROOM%"=="cr1" rundll32 printui.dll,PrintUIEntry /if /b "cr1-ps1" /f %windir%\inf\ntprint.inf /r "http://server:631/printers/lext522-1" /m "Apple Color Laserwriter 12/600"
   .

Dabei ist folgendes anzupassen:

* Option /b: Der Windows Name des neuen Druckers
* Option /r: Die Netzwerkadresse, an die gedruckt werden soll.
* Option /m: Eventuell der Treiber, der zu verwenden ist.

Der im Beispiel benutzte Windows-Apple-Treiber erzeugt Postscript, d.h., der Drucker muss unter CUPS zum Empfang von postscript auch einen passenden Treiber erhalten haben. Die vorhandenen Treiber kann man sich unter Windows in „Drucker und Faxgeräte → Serverinfo → Treiber“ anzeigen lassen.

Vorteile dieser Art der Druckereinrichtung:

  • Die Einrichtung läuft automatisch ab, weil XP den Treiber für den Apple Laserwriter vorhanden hat und ihn sich selbst aus dem Windowsunterverzeichnis …\i386 holt. Der Drucker muss also nicht vorher installiert sein in XP bzw. im Image vorhanden sein.
  • Wird an einem Printserver ein Drucker durch ein anderes Modell ersetzt, muss dieser nur bei Cups neu eingerichtet werden, die Befehlszeile in der common.bat bleibt jedoch gleich.
  • Für zusätzliche neue Drucker ist nur bei cups die Einrichtung und in der common.bat eine weitere Befehlzeile der obigen Art vonnöten, die XP-Installation bzw. das Image muss _nicht_ geändert werden!
  • Die Nutzer sehen außer dem FreePDF-Drucker zusätzlich nur noch den einzigen im Raum tatsächlich vorhandenen Papierdrucker und müssen diesen, weil der FreePDF-Drucker der Standarddrucker ist, ganz bewusst auswählen, wenn sie etwas auf Papier drucken wollen. (weniger Papierverschwendung!)

Nachteil: Diese Art der Druckereinrichtung erfordert lokal vorhandene Windows-Administratorrechte im Standardprofil, also für alle Benutzer.

Achtung: Vor jedem Neuschreiben des Windows-Image die Druckereinträge bis auf den pdf-Standarddrucker löschen, weil diese sonst als unschöne „tote“ Drucker von Windows „angeboten“ werden und bei den Nutzern für Verwirrung sorgen könnten. - Solche unschönen „vergessenen“ Drucker kann man hilfsweise jedoch auch via Eintrag in der common.bat beim Windowsstart löschen lassen, gerade so, wie es im folgenden Absatz beschrieben wird. Der Lösch-Eintrag muss natürlich _vor_ einer eventuellen Neuinstallationszeile erfolgen.

Löschen von Windows-Druckern per Kommandozeile

Die Befehlszeile …

 rundll32 printui.dll,PrintUIEntry /q /dl /n "<Druckername, wie er in Windows zu sehen ist>"

… löscht einen Drucker, falls er in der oben beschriebenen Weise bereits einmal eingerichtet wurde bzw. bereits vorhanden ist. (Ist der Drucker nicht vorhanden, wird die Abarbeitung des Befehls wegen der Option /q ohne Meldung beendet.)

Diese Zeile _vor_ die Druckereinrichtungszeile in der common.bat zu setzen, ist sinnvoll, weil sonst bei einer Ab- und erneuten Anmeldung unter Windows durch die erneute Abarbeitung der common.bat der Drucker zum zweiten Mal eingerichtet und unschönerweise unter Windows zweimal erscheinen würde.

Vorinstallierten Netzwerk-PDF-Drucker nutzen oder doch besser PDF-Drucker lokal installieren?

Den standardmäßig in der paedML bereits unter cups vorhandene pdf-Drucker kann man auch dynamisch in der oben beschriebenen Weise als Netzwerkdrucker einrichten.
Eventuell ist jedoch stattdessen eine lokale Installation eines anderen pdf-Druckers wie z.B. FreePDF oder pdf24 unter Windows sinnvoll, weil diese mehr Möglichkeiten bieten. (…Sammeln von mehren Druckaufträgen zu einer einzigen pdf-Datei, Umordnung von pdf-Dateiseiten durch erneuten Druck in eine pdf-Datei etc. )

Drucker und Druckertreiber per Samba verfügbar machen

Norman Meilick beschreibt das Vorgehen im myshn-Supportforum www.myshn.com :
Es ist rel. leicht möglich, in der LML3 die zusätzliche Ansteuerung der Drucker über Samba zu aktivieren (praktisch, weil z.B. so auch gleich die Treiber zur Verfügung gestellt werden können)
Kurzanleitung:
In etc/samba/smb.conf (bzw smb.conf.global) muss

 load printers = yes
 browseable = yes
 printing = cups
 printcap name = cups
 printer admin = administrator''

gesetzt sein.
In smb.conf.shares die folgenden Abschnitte:

  [printers]
  comment = All Printers
  browseable = no
  path = /tmp
  printable = yes
  public = no
  writable = no
  create mode = 0700
  admin users = @ntadmin, @domadmins, pgmadmin
 [print$]
  comment = Printer Drivers
  path = /var/lib/samba/printers
  browseable = yes
  read only = yes
  guest ok = no
  force group = printoperators
  create mask = 664
  directory mode = 775
  write list = @ntadmin, @domadmins, pgmadmin
  admin users = @ntadmin, @domadmins, pgmadmin

Nach dem Samba-Neustart kann es eine Weile dauern bis die Drucker auftauchen. Wenn diese da sind, kann man die Treiber installieren:

  1. Im Explorer den Server aufrufen: \\server
  2. Dort „Drucker und Faxgeräte“ (nicht die Drucker, die direkt unter \\server sichtbar sind!)
  3. Den jeweiligen Drucker rechtsklicken, Eigenschaften
  4. Sobald die Fehlermeldung kommt, dass der Drucker nicht angesprochen werden kann und angeboten wird, Treiber zu installieren, auf Nein(!) klicken.
  5. In den Druckeigenschaften unter Erweitert / Neuer Treiber den (oder die, falls es z.B. Windows 2000 und XP Clients gibt) Treiber hinzufügen
  6. Nachdem die Treiber hinzugefügt sind, kann man den Drucker mit Rechtsklick → Verbinden auf dem Client installieren. Die Treiber müsste dieser dabei automatisch laden. Den Installationsschritt kann man auch weglassen, wenn man die Druckerpatches (s.u.) verwendet, da das dabei automatisch passiert.

Anmerkung:

  1. Die Treiber müssen exakt wie oben beschrieben einmalig über Windows installiert werden!
  2. Dabei werden diese automatisch in die print$-Freigabe kopiert. Manuell geht das nicht.
  3. Ein Image muss nicht erzeugt werden.
  4. Der benutzte PC kann nach der Treiberinstallation wieder restauriert werden.
  5. Es geht nur darum, die Treiber hochzuladen, danach sind die Drucker überall verfügbar.
  6. Bei einigen Druckern (hier insb. Brother HL-5070 o.ä.) klappt das allerdings nicht mit allen Treibern (z.B. nur mit generischem statt Modellspezifischem Treiber), aber das ist dann trial & error.

Drucker in paedML 3 mit Rembo/mySHN patchen

Erzeugen Sie die Datei patches/map_printer.conf nach folgendem Schema(s.a. example_map_printers.conf):

 # Rechnername/IP/MAC     Druckerliste (& davor = Standarddrucker)
 *                        PDFCreator
 r100-*                  &R100 - HP LaserJet 2200N, R100 - HP DeskJet 960C
 r100-lehrer              R100 - HP ColorLaser 5500N, \\server\kyofs1800
 r200-*                   R200*, &R200 - HP LaserJet 2300N 
 r300-*,!r300-lehrer     &Lokal - HP DeskJet 640C
 r300-lehrer             &Lokal - HP LaserJet 1300
 r400-*                  &http://server:631/r400-br5800
 r500-lehrer             &Lokal - HP DeskJet 860C
 r500-*,!r500-lehrer     &\\r500-lehrer\hpdj860c
 # Erlaeuterung:
 # - Alle Rechner sehen den Drucker "PDFCreator".
 # - Alle Rechner in Raum 100 sehen zustzlich den HP 2200N und 960C, wobei der
 #   HP 2200N Standarddrucker sein soll.
 # - Der Lehrer-PC in R100 sieht zusaetzlich den 5500N Farblaser und einen
 #   ueber Windows oder Samba freigegebenen Kyocera Drucker am Server.
 # - Die Rechner in R200 sehen alle Drucker, deren Namen mit R200 anfaengt.
 #   Standarddrucker wird der 2300N (dieser muss explizit aufgefuehrt werden,
 #   da beim Standarddrucker keine Wildcards (* oder ?) zulaessig sind).
 # - In R300 haben alle Rechner ausser dem Lehrer-PC einen lokalen DJ 640C, der
 #   immer auch Standarddrucker ist.
 # - Der Lehrer-PC in R300 hat stattdessen einen lokalen HP 1300.
 # - Die Rechner in R400 erhalten einen Serverdrucker (HTTP Protokoll, z.B. Cups)
 # - Der Lehrer-PC in R500 hat einen lokale Tintenstrahler.
 # - Die anderen PCs in R500 verwenden den am Lehrer-PC freigegebenen Drucker.

Beachten Sie, dass das printers im Pfad wegfällt. Wenn Sie also im Windows einen Drucker http://server:631/printers/Name-des-Druckers hinzufügen, müsste dieser im Patch http://server:631/Name-des-Druckers heißen.

Anleitungen zur Druckernutzung in LML 2.3, auch in paedML 3.0 noch nutzbar

Dialog bleibt hängen beim Hinzufügen von Drucker mit http://server:631

Zur Lösung dieses Problems gibt es die Empfehlung der Hotline, als Browser hier den IE anstelle von Firefox zu nehmen. → siehe: Problem beim Anlegen von Druckern unter CUPS

 [[anwenderwiki:drucken:drucker_einrichten]] anwenderwiki/drucken/drucker_einrichten.txt · Zuletzt geändert: 2013/03/29 19:32 (Externe Bearbeitung)