Der Default Login Script der Netware 3.1x (fest codiert in der LOGIN.EXE) wird abgearbeitet, wenn kein System 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 den System Login Script mit EXIT ["programm"] beenden, dann wird weder der Default Login Script noch evtl. vorhandene User Login Scripts abgearbeitet.
Zwischen den Anführungszeichen dürfen max. 15 Zeichen stehen, der Platz, der in normalen PC's im Tastaturpuffer frei ist, denn dorthin wird das geschrieben. Wenn dann der folgende Fehler auftritt:
EXIT with "MENUE.BAT" does not run on this machine!
liegt das an einem anderen MACHINE NAME in der NET.CFG und
läßt sich ganz einfach mit dem Eintrag pccompatible im
Login Script wieder aktivieren.
Das ist eine Absicherung gegen nicht 100 % kompatible PCs, weil das EXIT
"....." direkt in den Tastaturpuffer schreibt!
User Login Script trotz einheitlichem EXIT "..."
mit der Zeile INCLUDE SYS:MAIL\%USER_ID\LOGIN kann man 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.
Der System Login Script 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.
wie kann ich eine Batchdatei aus dem Systemlogin Script heraus
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) Requester/Shell ändert.
Wie kann ich verhindern, daß beim Einloggen eines Users die
Laufwerkmappings angezeigt werden?
MAP DISPLAY OFF in den Login Script
Die Anzeige von MAP-Fehlern wird übrigens mit einem zusätzlichen MAP ERROR OFF ausgeschaltet.
DOS-Variablen 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.
wie kann man beim Einloggen in Netware 3.1x den System Login Script
umgehen?
Mit Login /S kann man ein anderes Script ausführen lassen.