Home Themengebiete... Tips (Server) Tips (allgemein)

2.2 Tips (Client)


2.2.1 Default Server

Was kann man an dem einen Server einstellen, daß er nicht von allen Workstations als Default Server benutzt wird ?

Wenn defaultmäßig dieser eine Server nicht der Login-Rechner sein soll, hier erstmal

SET REPLY TO GET NEAREST SERVER = OFF

setzen. An den Arbeitsplätzen, die dann doch primär daran gehen sollen, würde ich dann in der NET.CFG ein

PREFERRED SERVER = <ServerName>

setzen, so sollte es laufen.

2.2.2 Trustees zeitgesteuert setzen?

< NEU! >

Gibt es eine Möglichkeit, mit der ich für einzelne User bzw. Usergruppen die Trustees zeitgesteuert setzen kann?

z.B. für "SYS:SPIELE" Zugriff nur von 12.00 bis 13.00 h, vorher kein Zugriff, später automatischer Rausschmiß.

Leg doch einfach einen User SPIELE an mit Time Restrictions von 12-13h, unlimited Connections und Rechte auf SYS:SPIELE. Die User müssen sich dann nur um 12h neu anmelden und werden automatisch gegen 13h rausgeworfen.

Der Supervisor (und SV-äquivalente User) kann damit allerdings nicht rausgeworfen werden. Beim Supervisor funktionieren keinerlei Account Beschränkungen und Station Restrictions.

2.2.3 Finden von Usern über USERLIST

Mit folgender Lösung kann man feststellen, wo jemand im Netzwerk angemeldet ist.

Man kann mit USERLIST feststellen, ob der Benutzer selbst angemeldet ist. Bei USERLIST /A bekommt man zusätzlich noch die Netzwerkadresse heraus. Dies kann man jetzt mit dem DOS Programmen FIND und einer Batchdatei kombinieren.

Ich habe alle Nodeadressen in einer Textdatei abgespeichert.

NODE.DAT

Arbeitsplatz ABC      00005A12BE7F
Arbeitsplatz DEF      00005A121234
.

Jetzt noch eine Batchdatei NODE.BAT

@echo off
find "%1" NODE.DAT /i

Und schon bekommt man durch eintippen von

NODE 5A12BE7F

den entsprechenden Arbeitsplatz angezeigt.

2.2.4 Zeitsynchronisation mit Server aus

Die automatische Zeitsynchronisation der DOS-Arbeitsplätze mit dem File Server kann man durch einen Eintrag in der NET.CFG ausschalten:

SET STATION TIME = OFF

Außerdem muß im Login Script ein SET_TIME OFF stehen, sonst wird die Uhrzeit beim Einloggen wieder auf die Serverzeit gesetzt! Das geht allerdings erst mit der LOGIN.EXE Version 3.70.

Beim Novell 32bit-Client für W95 muß man unter Start/ Einstellungen/ Systemsteuerung/ Netzwerk/ NovellNetwareClient32/ Eigenschaften/ ErweiterteEinstellungen/ SetStationTime umschalten.

Bei dem Original Microsoft Client gibt es scheinbar keine Einstellungsmöglichkeit.

2.2.5 Too deep in tree

Wenn man ab einer bestimmten Größe der Verschachtelung von Unterverzeichnissen nicht mehr auf die Files in diesen Unterverzeichnissen zugreifen kann, meldet u.a. auch PURGE an dieser Stelle "TOO DEEP IN TREE".

Um trotzdem auf diese Dateien und Unterverzeichnisse zugreifen zu können, reicht es aus, wenn man ein MAP ROOT irgendwo tiefer in den Tree setzt.

2.2.6 Owner einer Datei

Unter Novell wird bei jeder Datei und jedem Directory der Owner, d.h. der Benutzer, der die Datei oder das Directory angelegt hat, mit abgespeichert. Wenn jetzt der Benutzer gelöscht wird, z.B. mit SYSCON, dann hat die Datei oder das Directory keinen Owner mehr. Im Regelfall gibt es keine Probleme, es gibt aber verschiedene Programme, vor allem Datenbanken, die dann nicht mehr (korrekt) funktionieren.

Die Owner-Informationen kann man manuell mit FILER ansehen und setzen. Mit diversen Tools kann man Dateien ohne Owner auch suchen und den Owner neu setzen lassen.

2.2.7 Booten mit Bootrom

  1. Bootrom einbauen und auf der Karte aktivieren.

  2. Bootdiskette anlegen und gründlich austesten. Bei Einsatz von ODI muß noch rplodi nach lsl und vor dem Kartentreiber geladen werden.

  3. Mit DOSGEN im Login Verzeichnis ein Bootimage von der Diskette anlegen

  4. Je nach Bootrom-Version muß man bei Einsatz von DOS 5.0 oder höher RPLFIX über das Image laufen lassen.

Diese Vorgehensweise funktioniert nur bei identischen Rechnern, d.h. diese Imagedatei wird von allen Rechnern mit Bootprom gelesen.

Wer unterschiedliche Rechnerkonfigurationen laufen lassen will, sollte sich in den Novellunterlagen im CONCEPTS das Konzept der BOOTCONF.SYS anschauen.

Folgende Lösung ist noch flexibler, dafür auch etwas komplexer:

Ich schreibe einfach mal meine Configs dazu:

Verwendete Umgebung:

Server:

Novell 3.12, Frame Ethernet_802.3

WS:

NE2000 mit Lanworks Bootrom. 386-25 bzw. 486-33, IBM-DOS 5.02

Datei sys:login\bootconf.sys:

0x00000002, 00001B0782E2 = MAILBOX.SYS
0x00000001, 00001B076BA4 = TOSSER.SYS
  ^Netzwerkadresse   ^Karten-Knotenadresse

Das Bootimagefile heißt dementsprechend nicht net$dos.sys, sondern "mailbox.sys" und "tosser.sys".

Datei config.sys im Bootimage:

[...]
device=emm386.exe noems i=e000-efff y=f:\dos\v5.02\emm386.exe
shell=command.com /e:1024 /p

Wer Qemm verwendet und Windows 3.1x, der braucht ein /vxddir=f:\qemm oder wo auch immer qemm auf dem Netz installiert ist. Wer kein Windows 3.1x verwendet, kann sich sowohl das y=... als auch das vxddir=... schenken.

Datei autoexec.bat im Bootimage:

[...]
lh lsl
lh rplodi
lh ne2000
lh ipxodi d
bootbox

Datei bootbox.bat im Bootimage:

lh netx

(ja, nur diese eine Zeile. Die Zeile muß mit einem CR abgeschlossen sein)

Datei Bootbox.bat in sys:login:

::::::::(insgesamt ca. 70x, zum Überspringen der
         Kommandozeile im Batch des Bootimagefiles)
prompt $p$g
login mailbox

Systemloginscript:

[...]
if P_STATION="00001B0782E2" then begin
  comspec = F:\DOS\%OS_VERSION\COMMAND.COM
end

Das größte Problem gibt es immer nach dem Aufruf von NETX. Man muß sich immer vor Augen halten, daß die Batchdatei, aus der heraus das NETX aufgerufen wurde, sich auf dem emulierten Laufwerk A: befindet und nach dem Aufruf von NETX die Batchdatei mit demselben Namen im sys:login Verzeichnis weiter ausgeführt wird. Der nächste Befehl wird also an der Byteposition innerhalb der Batchdatei gelesen, an der der letzte Befehl auf Laufwerk A: stand. Aus diesem Grund habe ich am Anfang ein ":::[...]:::::::" in meine Batchdatei geschrieben, dann wird halt ein Kommentar bzw. Label ausgeführt, solange die Byteposition nicht größer als 70 oder 80 wird.

Was auf Laufwerk A: hinter dem Aufruf von NETX kommt, ist vollkommen irrelevant, und was auf Laufwerk sys:login vor dem Aufruf von NETX kommt, ist ebenfalls völlig irrelevant. Hauptsache es geht auf sys:login im Batch an einer vernünftigen Byteposition weiter, bzw. mit einem vernünftigen Befehl. Wichtig ist auch, daß nach dem Aufruf von netx auf dem A: Batchfile noch ein CR/LF kommt, sonst wird hier die Batchdatei schon beendet.

Wer das verstanden hat, schreibt einmal ein Bootimagefile und macht später in sys:login, was er will mit dem boxlogin.bat, aber das betreffende boxlogin.bat auf im Bootimage braucht überhaupt nicht mehr verändert zu werden.

Manche Bootroms wechseln das aktuelle Laufwerk nicht, da muß im sys:login\bootbox.bat noch zwingend ein F: hinter dem NETX Aufruf stehen. (Der Name 'bootbox.bat' ist natürlich auch frei gewählt)

Nützlich ist auch das Verwenden einer neuen NETX. Einige alte Versionen halten manchmal äußerst hartnäckig an einem "comspec=a:\command.com" fest, was über kurz oder lang zu Problemen führt. Die netx.com Version 3.26 (mitgeliefert z.B. auch bei Windows 3.1) sollte es mindestens sein. Was sich auch bewährt hat: Im Loginscript das Laufwerk a: einfach auf das DOS-Verzeichnis mappen: map root a:=sys:dos\%OS_VERSION

2.2.8 Meldung beim Einloggen bestimmter User

Eintrag im (System) Login Script:

if member of "OBSERVE" then
   #send "Achtung! User %LOGIN_NAME loggt sich gerade ein!" to xy
end

Dazu braucht man nur noch die entsprechenden User in eine (speziell dafür erstellte) Gruppe OBSERVE einzutragen.

Bei einem einzelnen User reicht auch:

if login_name = "dau" then ....

2.2.9 Dateien eines Besitzers auflisten

Mit folgendem Befehl lassen sich alle Dateien eines Besitzers auf einem Volume anzeigen (für Netware 3.12):

ndir /fo /ow eq benutzername

Ndir ist der "Dir"-Befehl von Novell, der nur Dateien [/fo] des Benutzers benutzername [/ow eq (equals) benutzername] auflistet.

Evtl. empfiehlt sich noch " |more oder /c > Dateiname.txt" oder einer folgender Schalter:

/sort up

sortiert nach geändertem Datum

/sub

alle Unterverzeichnisse

/ac bef 1-1-95

alle Dateien, welche seit dem 01.01.95 nicht mehr aufgerufen wurden

/si gr 100000 ac bef 01-05-95 sort ow

sortiert die Ausgabe nach Benutzern, welche Dateien größer 100K besitzen, die sie aber seit dem 01.05.95 nicht mehr aufgerufen haben.

2.2.10 Intruder Detection bei SUPERVISOR

Der Supervisor kann sich wieder einloggen, nachdem er durch aktiviertes "Intruder Detection" bei NW3.12 nach den angegebenen Eindringversuchen ausgesperrt wurde, indem er an der FileServer Console enable login eingibt. Dadurch wird der Supervisor- Account wieder entsperrt.

Das funktioniert aber nur mit der Freigabe des SUPERVISOR- Accounts, alle anderen Accounts können vom Supervisor selbst in SYSCON / User Information über den Intruder Lockout Status freigeschaltet werden.

2.2.11 Logout-Script

Wie kann man nach dem Aufruf von Logout eine Batch oder ein anderes Programm aufrufen?

LOGOUT.EXE überall umbenennen (z.B. in LOGOFF.EXE)

dann eine LOGOUT.BAT erstellen:

   echo ciao und bis bald... dein server
   ...
   LOGOFF.EXE

2.2.12 Empfang von SEND sperren

Um einzelne oder alle Benutzer in einem Netware Netz für den Empfang von Netznachrichten komplett sperren, gibt es folgende Möglichkeiten:

  1. "CASTOFF ALL" bei Netware 3.1x bzw. "SEND /A=N" bei Netware 4.x in den Loginscript schreiben. Das fängt fast alle Meldungen ab.

  2. "message timeout = xxx" ins NET.CFG eintragen. Das läßt bei Benutzung der VLMs die Meldungen nach der eingestellten Zeit von selbst verschwinden.

Es ist übrigens nicht einstellbar, ob die Nachrichten von anderen Usern unter DOS am oberen oder unteren Bildschirmrand auftauchen. Das ist fest beim Client eingestellt: bei NETX in der letzten, bei den VLMs in der ersten Zeile.

2.2.13 Sicherheitsproblem SYSCON !?

In einer Novell Netzwerkumgebung kann im Prinzip jeder eingeloggte User mit Zugriff auf das Public-Verzeichnis (also normalerweise jeder) die System Configuration (Syscon) aufrufen, mit den Einschränkungen, daß wichtige Funktionen (User anlegen/löschen, Rechte vergeben etc.) dem Supervisor und Gleichberechtigten vorbehalten ist. Man kann also ein bißchen drin rumschnuppern, aber im Prinzip keinen Unsinn anstellen. Sollte es trotzdem gehen, sind bei der Einrichtung von Usern zu viele Rechte vergeben worden.

2.2.14 Disable Login für einzelne User

Man kann ein "Ablaufdatum" für einen einzelnen User eingeben:

  1. SYSCON

  2. User information

  3. User aussuchen

  4. Account Restrictions

  5. expiration date: 30. November 1997

Dadurch wird der Account ab diesem Datum gesperrt.

Will man den Account sofort (evtl. für eine bestimmte Zeit) sperren, kann man statt dessen auch folgendes einstellen:

5a. Account disabled: YES

2.2.15 Mappings

Mit MAP INS Sxx: kann man Such-Laufwerke mappen. (funktioniert nicht beim OS/2 Requester). Die Option "Sxx:" (xx für eine Zahl von 1 bis 16 in der Reihenfolge, in der dieses Verzeichnis im Pfad stehen soll) bedeutet dabei, daß Novell automatisch das nächste freie Netzlaufwerk (von Z: aufsteigend in Richtung A:) sucht und dieses für das Laufwerk-Mapping verwendet.

Dieser Buchstabe wird dann z.B. als "X:.;" an der Stelle "xx" in den Suchpfad der Arbeitsstation eingetragen.

Das optionale "INS" bedeutet, daß Pfade, die bereits an der Stelle "xx" stehen, nicht überschrieben werden, sondern um eine Stelle nach hinten geschoben werden.

Wenn man normale Netzlaufwerke mappen will, benutzt man

MAP lw:= oder MAP ROOT lw:=

wobei lw ein beliebiges (möglichst noch nicht benutztes) Laufwerk ist.

Diese Laufwerke werden nicht in den Pfad der Workstation aufgenommen.

2.2.16 LOGIN SCRIPT

wie sieht der Login Script aus, der abgearbeitet wird, wenn kein System und User Login Script vorhanden ist?

Default Login Script der Netware 3.1x (fest codiert in der LOGIN.EXE):

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.

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.

2.2.17 "." und ".." auf Netware Server !?

Man kann "." und ".." auf einem Netware Volume von einer DOS-Station aus sehen, wenn man in der NET.CFG folgendes einträgt:

Netware DOS Requester
Show Dots = On

2.2.18 FILES= oder FILE HANDLES= ?

VLM benutzt nicht den Eintrag "FILE HANDLES =" in der NET.CFG, sondern den Eintrag "FILES=" in der CONFIG.SYS. Dadurch wird dieser Wert von Netzwerk- und Nicht-Netzwerkanwendungen gemeinsam genutzt.

Unter NETx hatte man mit FILES=50 und FILE HANDLES = 150 50 DOS-Handles und 150 Netzwerk-Handles. Um dieselbe Anzahl Handles unter VLMs zu bekommen, muß man FILES=200 setzen.

VLM benutzt eine andere Architektur als die NETx-Shell. NETx hing sich in den INT 21h und simulierte dort DOS-Funktionen. Die VLMs hingegen sind das, was Microsoft als "Redirector Interface" bezeichnet.

Die VLMs benutzen eine Backend-Schnittstelle, unter der DOS sie aufruft. Da die VLMs von DOS aufgerufen werden, nutzen sie dieselben internen Strukturen wie DOS selbst. Das ist auch der Grund, weshalb in der CONFIG.SYS LASTDRIVE auf Z gesetzt werden muß.

2.2.19 ATTACH

Um sich gleichzeitig an zwei oder mehr Servern anmelden zu können, verwendet man den Befehl ATTACH. Dabei wird man zwar Benutzer auf diesem Server und belegt auch eine Lizenz, es wird jedoch kein Login Script ausgeführt.

Man kann das Attachen an weitere Server automatisieren, in dem man ATTACH <servername> im Login Script als internen Befehl (d.h. ohne #) ausführt.

Diese Variante hat den Vorteil, daß Benutzername und Paßwort weggelassen werden können und damit automatisch Name und Paßwort vom Hauptserver verwendet werden. Sollte der User auf dem anderen Server nicht existieren oder das Paßwort unterschiedlich sein, werden diese Angaben einfach abgefragt.

2.2.20 Auto- Login bei 3.12erSoft

< NEU! >

Hallo, Karl,

Ein DOS-Rechner mit Watch-Dog-Karte, der eine Klimaanlage regelt, soll nach einem Reset selbstaetig ins Netz einloggen.

Den Usernamen kann ich mit dem Login-Batch uebergeben, aber das Passwort des Klimarechners muss manuell eingegeben werden. -> Klimaregelung haengt ! :(

echo dein_passwort|login dein_user

(Komisch, das steht gar nicht in der FAQ !??)

Ciao, Stefan

- timEd 1.10+


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

Home Themengebiete... Tips (Server) Tips (allgemein)