
-----------------------------------------------------------------------
NWSCRIPT.DOC -- 19971221 -- Email thread on NetWare Log-In Script Files
-----------------------------------------------------------------------

	Feel free to add or edit this document and then email
	it back to faq@jelyon.com




Date: Tue, 29 Oct 1996 18:45:54 -0600
From: Joe Doupnik <JRD@CC.USU.EDU>
Subject: Scripts

	Since the subject of NW scripts has come up with some interesting
puzzles, and because it's midterm exam time at my .edu place, I'd like to
suggest a group/list project to prepare a pithy set of rules on scripts.
	For NW 3 how many scripts are there, where are they, in which
order are they performed, can one or more be skipped over, any noted
side effects? Items of this kind.
	For NW 4, the same, but more complicated because there are more
kinds of "objects" and user to file server relations are more subtle.
	If the group can put together the operational rules then Floyd
would have that pith to add to the list's plethoric (sp?) FAQ.
	Joe D.

[Floyd: "Plethora": deluge, excess, fat, glut, overabundance, overkill,
redundancy, surfeit, surplus -- according to MSWord5/DOS thesaurus <g>]

------------------------------

Date: Wed, 30 Oct 1996 08:47:00 -0500
From: "QUIBELL: MARC" <txh8205@TEXCOM-HOOD.ARMY.MIL>
Subject: Re: 2nd Server in a tree.

>>Everybody has the appropriate rights for thier respective
>>fileserver, Where should I look next. ie: what kind of things would
>>stop the Netware Default Login Script from running?  This is where
>>netware usually maps the f:\drive, and inserts f:\public as a
>>search drive isn't it?
>
>	There isn't a "default login script" under NW 4. The
>system manager has to create scripts, and they can be created at a
>number of different levels such as (very conveniently) belonging to
>the container.
>	Joe D.
>
>No "default login script" in NW 4?  I hate to disagree with the
>"voice" of the list, but isn't there a default login script coded
>into login.exe?  I'm *positive* there is, and fairly certain it maps
>S1: to SYS\PUBLIC and F: to SYS:.  It runs when there is no user
>login script and no NO_DEFAULT or EXIT commands  in the container or
>profile login scripts.

The very special [public] object, created when Netware 4.x is installed,
is responsible for logging the default login drive and directory to all
users on the LAN/WAN. Not a default login script...

------------------------------

Date: Wed, 30 Oct 1996 08:02:55 -0800
From: Mark Schoonover <Mark_Schoonover@CCMAIL.SGO.SONY.COM>
Subject: Re: Scripts

For NW3, two scripts, one system and one user executed in that
order. Both can be skipped, but the ramification is that network
services may not be available. The side effects of having a user
script is that it can screw up what the system script has already
accomplished -- BTW I don't allow user scripts to be run.

For NW4 there are four types, O/OU, bindery, user and profile scripts.
O and OU scripts are best applied to user objects within that container.
Profile scripts should only be applied to user objects outside the
current CX. User scripts are essentially the same as NW3 and bindery
is the same as NW3 system script. The order of execution is O/OU,
Profile ( only if assigned ) then user scripts. Bindery scripts then
user scripts are run in that order just like NW3 under bindery
services.

I was just now wondering if the NDS user object script and the bindery
services user script are the same? All login scripts can be skipped.

------------------------------

Date: Wed, 30 Oct 1996 11:43:47 -0800
From: Karyn Williams <karyn@INDY1.CALARTS.EDU>
Subject: Re: Scripts

In NW 3.1x there are 3 scripts, default, system, and user. The system login
script is in the public directory as NET$LOG.DAT. User login scripts are
located in the users mail directory. The system login script runs first,
second, the user script if it exsists, and if not, the default. If there is
no user script and you do not want the default to run, you can bypass it by
adding the NODEFAULT (NO_DEFAULT ?)command to the system login script, or
use an EXIT command from the system login script. If there is not a system
or user login script, the default will run. The default is part of
login.exe.  You can designate an alternate script on the command line when
you login. To the best of my knowledge, you cannot bypass all the login
scripts. You can, however, render them useless, say by creating a system
login script with just the NODEFAULT command, but it would still be running
a script. The consequences of such would be no access to the server.

For 4.1 I would have to look in the book, so I'll leave that to someone
else.

------------------------------

Date: Wed, 30 Oct 1996 12:59:31 -0600
From: Joe Doupnik <JRD@CC.USU.EDU>
Subject: Re: Scripts

>In NW 3.1x there are 3 scripts, default, system, and user. The system login
>script is in the public directory as NET$LOG.DAT. User login scripts are
>located in the users mail directory. The system login script runs first,

<snip>

	Pretty good so far. The "default" login script built into login.exe
is executed if and only if there is neither system nor personal login
script. The default script destroys the DOS PATH from the left, rendering
the script hostile.
	All login scripts can be bypassed by using the switch /NS on the
login command line. Or does the default script still run? Hint: ATTACH
is similar to login /ns, but it also omits the implied logout.
	NW 4 handles these things slightly differently, which I'm sure
other correspondents will detail.
	Remember, the idea is to come up with a compact document Floyd can
put into the FAQ, so there will be back and forth editing and correcting on
the list before we are all satisfied.
	Joe D.

------------------------------

Date: Wed, 30 Oct 1996 15:03:44 -0400
From: Steve Kurz <skurz@NORFOLK.INFI.NET>
Subject: Re: Scripts

The default login script is located in the hard code of login.exe. It
can be bypassed by using a user login script, the no default option,
or by putting an exit statement at the end of the system login
script. The system login script with only an exit statement would do
the same thing as having no scripts. Using only the no default option
would still run a user login script if one existed.

------------------------------

Date: Wed, 30 Oct 1996 12:47:16 -0800
From: "Richard K. Acquistapace" <acquista@NETCOM.COM>
Subject: Re: Scripts

>For NW3, two scripts, one system and one user executed in that
>order. Both can be skipped, but the ramifications is that network
>services may not be available. The side effects of having a user
>script is that it can screw up what the system script has already
>accomplished -- BTW I don't allow user scripts to be run.

Hey, what about the default login script?

>For NW4 there are four types, O/OU, bindery, user and profile scripts.
>O and OU scripts are best applied to user objects within that container.
>Profile scripts should only be applied to user objects outside the
>current CX. User scripts are essentially the same as NW3 and bindery
>is the same as NW3 system script. The order of execution is O/OU,
>Profile ( only if assigned ) then user scripts. Bindery scripts then
>user scripts are run in that order just like NW3 under bindery
>services. I was just now wondering if the NDS user object script and
>the bindery services user script are the same? All login scripts can
>be skipped.

Hey, what about alias scripts?

------------------------------

Date: Wed, 30 Oct 1996 12:41:27 -0800
From: Mark Schoonover <Mark_Schoonover@CCMAIL.SGO.SONY.COM>
Subject: Re[2]: Scripts

There's also another way to not run scripts -- instead of the attach
command, you can map a drive to a server that you're NOT already
logged into. This will prompt you for a password and then map the
drive.

------------------------------

Date: Wed, 30 Oct 1996 12:43:02 -0800
From: Mark Schoonover <Mark_Schoonover@CCMAIL.SGO.SONY.COM>
Subject: Re[2]: Scripts

Now that my mind is clear, there's also another script 'type' that can
be used. It requires the include statement within another script in
order to execute. Maybe call this an include script?

------------------------------

Date: Wed, 30 Oct 1996 13:05:34 -0800
From: Mark Schoonover <Mark_Schoonover@CCMAIL.SGO.SONY.COM>
Subject: Re[2]: Scripts

Richard:

Yup - dropped the default scripts, even though I mentioned them in a
previous message! Alias scripts? Hmmmm.... Aren't they just the user script
that they refer to? I try and avoid using aliased objects, so I've never
really tried them.

------------------------------

Date: Wed, 30 Oct 1996 21:42:35 -0800
From: "Richard K. Acquistapace" <acquista@NETCOM.COM>
Subject: Re: Scripts

NetWare 3.XX is System login, Personal login, and default.

Four Types of Login Scripts for NDS.

When a user logs in, the LOGIN utility executes the appropriate login
scripts. Four types of login scripts are available, and they can be used
separately or together to tailor a custom environment for your users. All
four types of login scripts are option al.

A container login script sets the general environments for all users in
that container. The LOGIN utility executes container login scripts first.
A user can use only one container login script.

NOTE: A container login script replaces the system login script from
NetWare 3TM.

A profile login script sets environments for several users at the same
time. The LOGIN utility executes a profile login script after the
container login script.

A user can be assigned only one profile login script, but can specify
other profile login scripts on the command line. Several users can use the
same profile login script.

A user login script sets environments specific to a single user, such as
printing options or a username for electronic mail. The LOGIN utility
executes the user login script after any container and profile login
scripts have executed.

A user can have only one user login script.

The default login script is precoded into the LOGIN.EXE command and is not
editable. It executes if a user doesn't have his or her own user login
script, even if a container or profile login script exists.

The default login script is executed for all users (including user ADMIN)
unless you create a user login script. The default login script contains
only essential commands such as drive mappings to the NetWare utilities.

(To see the commands in the default login script, see "Default Login
Script" on page 246.)

If you don't want to create any user login scripts and you don't want the
default login script to execute for any users, you can disable the default
login script by including the NO_DEFAULT command in the container or
profile login script.

To use the login script from an Organization, Organizational Unit, or
Profile object, users must have the Browse right to the object and the
Read right to the object's Login Script property.

NOTE: For more information on Browse or Read rights for a file, object, or
property, see "Browsing" and "Rights" in Concepts

------------------------------

Date: Thu, 31 Oct 1996 12:22:05 -0500
From: "David P. Moon" <DavidPMoon@WPNENGR.IH.NAVY.MIL>
Subject: Re: Scripts

>In NW 3.1x there are 3 scripts, default, system, and user.

Those of us that were fortunate enough to get a copy of
Netware name services for 3.11 have four scripts.

Domain, Profile, User, and Default.

------------------------------

Date: Thu, 31 Oct 1996 15:44:16 -0400
From: Barbara Lewis <Barbara_Lewis@WASH-BALT.USCONNECT.COM>
Subject: Re: Scripts

>	Pretty good so far. The "default" login script built into login.exe
>is executed if and only if there is neither system nor personal login
>script. The default script destroys the DOS PATH from the left, rendering
>the script hostile.
>	All login scripts can be bypassed by using the switch /NS on the
>login command line. Or does the default script still run? Hint: ATTACH
>is similar to login /ns, but it also omits the implied logout.
>	NW 4 handles these things slightly differently, which I'm sure
>other correspondents will detail.
>	Remember, the idea is to come up with a compact document Floyd can
>put into the FAQ, so there will be back and forth editing and correcting
>on the list before we are all satisfied.
>	Joe D.

NetWare 4 has a Container, Profile, User, Default login system, executed in
that order.  The login scripts are what Novell calls stream files and are
stored in sys:_netware with a numeric file name and extension.  They are
still just text files.  Novell states that a user can be assigned only one
profile script and this is true, but it does not mean only one profile
script can run for a user.  Because the login scripts are still text files
in login script syntax, multiple profile or other pre-written scripts can
be run with IF....Then statements.  In the case of a profile object, just
call the object.  If you want another container script to execute for a
user, just call the container object.

Flexible stuff.  Obviously, you can also call a NetWare 3 script just by
providing the proper path\file name information.  (The user will have to
have to attach (Login /ns /b) and have file system rights...)

---------

Date: Thu, 31 Oct 1996 13:00:31 -0800
From: Mark Schoonover <Mark_Schoonover@CCMAIL.SGO.SONY.COM>
Subject: Re[2]: Scripts

Barbara:

The stream files you're refering to, the hexadecimal filename is
actually the object ID number of the object that owns the file.

------------------------------

Date: Thu, 31 Oct 1996 14:39:40 -0600
From: Joe Doupnik <JRD@CC.USU.EDU>
Subject: Re: Re[2]: Scripts

	We are getting some good responses on script quantity, location,
order of execution. To ensure the information is accurate I'd suggest folks
run some simple confirmation tests on pieces, and then a volunteer leader
could put the whole thing together as a draft FAQ entry. Missing right now is
a tiny bit more discussion on NDS aliases.
	Joe D.

---------

Date: Thu, 31 Oct 1996 14:34:30 -0800
From: Dave Hammond <daveh@3NETSYS.COM>
Subject: Re: Re[2]: Scripts

>	We are getting some good responses on script quantity, location,
<snip>
>	Joe D.

I agree.  I also would like to see some discussion of things that are
possible, but not desirable, such as:

	1.  Please don't rename login.exe and replace it with your login.bat!

	2.  If you use include or exit batch files, please keep them all in one
place, or at a minimum be consistant about where you put them.

From a practical point of view, don't get too fancy.  You WILL be burned, and
your successors will curse your name in
perpetuity.

---------

Date: Thu, 31 Oct 1996 14:47:59 -0800
From: "Robert S. Sfeir" <robert@BUYSIDE.COM>
Subject: Re: Re[2]: Scripts

>	We are getting some good responses on script quantity, location,
<snip>
>	Joe D.

Well here're my 2 cents.  If anyone is interested, I am willing to server
the FAQ from our we site.  I will pull it together if others are willing to
help.

Perhaps I could quickly build a database to allow users to enter
information about how they have written and solved scripts.  This would of
course be searchable.

---------

Date: Thu, 31 Oct 1996 14:21:42 -0800
From: Mark Schoonover <Mark_Schoonover@CCMAIL.SGO.SONY.COM>
Subject: Re[4]: Scripts

Well, I have played with the aliases to some degree, and it looks like
they behave in the same manner as the user object they are pointing to.
Under NWADMIN -> DETAILS, the dialog box that appears is the same as
the dialog box to the aliased object. Netadmin on the other hand gives
you two choices, one for the alias itself and another for the aliased
object. So far, there isn't an alias script -- which after sleeping on
the idea, would actually make nomadic users easier to deal with. I
would be happy to volunteer to assist in creating the FAQ entry.

---------

Date: Thu, 31 Oct 1996 16:43:54 -0800
From: "Robert S. Sfeir" <robert@BUYSIDE.COM>
Subject: Re[4]: Scripts

>Well, I have played with the aliases to some degree, and it looks like
<snip>

If your alias is a user and that user has a script the Alias will execute
the same script no matter where it is...  I don't see the point of having a
scripted alias.  All the alias is, is a pointer to an object in a different
container.  It's like using a mac and using aliased Icons.  It allows you to
move the original object anywhere you want while still keeping the alias in
the same spot.  I use it all the time when users change departments they
change containers, so I create an Alias over the weekend, so that they can
still login the old way, then I notify them of the change and they use the
new way.  When they get used to it, I remove the alias.  Their script
remains the same.

As far as you nomadic users, stick them in their own container (nomadic),
and assign a script for the container or by user.  If they need to access
different servers or trees just stick their alias in the appropriate
container.  The script will execute just the same way!

------------------------------

Date: Mon, 11 Nov 1996 16:15:38 -0500
From: Debbie Becker <dbecker@clark.net>
Subject: Re: Scripts (INCLUDE)

If we're going to talk about login scripts, let's not forget my personal
favorite command:   INCLUDE   (which is used to run other files in login
script format, or login scripts found in other NDS objects -- sort of a
subroutine).

You can INCLUDE the login script of another container (i.e., overall commands
put in the Organization object's login script which then don't have to be
repeated in each OU login script):  INCLUDE .O=ORGANIZATION_NAME

You can INCLUDE the login script of your parent container (for the same
reasons):  INCLUDE .

You can INCLUDE the login script found in a Profile object. I *really* like
this one, since it means you can use Profile login scripts for groups by
giving the group NDS rights to the Profile object and then using IF...THEN
statements in the container login script:

IF MEMBER OF "GROUP_NAME" THEN
     INCLUDE PROFILE_OBJECT_NAME
END

If you are using INCLUDE make sure that:
  1) File system rights (Read, File Scan) are assigned (if you're using
     text files written in login script language).
  2) NDS rights (Read to Login Script property) are assigned (if you're
     accessing the login script of an NDS object)

------------------------------

Date:	Sat, 16 Nov 1996 01:07:35 -0800
From:	Marcus Williamson <71333.1665@compuserve.com>
Subject: Login Script Identifiers

A list of login script identifiers for NetWare 4 can be found at:
	http://ourworld.compuserve.com/homepages/marcus_williamson/

------------------------------

Date: Wed, 15 Jan 1997 10:13:35 +0100
From: Dave Parkin <parkin@ICRF.ICNET.UK>
Subject: Re: DOS env vars in login script

>Does anyone know how to do the equivalent to this:
>
>  set path=%path%;more_path
>
>in a login script (3.12)?  I've tried all of the
>following:
>
>dos set path = <path> + ";more_path"
>dos set path = <path>;more_path
>dos set path = %<path>;more_path
>dos set path = <path>";more_path"
>#command set path=%path%;more_path
>
>and more...
>
>All to varying degrees of unsuccess.

Try this:

	DOS SET PATH="%<PATH>;F:\\DIRNAME"

The \\ is important

------------------------------

Date: Fri, 31 Jan 1997 09:24:53 -0600
From: "Mike Avery" <mavery@mail.otherwhen.com>
To: "Michael Disher (doctord)" <doctord@mr.net>, netw4-l@bgu.edu
Subject: Re: Netware Restructuring

>My question is, does anyone have a good strategy for moving users
>and building an NDS that makes sense.  I'm concerned about the
>number of programmers and users who have been using login scripts
>and mapped drives for so long - each of about 250 of which have
>their own login script, poorly chosen username, and batchfiles used
>on exit of the system login script which does everything from map
>drives to launch programs.
>
>Surely one could just go through the drudgery, and I'm sure there
>will be some, of just creating the organizational structure, and
>renaming the users, duplicating their rights, and mappings and
>stuff....but I just have to thing that someone out there has devised
>a good scheme for this type of thing.

Bad news dude..... the short term "easy" way is to use migrate and
continue to live with the mess you have.

The better long term solution?  Well... sit down and let's talk.  And
get ready to be a drudge and have people hate you.

Individual user login scripts are a royal pain.  I suggest that you
do away with them.  The first step in that is to look at the existing
login scripts and see what people are doing with them.  In looking at
over 600 users, I found that most had very similar individual login
scripts, and that most of what was done fell into three broad
categories, stuff that should be done in the system login script,
stuff that was harmless but uneeded, and stuff that we were better
off without.

With a week or so to digest it, a co-worker and I distilled what was
happening into a system login script that we and the users could live
with.

Next, exiting the system login script has a few advantages - it makes
sure that the individual, container, and group login scripts won't be
used.  If you want any of these to be enabled, reconsider and put
the same code in the system login script qualified by an if test.  It
makes it easier to manage.

In most shops I've been in, the management want the users to fall
into a specific task after login.  In one case it was a menu system,
in another it was "the" application.  Very few shops really want
their users messing around in DOS or Windows.  To that end, I like to
exit the login script to a single batch file.  It closes the door on
the individual login scripts, and it puts control into a single batch
file.

If you employer wants some, many, most, or even all employees to drop
to DOS, that can be handled with if tests in either the login script
of the batch file.

All in all, I put as little as possible into the batch file - let the
login script handle directory mappings and so on, the batch file
application setup and launch.

The level of control this gives you will be helpful if you later
decide to implement centralized network management, inventory,
software distribution, or remote control software.  Be careful of
giving up too much control too quickly.

----------

Date: Thu, 30 Jan 97 08:22:19 -0800
From: Randy Grein <rgrein@halcyon.com>
To: "NetWare 4 list" <netw4-l@bgu.edu>
Subject: Re: Netware Restructuring

>Surely one could just go through the drudgery, and I'm sure there will be
>some, of just creating the organizational structure, and renaming the
>users, duplicating their rights, and mappings and stuff....but I just have
>to thing that someone out there has devised a good scheme for this type of
>thing.

For the most part, what you want to do is do a migration using the 
limited DS Standard product included in intranetware. You'll be able to 
model to your heart's content. As for the batch file adjuncts to login 
scripts there's unfortunately NO substitute for manual reprogramming of 
bad logic. The one thing you may be able to take advantage of is login 
scripts in containers, if there's a logical way to group these people. 
You can then do a lot of cut & paste to achieve what you need.

------------------------------

Date: Mon, 17 Mar 1997 18:02:55 -0700
From: Shawn <opeth@FUTUREONE.COM>
Subject: Re: Disabling Login Script Display

>>What command do I use in a 3.x login script to prevent the script lines
>>from displaying on the screen? For example, in our system login script, we
>>have a batch file called which updates the users' sales application on
>>their local drive. However, I don't want the lines of the script to be
>>displayed as they're executing. Any help would be appreciated. TIA!
>
>MAP DISPLAY OFF works for my  3.11 and 3.12 servers.

I thought that this command only determines whether or not drive mappings
are displayed at the time of login, _not_ your entire login script. Anyone
know if I'm wrong?

---------

Date: Tue, 18 Mar 1997 07:13:23 -0500
From: Dennis Large <wdlarg01@HOMER.LOUISVILLE.EDU>
Subject: Re: Disabling Login Script Display

>>MAP DISPLAY OFF works for my  3.11 and 3.12 servers.
>
>I thought that this command only determines whether or not drive mappings
>are displayed at the time of login, _not_ your entire login script. Anyone
>know if I'm wrong?

It will stop display during THAT script. If another is called, say your profile
or personal script, those will show unless you include that.

---------

Date: Mon, 17 Mar 1997 20:01:37 -0500
From: Slak! <jaysona@MICRO.ORG>
Subject: Re: Disabling Login Script Display

>What command do I use in a 3.x login script to prevent the script lines
>from displaying on the screen? For example, in our system login script,
>we have a batch file called which updates the users' sales application
>on their local drive. However, I don't want the lines of the script to
>be displayed as they're executing. Any help would be appreciated. TIA!

Place "Map  Display Off" as the first or one of the first lines in your
system login script.

This will prevent all drive mappings from being displayed to the
workstation, however it will not block other command output such as
printer captures.

If the command being displayed are the results of batch file, place "@Echo
Off" on the first line of the batch file.

What kind of lines are you seeing on the workstation that you do not want
displayed?

Typically, with the Map Display Off command, any lines that are displayed
are results only.

------------------------------

Date: Wed, 26 Mar 1997 08:17:02 +0800
From: Brett Looney <BLooney@COMTECH.COM.AU>
Subject: Re: NAL and Variables

>I'm trying to get an application to Launch from a user's folder from
>within NAL, and allow the user to log into any station and that
>application would still launch from the same network directory.
>
<snip>
>
>	F:\EMAIL\%LOGIN_NAME%\EUDORA\EUDORA.EXE
>
>But I get an error, and NWAdmin will not let me set the application

The problem here is that application command lines (such as this) are
_not_ login scripts.

In a login script, you can go "map root h:=data:users\%login_name" because
LOGIN.EXE (or the Win95 equivelant) knows about that particular variable.

But, when you come to run an application, DOS has to know what that
variable contains. So, in your login script you could have a line that
says:

	dos set username="%LOGIN_NAME"

and then change your line (above) in NAL to read:

	F:\EMAIL\%USERNAME%\EUDORA\EUDORA.EXE

Now, I'm not even sure that this will work because NWAdmin may not
automatically replace variable names when you type in the command line.
So, another alternative is to map your users home directory in the login
script (as above - this is probably already being done...) and then
change the NAL line to be:

	H:\EUDORA\EUDORA.EXE

---------

Date: Tue, 25 Mar 1997 16:52:23 -0800
From: "Robert S. Sfeir" <robert@BUYSIDE.COM>
Subject: Re: NAL and Variables

DUH! %LOGIN_NAME needs to be in CAPS!

Sorry about the trouble and thanks for the help

------------------------------

Date: Thu, 10 Apr 1997 13:48:29 +1000
From: Greg J Priestley <Greg_J_Priestley%PKF@PKF.COM.AU>
Subject: Re: Login script: Transfer NDS variables to a file.

See the following - hope it helps:

Example Login Script showing identifiers used by LOGIN.EXE for NetWare 4.10
===========================================================================

The following text illustrates identifier variables available for use in a
NetWare 4.10 Login Script.

Also shown are :
The use of <variable> to display an environment variable
The use of the MAP command to MAP to the user's Home Directory
The use of the MAP command to MAP to the 'nearest' SYS:PUBLIC and SYS:APPS
 directories

To copy this into a user's login script please do the following in the
Windows environment:

	- Run NOTEPAD and open the file LOG410.DOC
	- Edit / Select All
	- Edit / Copy
	- Flip to NWADMIN and select a user object
	- Select the Login Script button
	- Press Shift and Insert
	- Clean up what is not needed

WRITE "Login script begin"
MAP DISPLAY ON
WRITE ""
WRITE "Access Server                    : %ACCESS_SERVER"
WRITE "Account Balance                  : %ACCOUNT_BALANCE"
WRITE "Administrative Assistant         : %ADMINISTRATIVE_ASSISTANT"
WRITE "Allow Unlimited Credit           : %ALLOW_UNLIMITED_CREDIT"
WRITE "Certificate Validity Interval    : %CERTIFICATE_VALIDITY_INTERVAL"
WRITE "CN (Common Name)                 : %CN"
WRITE "Description                      : %DESCRIPTION"
WRITE "E-Mail Address                   : %EMAIL_ADDRESS"
WRITE "Employee ID                      : %EMPLOYEE_ID"
WRITE "Equivalent To Me                 : %EQUIVALENT_TO_ME"
WRITE "Fax Number                       : %FACSIMILE_TELEPHONE_NUMBER"
WRITE "File Server                      : %FILE_SERVER"
WRITE "Full Name                        : %FULL_NAME"
WRITE "Generational Qualifier           : %GENERATIONAL_QUALIFIER"
WRITE "Given Name                       : %GIVEN_NAME"
WRITE "Group Membership                 : %GROUP_MEMBERSHIP"
WRITE "Higher Privileges                : %HIGHER_PRIVILEGES"
WRITE "Home directory                   : %HOME_DIRECTORY"
WRITE "Initials                         : %INITIALS"
WRITE "L (Locality)                     : %L"
WRITE "Language                         : %LANGUAGE"
WRITE "Last Name                        : %LAST_NAME"
WRITE "Locked By Intruder               : %LOCKED_BY_INTRUDER"
WRITE "Login Context                    : %LOGIN_CONTEXT"
WRITE "Login Disabled                   : %LOGIN_DISABLED"
WRITE "Login Grace Limit                : %LOGIN_GRACE_LIMIT"
WRITE "Login Grace Remaining            : %LOGIN_GRACE_REMAINING"
WRITE "Login Maximum Simultaneous       : %LOGIN_MAXIMUM_SIMULTANEOUS"
WRITE "Login Name                       : %LOGIN_NAME"
WRITE "Machine                          : %MACHINE"
WRITE "Mailbox ID                       : %MAILBOX_ID"
WRITE "Mailbox Location                 : %MAILBOX_LOCATION"
WRITE "Mailstop                         : %MAILSTOP"
WRITE "Message Server                   : %MESSAGE_SERVER"
WRITE "Minimum Account Balance          : %MINIMUM_ACCOUNT_BALANCE"
WRITE "Network Address                  : %NETWORK"
WRITE "Object Class                     : %OBJECT_CLASS"
WRITE "OS                               : %OS"
WRITE "OS Version                       : %OS_VERSION"
WRITE "OU (Department)                  : %OU"
WRITE "Password Allow Change            : %PASSWORD_ALLOW_CHANGE"
WRITE "Password Expires                 : %PASSWORD_EXPIRES"
WRITE "Password Minimum Length          : %PASSWORD_MINIMUM_LENGTH"
WRITE "Password Required                : %PASSWORD_REQUIRED"
WRITE "Password Unique required         : %PASSWORD_UNIQUE_REQUIRED"
WRITE "Passwords Used                   : %PASSWORDS_USED"
WRITE "Physical Delivery Office Name    : %PHYSICAL_DELIVERY_OFFICE_NAME"
WRITE "Physical Station                 : %P_STATION"
WRITE "Postal Address                   : %POSTAL_ADDRESS"
WRITE "Postal Code                      : %POSTAL_CODE"
WRITE "Postal Office Box                : %POSTAL_OFFICE_BOX"
WRITE "Private Key                      : %PRIVATE_KEY"
WRITE "Profile                          : %PROFILE"
WRITE "Requester Context                : %REQUESTER_CONTEXT"
WRITE "Requester Version                : %REQUESTER_VERSION"
WRITE "Revision                         : %REVISION"
WRITE "S (State)                        : %S"
WRITE "SA (Street Address)              : %SA"
WRITE "Security Equals                  : %SECURITY_EQUALS"
WRITE "Security Flags                   : %SECURITY_FLAGS"
WRITE "See Also                         : %SEE_ALSO"
WRITE "Server Holds                     : %SERVER_HOLDS"
WRITE "Shell Version                    : %SHELL_VERSION"
WRITE "Station                          : %STATION"
WRITE "Supervisor                       : %SUPERVISOR"
WRITE "Surname                          : %SURNAME"
WRITE "Telephone number                 : %TELEPHONE_NUMBER"
WRITE "Title                            : %TITLE"
WRITE "User ID                          : %USER_ID"
WRITE ""
REM
REM Display Last Login Date and Time
REM
LASTLOGIN
WRITE ""
REM
REM Display Environment Variables
REM
WRITE "COMSPEC                          : "; <COMSPEC>
WRITE "NWLANGUAGE                       : "; <NWLANGUAGE>
WRITE "TZ (Timezone)                    : "; <TZ>
WRITE ""
REM
REM Perform drive mappings
REM
MAP S1:=%FILE_SERVER/SYS:PUBLIC
MAP S2:=%FILE_SERVER/SYS:APPS
MAP H:=%"HOME DIRECTORY"
DRIVE H:
REM
WRITE ""
WRITE "Login script end"


Created : 13 Feb 95
Revised : 20 Feb 95

Marcus Williamson
Novell Consulting Services (Europe)
MHS: MJWILLIA@NOVELL
INT: Marcus_Williamson@NOVELL.COM
CIS: 71333,1665
WWW: http://outworld.compuserve.com/homepages/marcus_williamson/

------------------------------

Date: Mon, 5 May 1997 16:44:31 -0600
From: Joe Doupnik <JRD@CC.USU.EDU>
Subject: Re: Client 32 not running login scripts

>On my network, all machines run Client 32.  Most work fine but some just
>stop running the login script, and don't display any errors.  No drives or
>printers get mapped because of this.  After trying, unsuccessfully, to
>determine the problem I had to use Microsoft's Network Neighborhood to
>permanently map the drives.  I have upgraded these clients to Client 32
>2.12, but the problem persists.  My workstations are running Win95 using
>Novell's Client 32 to attach to the Netware 4.10 server.  I have checked out
>the settings in Client 32, (ie Run Scripts) and the settings seem correct.
----------
	Without specifics of those scripts the guessing game isn't
productive.  We have commented repeatedly that Client32 prefers scripts
which have lines without leading whitespace.
	Joe D.

------------------------------

Date: Thu, 22 May 1997 13:09:53 -0400
From: Tim Munro <Tim_Munro@CARLETON.CA>
Subject: Client32/Win95/Script saga; there is light at the end...

For those of you who have been following the troubles of Scripting
with Win95 and Client32 package, I have just install their newest BETA
v2.20 Client32. Low and behold all my scripting problems are gone. It
works wonderfully. To those who are experiencing these problems it may
well be worth your while trying the beta release.

------------------------------

Date: Sun, 12 Oct 1997 01:07:48 -0400
From: Philip Reznek <preznek@VISYS.COM>
Subject: Re: Login script modification

>We would like to add a snippet of code to our login script to
>determine the operating workstation operating system (WFWG, WINNT, WIN95).
>As I am new to novell I was wondering if someone could tell me if the
>code below is accurate:
>
> IF OS=="(whatever the value is for WFWG)" THEN GOTO WFWG
> IF OS=="(whatever the value is for WIN95)" THEN GOTO WIN95
> ;(otherwise execute commands for WIN/NT here)
> GOTO END
>
> WFWG:
> ;(WFWG commands go here)
> GOTO END
>
> WIN95:
> ;(WIN95 commands go here)
> GOTO END
>
> END:
> e-mail: glynn.richardson@canrem.com
> www:    http://www.inforamp.net/~glynnr

You'll want to use something like this:

if <script variable> = "<your literal for WFG>" then
   ;WFG statments
else
  if <script variable> = "<your literal for W95>" then
     ;W95 statements
  else
      if <script variable> = "<your literal for NT>" then
	 ;NT statements
      else
	 ;handle problems here
      endif
  endif
endif

to avoid the chance that your login script will be confused with an MS
batch file.  Replace <xxxxx> with the right stuff, of course (it's BBN).

You have at least 'DOS Name,' 'Long Machine Type,' and 'Short Machine
Type' (all of which may be set in the current Novell Netware clients if
the default values aren't suitable; and in net.cfg for VLM, don't recall
DOS Name there).

The Red Books give the information you need for writing scripts
including Begin/End if needed and variable names.  The names I gave in
the previous paragraph are not the exact form the script uses.

Since you say you are new to Novell Netware, this short list of common
login script pitfalls may help you: Check TID 2905185 at
support.novell.com for using DOS environment variables.  Don't use TEMP
SET, TID 2930744.  If you run a batch file, do #batchfilename, TIDs
1006704, 2906944.  If you do Exit "Somefilename" the somefilename and
path can't be over 14 characters, TID 2906670.  If you don't do an Exit,
then the user login script will run.  If only default user login scripts
exist, the default user login scripts can change mappings you may have
set in the system script.

------------------------------

Date: Wed, 15 Oct 1997 17:50:38 GMT
From: John Veness <john.veness@DRL.OX.AC.UK>
Subject: Re: Copy files in login script

>Is there a way of copying files from within a login script without
>running a batch file?
>
>My problem is the batch file needs command.com available and one of the
>files I am trying to copy is command.com!

Set the comspec environment variable to an available copy of
command.com (ie, one on the network) in the login script, then the
batch files will work. I do just this in my login script.

------------------------------

Date: Sun, 26 Oct 1997 13:54:30 -0600
From: Joe Doupnik <JRD@CC.USU.EDU>
Subject: Re: Login script not executed in bindery mode

>When I login in bindery mode the login script is not execute. But if I
>login in the tree there no problem, the login script has been execute.
>It's on Novell 4.11
--------
	Because NDS logins use scripts located in NDS and bindery emulation
logins use scripts located as files in sys:mail.
	Joe D.

------------------------------

Date: Mon, 27 Oct 1997 18:35:08 -0500
From: Bud Durland <ndurland@CAPITAL.NET>
Subject: Re: Re[2]: Login script not executed in bindery mode

>>Because NDS logins use scripts located in NDS and bindery
>>emulation logins use scripts located as files in sys:mail.
>
>I thought that one needed to copy net$log.dat to sys:public to run
>the nw3 system login script?

You are correct -- bindery logins will look for net$log.dat and will
run it if it is found.  In bindery mode, there are no personal login
scripts, so if you need login id specific stuff, you'll need to
shoehorn it into the net$log.dat file.

---------

Date: Mon, 27 Oct 1997 16:30:55 -0800
From: "David H. Wentworth" <David.Wentworth@UCOP.EDU>
Subject: Re: Re[2]: Login script not executed in bindery mode

>You are correct -- bindery logins will look for net$log.dat and will
>run it if it is found.  In bindery mode, there are no personal login
>scripts, so if you need login id specific stuff, you'll need to
>shoehorn it into the net$log.dat file.

I agree regarding the system login script, but not about user login
scripts.  Bindery logins will run the script in the user's mail directory.

---------

Date: Mon, 27 Oct 1997 19:15:11 +0200
From: Mike Glassman - Admin <admin@IAA.GOV.IL>
Subject: Re: Login script not executed in bindery mode

When you login via Bindary mode, you are telling the system to act like
a Bindary server. On pre Netware 4.x systems, the systems did not know
how to refer to NDS login scripts which no longer sit in
MAIL\USERNAME\.... etc, or in the other system directories.

Remember that login scripts under NDS sit as part of the NDS, so you
can't see them from DOS.

If you want a login script for Bindary mode, you need to put one in
there, otherwise it won't work.

Why tho, would you want to login via Bindary mode to a 4.11 server if I
may ask ?

------------------------------

Date: Tue, 16 Dec 1997 12:34:30 -0600
From: George Taylor <GTAYLOR@LHSNET.COM>
Subject: Re: SET Command -Reply

>This error shows up after the 4.11 container login script is finished
>running.  Took a look at the online help and the example is SET path =
>"$p$g"?  Any ideas?
>
>Script error:
>LOGIN-4.20.42-530: The line contains no end quote.
>
>The original line was:
>SET mv = "f:\"

Use SET MV="F:\\"
Two slashes are needed.

---------

Date: Wed, 17 Dec 1997 08:25:01 EST
From: "Kenneth L. Jones" <kjones@JONES.EDU>
Subject: Login Scripts, NOVELL Digest - 16 Dec 1997 - Special issue

>>>This error shows up after the 4.11 container login script is finished
>>>running.  Took a look at the online help and the example is SET path =
>>>"$p$g"?  Any ideas?
>>>
>>>Script error:
>>>LOGIN-4.20.42-530: The line contains no end quote.
>>>
>>>The original line was:
>>>SET mv = "f:\"
>>>
>>>LOGIN-4.20.42-560: This utility could not find the label END.
>>>
>>>Script error:
>>>LOGIN-4.20.42-600: This utility could not interpret the line.
>>>
>>>The original line was:
>>>set mv=f:\
>>
>>Could it be the spaces before/after the equals sign?
>>   SET mv = "f:\"
>>
>>I use the SET command, and the following example works:
>>   SET WSUSER="%LOGIN_NAME"
>>
>>Note that there are NO spaces before/after the equals sign.
>
>Spaces or not, it didn't make a difference.  Have to check and see
>if upper/lower case matters.

I have used The following line without problems in NW4.10
and NW4.11.

 DOS SET USER="%LOGIN_NAME"

------------------------------

Date: Sun, 21 Dec 1997 10:27:10 +0200
From: Mike Glassman - Admin <admin@IAA.GOV.IL>
Subject: Re: external commands in login script

First off, it is not at all a good idea to run *.com or *.exe files from
within your login script due to the fact that you open a command shell
under a dos box which does not always get released. When this happens,
you sometimes lose the pointer back to the script and your puter hangs.

If you want to run such a program, do one of two things:

1. Run it as an "exit" command at the end of your script or under
   an IF statement.
2. Use the command shell option so the window closes fully after
   running.

I have always spoken out against running dos programs from login
scripts, and this includes things such as:- mouse drivers, text file
viewers, tsr's, rprinter/nprinter, anti viruses etc.

------------------------------

