






                 Nice Login v1.8 for Novell Netware


            By K.F.Soft, Denmark, Copyright October 1994.







Usage of this program is free. The program may not be sold. It can be 
distributed in the original ZIP-file at no charge.
Nice Login is distributed as is, without any express or implied warranty.
Portions of NLogin Copyright (C) 1983-1990 Novell Inc. All rights reserved.

If you decide to use this program please send me a little note with the 
following information:
  Type of organization.
  Number of servers.
  Number of users.
  Number of workstations.
Thanks in advance!

Comments, bugs and suggestions to kf@mmf.ruc.dk
                           Features
                           --------

Nice Login provides a nice full-screen login interface to Netware servers.
It uses a copy of login.exe (login.prg) for executing the login script. 
You can choose the desired file server from a list of available servers.
If errors are detected, they are shown in message boxes with 
understandable messages, and related user-choices (instead of login.exe's
cryptic error messages).
If the connection is cleared while logged out, NLogin will attempt to 
reconnect to the server when the password is entered. This is valuable in
combination with the NLICLEAR.NLM. This works with the VLM requester only.
Nice Login supports expired passwords with possible password change and 
it forces the user to change password if no grace logins are left.
If there is no password needed, Nice Login will login without prompting 
for one, just like login.exe.
It is possible to make Nice Login attach to additional servers. See the
description under "Installation". If attaching to additional servers 
Nice Login attempts to do password synchronization.
It is also possible to display a message on the screen, when Nice Login 
is started (messages about downed servers etc.). See Installation for
further information.

Screen saver activates after 3 minutes.
NiceLogin supports mouse control.

Runs on NW 2.15, 2.20 and 3.X. 
Maybe later it will work with Netware 4 in bindery emulation mode.
Requires login.exe v3.65 or later


                              Usage
                              -----
NLOGIN
Starts with the primary server as default server and blank login name and 
password fields.

NLOGIN [server/][loginname]
Starts with "server" as the default server and "loginname" as login name.

NLOGIN [/S scriptpath] [server/][loginname] 
Same as above but executes the login script defined by "scriptpath".
                            Interface
                            ---------

NiceLogin starts by logging out the current user and mapping the first 
network drive to the login directory of the current server. 
There are two input fields for login name and password. The password is 
displayed as *'s. When a field is completed, accept it by pressing <Enter>.
To move between the fields, use the <Tab> key or use the mouse.
In the right side there is a list of available servers. To select a server
press <PgUp> and <PgDn> or use the mouse.
To reset both input fields, re-read any system message and return to the 
default server press <F10>.
To quit the program without logging in, press <Esc>. The program will exit 
to the login directory of the selected server.

A little help is available with <F1>

                          Installation
                          ------------

Place nlogin.exe in SYS:LOGIN. In your autoexec.bat or net.bat replace 
the call to login with nlogin. Alternatively you can rename login.exe 
to login.prg and create a batch file login.bat to call nlogin.exe. 
Don't rename nlogin.exe to login.exe because it will then call itself 
if it doesn't find login.prg.
You can also replace your logout.exe with a logout.bat, which calls 
nlogin.exe or you can copy nlogin.exe to logout.exe.
That way the screens will allways show the Nice Login, when others 
have logged out.
You might create a configuration file for Nice Login. It has to be in
the same directory as nlogin.exe. Thus if you have nlogin.exe both in 
sys:login and in sys:public, you have to have nlogin.cfg in both places.

                         System messages
                         ---------------

If you want a message to be displayed on the screen when Nice Login is
started put the message in a file SYS:LOGIN\NLOGIN.MSG on the preferred 
server. The message is re-read (or removed) whenever Nice Login clears
the fields (on login errors and Reset (F10)). Beware that the message is 
re-read from the currently selected server (but from the default server
when using F10).
The message can consist of 1-4 lines with a maximum length of 76 
characters each.
If you put a # as the first character in nlogin.msg, the rest of the 
first line will be used as the title of the message box. The default 
title is "System message".
The message function is useful for informing users about downed servers 
or other important changes in the network environment.

                         Attachment lists
                         ----------------

If users are attaching to other servers with the same login name and
password from the login script you should remove the attach commands 
in the login script and create attachment definitions for NiceLogin.
This is done with the included program setprop.exe
Do the following:
If you want "USER" attached to server S2 when logging in to server S1:
  setprop S1/USER:ATTACHMENT(1)=S2
If you want "USER" attached to server S2 and S3 when on server S1:
  setprop S1/USER:ATTACHMENT(1)=S2
  setprop S1/USER:ATTACHMENT(2)=S3
If you want "USER" to attach to the other server whenever logging in to 
server S1 or S2:
  setprop S1/USER:ATTACHMENT(1)=S2
  setprop S2/USER:ATTACHMENT(1)=S1

Up to 7 servers can be defined this way with numbers from 1 to 7. 
The numbers don't need to be consequtive.
If a server from the attachment list is down - or the attachment fails 
for another reason - an error message will be displayed.
You have to be supervisor equivalent to create the attachment definitions,
but once created the user can change them him/herself.
When changing password Nice Login will attempt to synchronize passwords 
on all attached servers.

If you want to be able to use both login and nlogin with additional 
attachments you should use commands similar to the following in the 
login script:
  ATTACH SERVER/%LOGIN_NAME
  IF "%ERROR_LEVEL"="0" OR "%ERROR_LEVEL"="34816" THEN MAP I:=SERVER/SYS:
Errorlevel 34816 signals that the user is already attached to the server.
That way both login programs will work without prompting for password 
more than once.
                         Configuration File
                         ------------------

You can configure several special features in a configuration file.
It has the name nlogin.cfg and it should be in every place, where you 
have nlogin.exe, i.e. if you have nlogin.exe in your login directory
and in your public directory place the nlogin.cfg file in both places.

Each option in the configuration file is on the form "keyword = value".
Only one option should be written on each line. 
Comments are made with the "#" character.

The options are:

Keyword : ExitToDos
Values  : Yes / No
Default : Yes
  If Yes users will be allowed to exit (Esc) from Nice Login.
  If No this function will be disabled, trapping the login process.

Keyword : ConfirmExit
Values  : Yes / No
Default : No
  If Yes the user will be asked to confirm before exiting to DOS.
  If No the program will quit on Esc without asking the user.

Keyword : ChangeServer
Values  : Yes / No
Default : Yes
  If Yes users will be allowed to change server (PgUp/PgDn) in NiceLogin.
  If No the server change is disabled.

Keyword : DisableServer
Values  : Servername
Default : None
  If a DisableServer is specified, NiceLogin won't show that server
  in the server selection list. Wildcards can be used in servernames, 
  ie. DisableServer = VX* will disable all servers with a name starting 
  with VX.

Keyword : ScreenSaver
Values  : 0-32767 (minutes)
Default : 3
  Determines the idle time (in minutes) before the screen saver should 
  activate. If zero the screen saver will be disabled.

Keyword : ScreenSaveMessage
Values  : string (max 20)
Default : None
  Defines a string to be moved randomly around the screen when the screen 
  saver is active.

Keyword : DefaultLoginName
Values  : string (max 20)
Default : None
  Defines a username to be entered in the login name field (just as if it 
  were given from the command line) every time Nice Login is started.
  The value is overridden by the command line.

Keyword : DefaultScript
Values  : path (max 48)
Default : None
  Defines a login script other than the system login script to be
  executed by login.exe. 
  This allows you to let Nice Login use another login procedure than 
  when just using login.exe.
  Remember that defining a script will cause login.exe to skip the 
  personal login script. If you want the login script to include the 
  personal script as well you have to use the command
    INCLUDE SYS:MAIL\%USER_ID\LOGIN
  in the login script.
  You can also use another file than the LOGIN file as the personal 
  login script, thus totally seperating the login procedures. But then
  you can't use SysCon to edit the login scripts.

Keyword : LoginProgram
Values  : path (max 48)
Default : f:login.prg
  Defines a login program in any directory on any disk. This might be
  very usefull when communicating through a slow serial link, to avoid 
  transferring the login.exe program cross the line.

Keyword : SetStationTime
Value   : Yes/No
Default : Yes
  Prevents NiceLogin from synchronizing the workstation clock with the 
  server clock. This will make the login faster on a slow serial line.

Keyword : DisableAttachments
Value   : Yes/No
Default : No
  Prevents NiceLogin from attaching to additional servers as defined by 
  the ATTACHMENT property. This will make login faster across a slow 
  serial line.

                          Error messages
                          --------------

If you receive the following error after logging in please assure
that you use a login.exe which is v3.65 or newer.
    Warning: Unexpected error 18 (8801)
    ...
    Error code was 8801h

The following errors are given in message boxes while logging in.
They are given with the server name of the failing server.

Access denied! Credit limit exceeded
    Your credit limit has been reached, and you are not 
    allowed to login.
Access denied! Intruder detection lockout
    The account has been locked because of intruder detection.
Password not changed! Password has been used before. 
Unique password required
    You tried to change password, but the new password has been 
    used before, and you can't use it again.
Password not changed! New password is too short
    You tried to change password, but the new password is not 
    long enough.
Access denied! Unauthorized login time
    The supervisor has time station restrictions on this account, 
    and you are not allowed to login at this time.
Access denied! Unauthorized login station
    The supervisor has put station restrictions on this account, 
    and you are not allowed to login from this station.
Access denied! Account disabled or expired
    The account has been disabled or it has expired.
Password not changed! Insufficient rights
    You tried to change password, but you're not allowed to.
Unable to attach to server
    The server can't be reached. The server is down or unreachable 
    because of network problems.
Access denied! Server bindery locked or login disabled
    The server you try to login to has it's bindery locked or login
    has been disabled by the supervisor.
Access denied! Invalid username or password
    The password is wrong or the user doesn't exist.
Access denied! Password has expired and you
have no grace logins remaining
    You didn't change your password when you were asked to.
    Now your account is locked. Contact your supervisor for help.
Access denied! Too many connections open
    The supervisor has restricted the number of connections you can
    use simultaneously. That number is reached. 
Login error x
    Unknown error. Please report to kf@mmf.ruc.dk.
Mapping error
    This should be an unusual error. Please report to kf@mmf.ruc.dk

Execution errors are given on top of the screen, when the program ends:
  2     Can't find login.prg. 
  8     Not enough memory. There isn't enough memory for executing 
        login.prg. Try freeing up conventional memory.
