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.
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:
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.
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:
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.
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.
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. )
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:
Anmerkung:
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.
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