Home Themengebiete... Shell / Requester Backup

2.8 Drucken


2.8.1 Rprinter

Rprinter wird unter DOS und Windows 3.1x benutzt, um lokale Drucker auch im Netzwerk ansprechen zu können. Dazu wird Rprinter an der Arbeitsstation (als TSR) gestartet und signalisiert dem Print Server: Hier steht der Drucker Nummer x.

RPRINTER <PRINT SERVER NAME> <PRINTER #> [-P]

Die neueren Rprinter Versionen (ab Version 1.26) kann man mit dem Parameter -P im Pollingmode betreiben. Damit sind viele früheren Probleme auch unter Windows beseitigt.

Rprinter hat aber weiterhin das Problem, daß nach einem Neustart der WS die erneute Verbindung zum Printserver nicht wieder aufgebaut werden kann, bis der Pserver bemerkt hat, daß der Rprinter nicht mehr im Netz ist und die Verbindung wieder freigibt. Solange meldet dieser "Drucker schon belegt".

Dies kann man aber sehr einfach lösen, indem man den Errorlevel von Rprinter abfragt und eine Schleife bzw. eine Meldung anzeigt.

@echo off
rem -- Rprinter-Installation (Batch von Adreas Beutling)
if not "%2"=="" goto nohelp
echo Aufruf:  rprint druckserver druckernummer
echo Default: rprint drucker 0
:nohelp
rem -- Variablen einrichten
set rp=
set ps=%1
set pn=%2
if "%ps%"=="" set ps=drucker
if "%pn%"=="" set pn=0
goto install
:wait
rem hier kann man ein bißchen warten... z.B.: Wait 5
rem oder Choice dazu benutzen
:install
rem -- Rprinter entfernen
rprinter %ps% %pn% /r
rem -- Rprinter installieren
rem    (/p für Polling Mode)
rprinter %ps% %pn% /p
rem -- Schleifenzähler abfragen (hier für 10 Durchlaeufe)
if "%rp%"=="xxxxxxxxxx" goto ende
rem -- Schleifenzaehler erhöhen
set rp=%rp%x
rem -- Rprinter-Installation erfolgreich?
if errorlevel 1 goto wait
rem -- Status anzeigen
rprinter %ps% %pn% /s
:ende
rem -- Variablen löschen
set rp=
set ps=
set pn=

Die Prozedur kann (je nach Anzahl der Durchläufe) länger laufen, bricht den Vorgang dann aber ab, wenn ein anderer Rechner diesen Drucker "angemeldet" hat.

Als Software-Alternative bieten sich auch Fremdprodukte wie Lanspool oder IQ-Server von Infinity an. Das letzgenannte ist recht preiswert und versagt "fast" nie seinen Dienst, weder unter Windows noch unter anderen Anwendungen. Er kann neben den LPT-Ports auch die COM-Schnittstellen bedienen und ist etwa 5 mal schneller als der RPrinter. Den PServer kann man sich damit gleich mit sparen.

De weiteren gibt es auch externe Printserver, entweder intern für bestimmte (Laser-) Drucker oder als externes Modell für beliebige parallele oder serielle Drucker. Diese Printserver belegen je nach Einstellung keine oder eine Userconnection und machen erfahrungsgemäß die wenigsten Probleme.

2.8.2 HP4L an Novell 3.12

... ist korrekt eingerichtet, aber der Drucker wird nicht erkannt. Es erscheint immer folgende Meldung: LPT-Anschluss ist bereits aktiv, kann nicht benutzt werden! Nun ist der Lpt1-Port aber von keinem anderen Gerät belegt;

Habt ihr eine Netzwerkkarte auf 360h? Das überschneidet sich, falls die Druckerschnittstelle auf 378h liegt. (Netzwerkkarten belegen typischerweise 20h Adressen, also von 360-37f, was sich dann mit 378 überschneidet). Stell die Netzwerkkarte z.B. auf 300, 320 oder 340.

2.8.3 9 LPT's mit NW 3.1x und 4.x

Um unter Windows 3.1x mehr als drei LPT Ports verwenden zu können, muß als Client entweder die VLMs oder der neue Client32 eingesetzt werden, mit NETX funktioniert es nicht.

In der WIN.INI unter der Rubrik [PORTS] muß man folgendes erweitern:

[ports]
LPT1:=
LPT2:=
[...]
LPT9:=

Außerdem muß in der NET.CFG am Anfang

  LOCAL PRINTERS = 0   <bzw. die Anzahl der lokalen Drucker>
  NETWORK PRINTERS = 9

eingetragen werden.

Das reicht, um unter Windows mit dem Netware-Tool die 9 LPTs zu benutzen. Wenn man die 9 LPTs auch unter DOS ansprechen möchte, benötigt man noch den CAPTURE von Netware 4.x oder XCAPTURE von Lennart Koschella.

Bei Windows 95 und Windows NT kann man direkt in die Netware Print-Queue drucken und muß nur für Programme in der DOS-Box eine Umleitung über die LPTs verwenden. Dafür stehen aber schon standardmäßig LPT1-LPT9 zur Verfügung.

2.8.4 Druckerpuffer leeren

Wird in PCONSOLE ein aktiver Druckjob gelöscht, weil z.B. der falsche Drucker gewählt wurde, so stoppt der Ausdruck nicht sofort, weil in einem Puffer noch Daten hängen.

PCONSOLE -> Print Server Info -> Print Server Operator

Hier müssen einmalig alle gewünschten User als Operator eingetragen werden, die diesen Vorgang durchführen dürfen, sonst geht der nächste Schritt nicht.

dann in .. -> Status/Control -> Printer Status wechseln

Als Operator hat man jetzt rechts oben ein Feld, das man mit RETURN öffnen kann und mit ABORT PRINT JOB den aktiven Job abbrechen.

Alternative per Kommandozeile: PSC PS=printservername P=druckernummer ABort

2.8.5 Printcon job configurations

Printjob Konfigurationen werden zwar selten benötigt, aber wer sie braucht, steht vor dem Problem, daß sie normalerweise für jeden User einzeln eingerichtet werden müssen.

Um eine Print Job Konfiguration für alle Benutzer zu definieren, erstellt man als Supervisor eine Print Job Konfiguration, kopiert die printcon.dat aus \mail\1 nach \public und ändert SMODE für capture.exe und evtl. nprint.exe ab:

smode capture.exe 5 (search on all opens)).

Alle, die diese Konfiguration verwenden sollen, dürfen in ihren Home directory kein printcon.dat File stehen haben.

Alternative:

Man nimmt folgenden Part im System-Loginscript auf:

if USER_ID="1" then
#NCOPY \MAIL\1\PRINTCON.DAT \PUBLIC\
else
#NCOPY \PUBLIC\PRINTCON.DAT \MAIL\%USER_ID\
end

Zuerst wird die PRINTCON.DAT des Supervisors nach SYS:PUBLIC kopiert. Jeder andere Benutzer bekommt dann beim Anmelden diese PRINTCON.DAT in sein eigenes Verzeichnis kopiert.

2.8.6 Druck-Probleme bei Deskjet 5xx

Beim DeskJet 540 steht im Handbuch, daß man ihn weder im Netz noch mit einem automatischen Druckerumschalter benutzen soll/darf, da er sonst nicht richtig funktioniert.

Beim Deskjet 540 werden einige Schalter wie z.B. 'CLEAN','SELFTEST' etc .. des Control Panel, welches beim DJ 520 am Drucker angeordnet sind, per Software gesteuert und auch alle Statusmeldungen werden per Software vom Drucker zum Windows-Treiber oder Dos-Treiber in binärer Form übertragen und dort ausgewertet und gegebenenfalls angezeigt. Z.B. die Meldung OUT OF PAPER.

Für diesen 'Luxus' braucht der Deskjet 540 ein spezielles Centronics Kabel, um die Daten wie z.B. 'Der Deckel des Druckers ist auf' in Richtung Computer (Drucker-Treiber) zu übertragen.

Aus diesem Grund sollte der Drucker nicht am Fileserver als Netzwerkdrucker benutzt werden.

2.8.7 Deskjet 6.x Treiber im Peer to Peer

Frühere Versionen des DeskJet Treibers ermöglichten, das Produkt in einem Peer to Peer Netzwerk anderen Clients zu sharen.
Die Treiber Versionen 6.0B, 6.1D und 6.1E besitzen eine neue Architektur, weshalb er in seiner Standardkonfiguration im PtP-Netz nicht funktioniert. Es gibt aber für die meisten Fälle einen leicht zu installierenden Workaround. Zwei Bedingungen müssen jedoch erfüllt sein:

  1. Jeder Nutzer muß eine lokale Windows Installation besitzen und

  2. einige Einschränkungen im Betrieb des Druckers müssen hingenommen werden.

Installation:

Nutzer A: Drucker ist lokal angeschlossen
Nutzer B: Möchte Drucker geshared nutzen
Beide installieren den Treiber vom Programmanager aus mit dem Quick-Setup Programm (A:\setup/q). Nutzer B wird einige Fehlermeldungen erhalten, daß der Drucker nicht gefunden wurde. Das ist normal und braucht nur mit OK bestätigt werden.

Nach Installation des Treibers muß Nutzer A folgende Änderung vornehmen:

Die DESKJETC.INI im Verz. C:\Windows wird modifiziert, damit der Abschnitt [personalities] wie folgt aussieht:

[Personalities]
5MaxPersonalities=02
5PERS1=DESKJETC.DRV
5PERS2=HPVDOS.DLL
5PERS0=HPVDOS.DLL

Für den Deskjet 540 oder 600 muß in der DESKJETC.INI des Nutzers B folgende Änderung gemacht werden:

ändern von:         2colorupgrade=0000
nach                2colorupgrade=0200

Einschränkungen:

  1. Reinigen der Druckpatrone über Status Monitor kann nur von Nutzer A vorgenommen werden

  2. Fehler-Rückmeldungen wie "Papier alle" können von Nutzer B nicht empfangen werden. Er erhält unabhängig vom tatsächlichen Fehler immer "Port not responding" angezeigt.

  3. Für DJ 500C, 540C oder 600C wird keine Meldung über den notwendigen Wechsel der Druckpatrone angezeigt. Der Drucker druckt die Daten mit der jeweils im Drucker eingesetzten Patrone. Ein Farbbild etwa wird bei eingebauter Schwarzpatrone in Graustufen gedruckt, ohne daß eine Fehlermeldung erscheint.

2.8.8 Probleme beim Drucken

< TopTen! >

Probleme beim Drucken unter DOS haben meistens drei Ursachen:

CAPTURE - Anweisung:

Oft fehlen neben den erforderlichen Parametern noch weitere:

NT

No-Tab-Conversion: Graphikausdrucke sehen jetzt wieder vernünftig aus, weil Novell keine Konvertierung von Tabs in Leerzeichen vornimmt

NB

No-Banner: dadurch wird der Ausdruck eines Deckblattes unterdrückt

NFF

No-Form-Feed: Leerseiten, die evtl. jedes zweite Blatt erfolgen, werden unterdrückt

TI=10

Time-Out: Der Ausdruck wird nach 10 Sek. ausgegeben (evtl. Wert anpassen) und nicht erst nach dem Verlassen des Programms

Unter Windows oder anderen Programmen, die die parallele Schnittstelle nach dem Druck schließen, ist allerdings TI=0 zu empfehlen, da der Ausdruck dann wirklich sofort nach dem Wegschicken kommt.

alter Printserver:

bei allen Versionen unter Netware 4.10 sollte man den Printserver gegen eine aktualisierte Version austauschen.

inkompatible parallele Schnittstelle:

"Billig"-Schnittstellen unterstützen den IRQ nicht korrekt. Falls der Ausdruck am Server oder RPRINTER quälend langsam ist, sollte entweder auf Polling umschalten (am Server Use Interrupts=No, an der WS mit neuem RPRINTER) oder eine andere Schnittstellenkarte einbauen.

2.8.9 Rprinter per Batch starten

Wie fragt man per Batch die richtigen Rechner ab und startet den richtigen RPRINTER ?

AUTOEXEC.BAT ;HARDWARE abhängig

set WS=WS1

USER_LOGINSCRIPT ;USER abhängig

EXIT "MIRO.BAT"

MIRO.BAT ;USER und HARDWARE abhängig

IF %WS% == WS1 RPRINTER SERVER 1

Diese Kombination läßt sich auch gleich für Windows im Netz gebrauchen. In Abhängigkeit vom Usernamen ins USER-Windowsverzeichnis wechseln. In Abhängigkeit von %WS% die SYSTEM.INI und die SPART.PAR kopieren.

2.8.10 Umleiten von COMx ins Netz

Viele Programme wie ältere Versionen von AutoCAD erlauben nur das Drucken bzw. Plotten auf serielle Schnittstellen. Diese können nicht gecaptured werden.

Allerdings gibt es hier einen Trick :

Man schreibt vom Programm aus in eine Datei mit dem Namen PRN (alternativ LPT1, LPT2, LPT3). Diese Schnittstelle muß zuvor entsprechend gecaptured sein.

Bei Autocad bleibt dieses Drucken in eine Datei inkl. "Dateiname" gespeichert.

2.8.11 Print-Server einrichten

  1. Mit PCONSOLE eine QUEUE einrichten (z.B.QUEUE1). Standardmäßig haben alle Benutzer (EVERYONE) die Rechte, in diese Queue zu drucken.

  2. Mit PCONSOLE einen Printserver mit irgendeinem Namen (z.B. PSERVER1) einrichten. Danach die daran angeschlossenen Drucker definieren und die Drucker mit der zuvor generierten Queue verbinden.

  3. An der SERVER-Console das NLM mit dem Printservernamen laden: LOAD PSERVER PSERVER1 Alternativ kann man auch einen extra DOS-Rechner mit PSERVER.EXE benutzen.

  4. Am Arbeitsplatz CAPTURE für die Druckerumleitung laden, am besten mit CAPTURE Q=QUEUE1 NT NB NFF TI=10

Du druckst. Die Daten werden von CAPTURE abgefangen und an die Druckerwarteschlange geschickt. Die wartet, bis sie im Netz einen Printserver entdeckt. Der Printserver wartet darauf, das sich der jeweils angeschlossene Drucker aktiv meldet. Der Drucker druckt.

2.8.12 Netports gestorben!?

Es gibt mit Intel Netports das Problem, daß innerhalb kürzester Zeit plötzlich alle Netports im Netz scheinbar defekt sind. Dabei wird die Firmware aller sich im Netz befindlichen Netports praktisch zeitgleich zerschossen. Ein Aus- und Einschalten oder Neuinstallieren der Software zeigt keinerlei Wirkung.

Intel ist das Problem bekannt, der Hintergrund dagegen nicht.

Lösung:

Für die alten Netports gibt es eine DOS-Software, die den Flash-ROM des Netports neu initialisiert. Alle Netport-Modelle mit serieller Schnittstelle (also zumindest alle XL + Pro) sind via Laplinkkabel und eines kleinen mitgelieferten Tools namens "Serflash.Exe" reflashbar, auch bzw. gerade wenn sie via Netzwerk nicht mehr ansprechbar sind.

Nachdem aber die Netports via serieller Schnittstelle reflashed waren, funktionierten sie immer noch nicht. Ein weiterer Anruf bei Intel brachte auch die Erkenntnis warum: In einem derartigen Fall muß irgendein Server im Netz Reply to get nearest Server=on gesetzt haben, ansonsten geben sich die Netports dem Netz nicht zu erkennen.

2.8.13 PServer unter Win95

Man muß für den Win95 Printserver einen zusätzlichen Printserver einrichten. Den ersten Printer des neuen Printserver definierst Du mit Anschluss "Remote Parallel LPT1". Für diesen Printserver darfst du das PSERVER.NLM nicht laden. Dann gehst Du an dem gewünschten Win95 Rechner mit Printagent in die Druckereinstellungen und aktivierst den Remote Printer. Beim ersten Mal ist die Fehlermeldung "Druckerserverliste konnte nicht verarbeitet werden" normal. Wenn du die Pulldown Liste der Druckerserver aber nochmal anwählst, sollte der Druckerserver erscheinen. Daraufhin holst du dir den entsprechenden Printserver. Danach ist es am besten, den Rechner neu zu starten, denn das Einstellen des Printservers führt immer dazu, daß man aus dem Netz ausgeloggt wird.

Damit sollte das ganze funktionieren.

Der Printagent verbraucht allerdings eine zusätzliche Userconnection am Server.


Copyright © by Stefan Braunstein (sbraunst@POBoxes.com)
Letzte Aktualisierung am 1. Dezember 1997

Home Themengebiete... Shell / Requester Backup