JRBUTILS v2.20	20-Oct-1994

Part A has been expanded to 30 programs (27 was never an aesthetically
pleasing number!) by the following changes:

   o	Retired Setxonly.
   o	Moved Usergrps from Part B to Part A so that all group management
	utilities are in Part A.
   o	Added Makememb which allows adding/removing users to/from multiple
	groups.
   o	Added Accexp which can be used in a login script to warn of impending
	account expiration.
   o	Added Sethome2 which is an extended version of David Harris' Sethome,
	written with David's permission.

New features, changes and bug fixes in v2.20 (the ones that I can recall!)

   All (or most) programs

   o	Updated the help display to allow arrow-up, arrow-down, top,
	bottom etc.
   o	Added /l to control whether non error output is written to the screen,
	and/or to a log file. Output may optionally be appended to an
	existing log file.
   o	Added /e to control whether error output is written to the screen,
	the log fle optionally created via /l, to an error only log file,
	or is discarded. Output may optionally be appended to an
	existing error log file.
   o	Fixed a problem in programs accepting a path as input where the
	path was reported to be invalid when it was a local drive mapped
	to a network drive.

   Chkhome
   o	Added /h to list only the home directories. This can be useful when
	preparing a BAT file to perform some operation on the directories.

   Creatobj
   o	Now creates the MISC_LOGIN_CONTROL property for users. This property
	is rarely used, but the lastlgn program below can use it.
   o	Now gives a sensible error when it cannot create a home directory
	for usernames exceeding 8 characters in length.
   o    Changed the previous /l (for pointing to a login script) to /m so
	that /l is now used across all programs to log all output to a file.

   Delobj
   o	DELOBJ simply exited when a valid path was supplied via /d (It was
	treating a return code of OK from the checking routine as an error).
   o	Added /x to purge files as they are deleted.

   Dquota
   o	Now adjusts output units as needed to avoid integer overflow (e.g.
	for values > 4.3 GB)
   o	Now gives the free space as the smaller of quota - used and the free
	space on the volume.
   o	Added substitution parameter %p for user supplied text files. %p
	waits for a key to be pressed before continuing.
   o	Fixed various minor bugs.

   Getbal
   o	Added sorting by value.
   o	Added filtering of output e.g. balances < $10.00.
   o	Can now select which variables are displayed and in what order
	(balance, credit limit etc).
   o	Can now display the default account balance and credit limit given to
	users created using SYSCON and CREATOBJ (displayed under SYSCON's
	"Supervisor Options", "Default Account Balance/Restrictions").
   Getequiv
   o	Can now use ! to exclude servers e.g. '*,!fred/*' would process all
	users on all servers except server FRED.

   Getquota
   o	Now adjusts output units as needed to avoid integer overflow (e.g.
	for values > 4.3 GB).
   o	Now gives the free space as the smaller of quota - used and the free
	space on the volume.
   o	Added /dt to display quotas etc for all directories in a tree.
   o	Added /di for use with dt to display usage inclusive of
	subdirectories.
   o	Added /y to process entire directory trees for users.
   o	Added /w to control space available for printing directories,
	usernames etc.

   Getrest
   o	Renamed from getacres (getrest = GET RESTrictions).
   o	Added /t to output only the total users.
   o	Added /u (output usernames only).
   o	Added /n (dont output the full names).
   o	Added /v (output values only).
   o	Added /z to display the default account restrictions for users
	created using SYSCON (displayed under SYSCON's "Supervisor Options",
	"Default Account Balance/Restrictions").

   Grpadd
   o	Renamed from grpaddu.
   o	Server names may now precede all user or group names, but obviously
	all must be the same.

   Grpdel
   o	Renamed from grpdelu.
   o	Server names may now precede all user or group names, but obviously
	all must be the same.

   Grplist
   o	Can now specify wild cards in the group name when an expression
	is not used.
   o	Can now give expressions to list users whose membership meets
	criteria across one or more groups e.g. '(A & B) ~ !C' would list
	those users who are members of both groups A and B, or are not a
	member of group C.
   o	Added /u to indicate that all users on the server should be listed.
	This was previously done by giving '*' instead of a group name, but
	'*' will now list membership of all groups on the server.
   o	Changed previous /l to /b so that /l is now used across all programs
	to control non error output.

   Killconn
   o	Worked around a bug in a Netware function call causing loss of
	connection to the server when a user was specified and packet
	signatures are in use.
   o	Can now give a server name followed by a slash (e.g. PUHA/) as
	the first parameter to force /a, /i or /n to operate on a server
	other than the one to which your current drive is mapped.

   Listobj
   o	Added ! to exclude servers e.g. *,!fred/* would list all objects
	of the nominated type on all servers except server FRED.
   o	Added /n to force searching through the full name field as well as
	object names e.g. 'listobj */john /n' would list all users named
	'john' plus any others with 'john' appearing as a separate word in
	the full names. Wild card searching in the full name is supported.
   o	Changed previous /l to /m so that /l is now used consistently across
	all programs to control non error output.
   o	Added /b to list only static bindery objects.
   o	Added /c to list only dynamic (temporary) bindery objects.

   Mgradd
   o	Renamed from uamadd.
   o	Removed the need for supervisor equivalence, so that it can be
	used by managers to manipulate managed objects. Supervisor
	equivalence is still required to create a work group manager.

   Mgrdel
   o	Renamed from uamdel.

   Mgrlist
   o	Renamed from uamlist.

   Netcopy
   o	Lots of minor improvements.
   o	Fixed bug in /u where it was comparing the update dates incorrectly.
   o	Modified to allow copying of files only, added /s to copy subdirs.
   o	Added support for other name spaces, and for extended attributes as
	used by OS/2. I believe OS/2 files are copied correctly, NFS files
	appear to be copied correctly so long as /t is used. Netcopy has
	not been tested with FTAM files but will attempt to preserve their
	name space attributes.
   o	Added facility to adjust vol and dir quotas as they are copied.
	This is primarily for use when copying to a volume with a larger
	block size.
   o	Now checks that there is sufficient space before copying each file.
	This allows for volume space, volume quotas and directory quotas.
   o	Can now remove volume and dir quotas before copying, and restore
	afterwards. The quotas removed are logged to a file as Setquota
	commands so that in the event of abnormal termination of netcopy,
	the quotas removed can be easily restored.
   o	Fixed a problem overwriting files which were flagged 'delete inhibit'
	rather than 'read only'.
   o	No longer leaves zero length files in the destination directory
	when the source file is in use and can't be opened.
   o	Added option /n=b to not copy hidden directories.
   o	Added option /n=c to not copy hidden files.
   o	Added /a to copy only those files with the archive bit set.
   o	Added /b to reset the archive bit on the copy of the file.
   o	Added /i to reset the archive bit on the original file.
   o	Added /c to allow creation of the lowest level of the destination
	directory e.g. if copying to vol1:data\temp, netcopy can create
	the temp subdirectory.
   o	Now correctly handles copying a directory tree to a subdirectory
	of itself.
   o	Added /q to query whether or not to copy each file.
   o	Worked around an intermittent bug copying volume quotas which
	appears to be caused by an incorrect buffer size in a Netware
	function call.
   o	Now deletes files in the destination directory rather than simply
	overwriting them. This allows them to be subsequently salvaged.

   Pqadd
   o	Added /r to allow addition of print servers to a queue.

   Pqdel
   o	Added /r to allow removal of print servers from a queue.

   Pqdeljob
   o	Can now specify a range of jobs to be deleted e.g. 1-25.

   Pqlist
   o	Fixed bug where output was out of alignment when the owner of a
	queued job no longer existed.

   Pqusers
   o	Can now display print servers associated with the queue.
   o	Can now display both users and operators, or users, operators
	and print servers in one invocation of the program.
   o	Can now expand user and/or operator groups to list all users who
	are users or operators.
   o	Auto-sorts the queues into alphabetical order.

   Psusers
   o	Added auto-sorting of print server names when wild cards are
	used.

   Salvlist
   o	Added /z to search on file size.
   o	Added /m to search on deletion date/time.
   o	Added operators =, !=, >, >=, <, <= to filter by file name, size,
	owner, deletor, deletion date/time.
   o	Can now specify a filename as part of the path.
   o	Added support for wild cards in file names.
   o	Added /r to recover files matching the search criteria. These will
	automatically be renamed to a unique name if a file already exists
	with the original name. An existing file with the same name as the
	file being recovered may optionally be replaced (the existing file
	deleted). An option exists to replace existing read-only files.
   o	Added the ability to process a list of directories/files in a file.
   o	Added /n to recover the newest file where there are multiple
	deleted files with the same name. A value may be given e.g. /n=2
	recovers the newst file but two i.e. the 3rd newest.

   Setbal
   o	Added /z to set the default balance or credit limit used by SYSCON
	(displayed under SYSCON's "Supervisor Options",	"Default Account
	Balance/Restrictions").

   Setequiv
   o	Fixed a bug where it was not detecting work group or user account
	managers correctly.

   Setname
   o    Renamed from setfname.
   o	Added /m to process MAKEUSER input files. Makeuser always converts
	the fullname to uppercase, so after running Makeuser, feed the same
	file to Setname and the full name will be set exactly as specified.

   Setowner
   o	Removed requirement for /o when setting ownership on individual files.
   o	Added (new) /o to specify the object type of the new owner. You can
	now set ownership to any object type.
   o	Lots of minor changes and tidying of output.

   Setpword
   o    Now operates across multiple servers.
   o	Can use ! to skip servers e.g. '*,!fred/supervisor' would set the
	supervisor password on all servers except FRED.
   o	Changed range code to allow ranges with unequal numbers of digits
	e.g. aa1-aa10.
   o	Can now change passwords for any type of object.
   o	Can now be used by anyone, but the old password is required if you
	are not supervisor equivalent, or a manager of the object whose
	password is being changed.
   o	Can now generate random passwords of any length.
   o	Passwords may be logged to a file with user control over the file
	format. This is intended for use with, but is not limited to, random
	password generation.

   Setquota
   o 	Added /c to control output units.
   o	Output units now default to same as the input units.
   o	Added autochange of units to avoid integer overflow for large quotas.
   o	Added /dt to set/remove a quota on all directories in a tree.

   Setrest
   o	Renamed from setacres (setrest = SET RESTrictions).
   o	Fixed a bug where when deleting station restrictions from a user
	with more than 12 restrictions, every 12th was corrupted.
   o	Can now set the default account restrictions for users created
	using SYSCON (these are usually set under SYSCON's "Supervisor
	Options", "Default Account Balance/Restrictions".

   Trstlist
   o	Added /o to specify any object type.
   o	Added /r to specify print servers.
   o	Added /m to output as REMOVE commands.
   o	Added sorting by object, path or rights.
   o	Added filtering of output e.g. list only trustees including the S
	right.
   o	Added autodetection of files given on the command line, removing
	the need to use /f, which now functions as per other programs to
	indicate a file containing users, directories or files for which
	the ownership is to be changed.

   Usergrps
   o	Added optional sorting of the groups.

   Usermgrs
   o	Renamed from useruams.
   o	Added optional sorting of managers.

   Users
   o	Added ! to exclude servers e.g. *,!fred/*.
   o	Can now output object ID's.
   o	Changed previous /l (used to specify a location) to /m so that /l
	could be used consistently across all programs to control non
	error output.


New programs in JRB220 Part B.

   Moveuser

   Copies users and groups from one server to another retaining all bindery
   properties and their contents where possible, and copies the contents of
   mail and home directories, retaining all attributes, trustees, quotas etc
   as per NETCOPY. Quotas can be adjusted during the copy (for larger block
   sizes on the dest volume), and groups can be substituted. Password may be
   left NULL or set to the username. The home directory path may be altered
   during copying  (e.g. from VOL1:USERS to USERS:ECON). Groups can be
   created on the destination server as required when moving users who belong
   to these groups on the source server. Ownership of files can be set to
   the user regardless of original owner. A translation file may be given
   to change group membership on the destination server.

   FSUpdate

   Multi-server file maintenance utility. Copies individual files, files
   selected via wild cards, or entire directory trees to multiple servers.
   Useful for software updates. Can also delete or rename multiple files
   across multiple servers. Can purge files upon deletion. Has the usual
   range of options. Correctly handles MAC name space, I believe it
   handles OS/2 correctly, and should handle NFS files provided the -t
   switch is used.

   PQStatus

   Allows you to view and alter the status of multiple print queues across
   multiple servers. Alterable values (these may be toggled or set to a
   specific value) are (a) jobs can be submitted to the queue, (b) servers
   can attach to the queue, and (c) servers can service the queue.

   Con_ops

   Allows you to add, delete and list console operators.

   JRBMap

   (was to be called NETMAP but someone else has recently released a program
   with this name). A replacement for Novell's MAP, primarily for use in
   BAT files where it will map drives without fuss and piping in 'y's and
   'n's. Can specify alternative paths so that in the event of one being
   unavailable it will try the next (We use this for all applications at
   Lincoln University so that in the event of an APPS volume failing, the
   application will simply be retrieved from the corresponding volume on
   another server). Can save existing mappings in the DOS master environment
   and subsequently restore from there. Supports map root.

   JRBPurge

   Allows selective purging of files - has many of the options of salvlist.
   Supports purging by name, size, owner, deletor and deletion date and time.

   Lastlgn

   Can be used in a login script to display the user's previous login date
   and time. This provides a useful indication of when the account was last
   used. This may not work under NW 4.x. Lastlgn requires that each user
   have a MISC_LOGIN_INFO property and it can be used to create these
   and copy the previous login date and time from the LOGIN_CONTROL
   property by a supervisor equivalent user or a manager. The last
   login date and time in the LOGIN_CONTROL property is overwritten
   with the current date/time by the login process, and so has been
   changed by the time LOGIN begins executing the login script. LOGIN
   does not update the date/time in the MISC_LOGIN_INFO property until
   immediately prior to exit, thereby making the previous login time
   available during execution of the login script.

JRBUTILS v2.12	24-Mar-1994

1. New features

   o	In all programs, a line beginning with ';' in a input file is
	treated as a comment line.
   o	In GETQUOTA, added option /nc to suppress commas in numeric values.
   o	In GETQUOTA, added option /us to display the subdirectory name
	rather than the full path, which could be truncated if too long for
	the available space.
   o	In GETQUOTA, /v is now superflous - it is no longer required when
	a volume appears on the command line.
   o	A similar change has been made in SETQUOTA, but /v must be used if
	a volume name appears in an input file.
   o	In GRPLIST, the group name may be preceded by '!' meaning list all users
	not a member of the group.

2. Bug fixes (ignoring the most obscure ones)

   o	In all programs, fixed a problem with detection of output redirection
	which was introduced in v2.11. A very small number of sites were
	unable to display the in-built help.
   o	In many programs, when using an input file, the last character of
	the last line could be lost if there was no <CR><LF> at the end
	of the file.
   o	In SETQUOTA, RENOBJ, SETFNAME fixed a problem where blank lines in
	input files were producing error messages.
   o	GETQUOTA, SETQUOTA, GETACRES and SETACRES previously required that
	all options appear after the parameters, whereas in all other
	programs, options could appear anywhere on the command line. These
	4 programs now accept options anywhere on the command line.
   o	DELOBJ. The protection on the HOME_DIR bindery property created by
	David Harris' SETHOME is such that users can change the contents of
	this property. This makes it possible for a user to set it to some
	other directory e.g. SYS:PUBLIC. As DELOBJ will delete the directory
	found in the HOME_DIR property, this was a potential hazard. DELOBJ
	now checks the user's rights to the directory found in the HOME_DIR
	property. If the user does not explicitly have a trustee assignment
	granting [ RWECMFA], DELOBJ will now query whether or not to delete
	the directory. To avoid this check, use /a.
   o	In CREATOBJ, removed a limitation where when specifying a login
	script file, it previously had to be on the same server as the user
	being created.
   o	When using /c in CHKHOME, error messages about being unable to
	allocate a directory handle because there was no such directory,
	some times appeared. These occurred when scanning for a matching
	directory on other volumes when the user's home directory did not
	exist. They have been suppressed.
   o	In DQUOTA, if any of the total quota, total usage, or total space
	available exceeded 2.1 GB, when using /v, the output was messed up.
   o	In DQUOTA, when a directory was specified, and that directory had
	less than the warning threshold of free space, dquota displayed
	" has less than xxx Bytes available". It now inserts the directory
	name.
   o	In DQUOTA, when /cm was combined with /nc, the output was incorrect.
	The decimal point was overwriting one of the digits.
   o	In GRPADDU, when /q was used, the server name, group name and user
	name in the prompt were in the wrong order.
   o	In GRPDELU, the wrong server name appeared in an error message when
	trying to add an non-existant user on another server.
   o	Fixed a bug in GETQUOTA where /t gave zero totals.
   o	Modified GETQUOTA to display totals even when there was only one
	line of output. I had previously suppressed totals in this case as
	the totals equalled the values in the single line and were therefore
	superflous. But some folks are running automated procedures which
	redirect output to a file then use grep to find the totals line.
	Therefore I've decided it is better to be consistent and always
	output a totals line.

JRBUTILS v2.11	18-Dec-1993

1. New features

   o	In USERS, you can now specify the connections you want displayed
	using /c.
   o	GETQUOTA now allows you to suppress quotas, space used and space
	available using /o=n.
   o	LISTOBJ, RENOBJ, CREATOBJ, DELOBJ and KILLCONN now allow you to
	specify the object type in hexadecimal using /o. This removes an
	inconsistency where LISTOBJ displays object types in hex (using /a)
	but other programs required the object type in decimal.
   o	Added /a to GRPLIST to list the group members by an alternative
	and slower method. This avoids a limitation in the
	NWReadPropertyValue function which is reached when a group has
	more than about 8,000 members. All programs using this function now
	produce a warning if the limitation is reached when processing the
	members of a group. Use GRPLIST /a/l to produce a file, and use this
	file as input to other programs.

2. Unfixed bugs

   o	A user has reported DQUOTA hanging under NW 2.15. I have had no
	luck whatsoever identifying this problem.

3. Bug fixes (ignoring the most obscure ones)

   o	/p did not work in SETACRES
   o	SETACRES didn't create a user's LOGIN_CONTROL property when
	necessary.
   o	Preceding a username with a '$' in SETFNAME did not work.
   o	Preceding object names with '$' and '#' in DELOBJ did not work.
   o	TRSTLIST, GETEQUIV and GETACRES did not allow you to display
	information for objects to which the user was security equivalent
	e.g. TRSTLIST did not allow a member of a group to display trustee
	assignments for the group.
   o	KILLCONN did not allow a manager to clear connections for managed
	objects. NW 3.11 does not seem to allow this anyway, athough its
	documented as being possible.
   o	GETACRES would more often than not fail to display all users when
	sorting by value due to a bug in the sub-sorting code.
   o	USERS would display the location in uppercase when selecting by
	location.
   o	SETQUOTA failed to release directory handles when setting directory
	quotas and the quota being set equalled the existing quota. This
	could result in it running out of directory handles.
   o	Full names for users and groups should be limited to 48 characters
	but SYSCON allows them to be set longer. This caused output to be
	screwed up in USERS and LISTOBJ.
   o	Fixed a couple of minor errors in the help for USERS.
   o	/w in CREATOBJ could not be used to specify a password for a
	print server.
   o	/g was missing from UAMDEL.
   o	DELOBJ misbehaved when using an input file with records longer than
	48 characters.
   o	DELOBJ was not deleting subdirectories of a users home directory.
   o	DQUOTA contained a superfluous printf statement outputting the
	username when /y was used.
   o	SETOWNER would sometimes hang when it encountered a file with
	characters in the name with the eighth bit set. This was a bug
	in the Client SDK and I've avoided it by using a different function
	call.
   o	DQUOTA, GETQUOTA, SETQUOTA, SETOWNER, SETXONLY, CHKHOME, CREATOBJ,
	TRSTLIST and SALVLIST all had a problem with processing hidden
	directories. This is fixed.
   o	NETCOPY would hang intermittantly.
   o	When GRPADDU created a group but did not add any members (grpaddu
	group /c) the group was left without a GROUP_MEMBERS property. This
	did not cause problems when subsequently using GRPADDU, but less
	elegant programs <grin> such as SYSCON and MAKEUSER then could not
	add members.

JRBUTILS v2.10	2-Oct-1993

The changes listed below are the ones that I can remember. There are
undoubtedly changes that I have forgotten, and many which are too trivial
to document.

1. New features

   All programs

   o	A server name may precede a user name, group name or path where ever
	one of these may be used. If you are not already attached to the
	named server, you will be prompted for a username and password, and
	the program will log you in. You may control logging out again using
	the switch /k.
   o	Wild cards may now be used in user names and group names e.g.
	'getquota z*' will process all users on the current server whose
	username begins with 'z'.
   o	Support for work group managers and user account managers. Many
	programs formerly required supervisor equivalence preventing uams
	and wgms from using them. This has been fixed and all programs may
	be used by uams and wgms to perform tasks which Netware allows.
   o	Support for connections numbers greater than 250.
   o	Allow connections to up to 50 servers simultaneously.
   o	Packet signatures now supported when logging into other servers.
   o	Added the ability to precede any object name with a '$' to force it
	to be treated as a user. This may benefit those of nervous disposition!
   o	Reduced the in-built help and prevented redirection of help to a file.

   Users
   o	Can now sort by any output field.
   o	Can now design your own output selecting the fields, the order in
	which they appear, and the width of each field.
   o	Now gives the peak connections used in the totals line for /c.
   o	New /r switch to display logged in print servers only.

   Listobj
   o	Allows you to list objects across multiple servers. You may specify
	up to 10 servers on the command line, each may contain wild cards,
	or you may specify 'A' meaning all servers to which you are currently
	attached.
   o	Sorting of output may be merged across servers.

   Getquota
   o	Added new switch /i to prepend the server name to each username.

   Getequiv (renamed from getseceq)
   o	Allows you to list objects across multiple servers. You may specify
	up to 10 servers on the command line, each may contain wild cards,
	or you may specify 'A' meaning all servers to which you are currently
	attached.

   Creatobj
   o	Can now specify a user password via /w.
   o	When using a file, you can now include passwords in the file when
	creating users.
   o	Returns error level 1 if creation of the last object failed.

   Delobj
   o	Will now delete each user's home directory and its contents if either
	(a) it can retrieve the home directory from the HOME_DIR property, or
	(b) a home directory path is specified.
   o	Can now retain a user's mail directory (I had a need for this once!).

   Renobj
   o	Will now rename each user's home directory if either (a) it can
	retrieve the home directory from the HOME_DIR property, or (b) a
	home directory path is specified.

   Grplist
   o	A new switch /l combines the actions of /f, /j and /u.
   o	A new switch /i prepends the server name to each username. This may
	be useful when combining lists of group members from different
	servers.

   Setquota
   o	Added /q to query whether or not to set a quota for each user.
   o	Modified so that it checks the existing quota and indicates if the
	quota set is the same as the current quota.

   Dquota
   o	Enabled use of /w when displaying mail directory quotas.
   o	Added /na to suppress all output when the user does not have a quota.
   o	Added /on to suppress all output except a warning
   o	Added /y to allow you to specify a file containing text to be
	displayed. The text may contain substitution symbols for quota,
	space used, username etc.
   o	Added /z to allow you to design your own warning text. Functions
	similarly to /y.

   Setpword
   o	Added /q to query whether or not to set a password for each user.
   o	Added the option to specify a range of usercodes e.g. COMP001-COMP100.
	This was in response to a specific request and I would appreciate
	feedback on whether there is a need for this feature in other programs.

   Getacres
   o	Added new switch /i to prepend the server name to each username.

   Setacres
   o	Added /q to query whether or not to set a restriction for each user.

   Setowner
   o	Added /x switch which will set ownership only for files with no owner.
   o	When using /v setowner now reports when a file is already owned by
	the 'new' owner.
   o	Added /m to allowing setting of ownership in mail directories.

   Killconn
   o	Can now specify files containing lists of object names or connection
	numbers.
   o	Added /r to kill print server connections.
   o	Added /d to do a dummy run i.e. go through the motions without
	clearing connections.

2. Bugs fixed

   (a) Renobj
    o	Due to a minor bungle, the original version would only rename users,
	groups and printservers. It will now rename any object.

   (b) Trstlist
    o	When displaying trustee rights for users it would not display the
	supervisory right if the user had been granted it. This was a
	limitation of the API used and has been worked around.
    o	When displaying trustee rights for users, incorrect rights would
	sometimes be displayed e.g. RWC could be displayed when the user had
	only C. This appears to be a bug in the API and has been worked around.
    o	Previously, when /b was used trstlist would produce 'grant' commands
	for all trustee assignments, even when the trustee object was not a
	user or a group. This would occur when showing trustees for
	subdirectories of SYS:SYSTEM where print servers are granted rights.
	Novell's grant.exe cannot assign trustees to objects other than users
	or groups. Trstlist now prefixes a grant command for other objects
	with 'rem' turning the output line into a comment when saved as a BAT
	file. This prevents errors when running the BAT file, and at the same
	time indicates to anyone scanning the file that there are trustee
	rights which cannot be restored via grant.exe.
    o	When using /b, no grant command was produced where a user was granted
	no rights to a directory i.e. the user was a trustee without rights.
	Trstlist now outputs 'grant n for <dir> to <object>'.
    o	Trstlist would previously not scan all volumes when volume numbers
	were not consecutive i.e. a volume other than the last one defined
	was dismounted or had been deleted.

   (c) Users.exe
    o	NW 2.2 uses connection numbers above the maximum for VAPs e.g. in
	100 user NW 2.2, connections 101 - 116 can be used by VAPs. When /c
	was used, USERS previously did not scan those connection numbers
	under NW 2.2.
    o	NW 3.x allows 100 connection numbers above the maximum for NLMs.
	Previously, USERS only checked the first 5 above the maximum when /c
	was used. It now checks all 100.
    o	Options /t and /j (as documented in the manual) have been added.

   (d) Delobj
    o	Will now delete the queue directory when deleting a queue with jobs
	enqueued.

   (e) Grplist
    o	The previous version would display garbage when sorting was requested
	and the group had no members. This is fixed.

   (f) Creatobj
    o	Sets a NULL password when a user or printserver is created.
    o	Fixed a bug where an ACCOUNT_BALANCE property was not created when
	accounting is enabled. Each user is now given the default balance and
	credit limit set in the Default Restrictions under Supervisor Options
	in SYSCON.
    o	Fixed a bug where new users did not have 'unique passwords required'
	if this was set as a default in Default Restrictions under Supervisor
	Options in SYSCON.
    o	A cosmetic change, to remove an extraneous slash from the home
	directory path stored in the HOME_DIR property when the home
	directory is a first level directory e.g. vol2:bloggs was previously
	stored as vol2:/bloggs.

   (f) Dquota
    o	The warning for out-of-space was not displayed when the space
	available was negative.
    o	Dquota would previously not scan all volumes (for /v) when volume
	numbers were not consecutive i.e. a volume other than the last one
	defined was dismounted or had been deleted.

   (g) Setacres
    o	The description of the file used for setting time restrictions was
	accidentally omitted from the in-built help. This has been inserted.

    (h)	Getacres
    o	An incorrect total was given when selecting users by station
	restrictions.

4. Miscellaneous

   A number of the programs are designed to work in conjunction with David
   Harris' SETHOME utility which stores a user's home directory in a
   bindery property named HOME_DIR. Because of this I have included, with
   David's permission, SETHOME and HOME. They are described in SETHOME.TXT.



