Login Script

Stefan Braunstein
2009-01-01 08:00

Der folgende Default Login Script der Netware 3.1x (fest codiert in der LOGIN.EXE) wird abgearbeitet, wenn kein System- (bzw. ab NW 4.x Container-) und User Login Script vorhanden ist:

WRITE "Good %GREETING_TIME, %LOGIN_NAME." 
MAP DISPLAY OFF
MAP ERRORS OFF
MAP *1:=SYS:; *1:=SYS:%LOGIN_NAME
IF "%1"="SUPERVISOR" THEN MAP *1:=SYS:SYSTEM
MAP INS S1:=SYS:PUBLIC; INS S2:=SYS:PUBLIC/%MACHINE/%OS/%OS_VERSION
MAP DISPLAY ON
MAP

Soll nur das Abarbeiten des Default Login Scripts vermieden werden (unter weiterer Beachtung vorhandener User Login Scripts), reicht ein NO_DEFAULT im System Login Script.

Ansonsten kann man alle Login Script Varianten mit EXIT ["programm"] beenden.

Seit Netware 4.0 gibt es keinen System Login Script mehr, sondern Container Login Scripte, die für alle Benutzer in diesem Container gültig sind und Profile, deren Login Script einzelnen Benutzern zugeordnet werden können.

Mit der Zeile INCLUDE SYS:MAIL\%USER_ID\LOGIN kann man unter Nw 3.x User Login Scripts aus dem System Login Script heraus ausführen. INCLUDE ... funktioniert auch mit jeder beliebigen ASCII-Datei, auf die aber Leserechte bestehen müssen. Seit NW 4.0 kann man auch ein INCLUDE .orgunit.org machen, wobei der Login Script des angegebenen Containers ab der aktuellen Stelle aufgerufen wird.

Der System Login Script der NW 3.x steht übrigens schreibgeschützt als ganz normale ASCII-Datei in SYS:PUBLIC/NET$LOG.DAT, die jeweiligen User Login Scripts in SYS:MAIL/%USER_ID/LOGIN.

Batchdateien und Programme lassen sich aus einem Login Script heraus mit dem # starten:

#BEFEHL für externe Kommandos
#COMMAND.COM /C DEL C:\TEST.BAT für interne Befehle und Batchdateien

Man darf aber nie ein TSR in einem LOGIN Script starten, weil LOGIN.EXE noch läuft und den Script abarbeitet. Ein TSR legt sich darüber, der später freiwerdende Speicherplatz kann bis zum nächsten Booten nicht mehr belegt werden.

Ausnahme:

Mit #CAPTURE kann man ohne weiteres Druckumleitungen machen, weil CAPTURE nicht resident geladen wird, sondern lediglich bestimmte Flags in dem (bereits geladenen) Client ändert. Die Client32 Versionen erlauben sogar den Aufruf ohne #, weil dort CAPTURE ein interner Befehl ist und somit schneller ist und auch kein zusätzliches DOS-Fenster aufgeht.

Wenn Sie verhindern möchten, dass beim Einloggen eines Users die Laufwerkmappings angezeigt werden, setzen Sie ein MAP DISPLAY OFF in den Login Script.

Die Anzeige von MAP-Fehlern wird übrigens mit einem zusätzlichen MAP ERROR OFF ausgeschaltet.

DOS-Umgebungsvariablen im Login Script definieren

Man kann folgendes Konstrukt (besonders aufwendig bei vielen Benutzern) stark vereinfachen:

 IF P_STATION == "000024061371" 
SET ID = "24061371"
END
usw....

Das läßt sich mit einer einzigen Zeile für alle Stationen im Netz realisieren:

DOS SET ID=P_STATION << 4

und funktioniert übrigens auch umgekehrt:

DOS SET ID=P_STATION >> 6

ergibt ID=000024, macht aber hier keinen Sinn, da es damit zu gleichen Ziffern kommen kann. Aber diese beiden Optionen funktionieren bei allen DOS SET xx= Zuordnungen.

Durchschnittliche Bewertung: 0 (0 Abstimmungen)

Kommentieren nicht möglich