


          INIUPDate - A Network INI File Update Utility









          (c) Copyright Abrams Technologies, 1993-1994.

                      536 North Donar Drive
                       Columbia, SC  29223

                      Phone: (803) 865-0405
                         CIS: 73632,746



                        Table of Contents

Files Listing. . . . . . . . . . . . . . . . . . . . . . . . .  3

Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3

Terminology. . . . . . . . . . . . . . . . . . . . . . . . . .  3

Command Line Switches. . . . . . . . . . . . . . . . . . . . .  4
     /I-<INIFile>. . . . . . . . . . . . . . . . . . . . . . .  4
     /M-<MasterFile> . . . . . . . . . . . . . . . . . . . . .  5
     /K-<KeyType>. . . . . . . . . . . . . . . . . . . . . . .  6
     /R-<RptFile>. . . . . . . . . . . . . . . . . . . . . . .  6
     /D-<Disp> . . . . . . . . . . . . . . . . . . . . . . . .  7

Example Command Lines. . . . . . . . . . . . . . . . . . . . .  7

Usage 1:  New Application Setup. . . . . . . . . . . . . . . .  8

Usage 2:  Preventing Users From Changing INI File Values . . . 11

Usage 3:  Providing User Support . . . . . . . . . . . . . . . 12

History. . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Coming Attractions . . . . . . . . . . . . . . . . . . . . . . 14

Copyright. . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Warranty . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Shareware. . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Distribution . . . . . . . . . . . . . . . . . . . . . . . . . 16

INIUPDate Registration Form. . . . . . . . . . . . . . . . . . 17
      INIUPDate - A Network INI File Update Utility, Page 3

Files Listing
-------------

     INIUPD.DOC     Documentation and registration form.
     INIUPD.EXE     INIUPDate program file.
     SYSTEM-D.MAS   Example Duplicate Key file for SYSTEM.INI.
     SYSTEM-S.MAS   Example Singular Key file for SYSTEM.INI.
     PROGMAN.MAS    Example PROGMAN.INI update file.
     WIN.MAS        Example WIN.INI update file.
     INIUPD.CLF     Example Command Line File

Introduction
------------
     INIUPDate is a utility designed for Network Administrators
who manage Windows on a Local Area Network (LAN).  Specifically,
INIUPDate provides the following benefits:

     *    Easily add new applications to the LAN 
     *    Prevent users from making modifications to INI files
     *    Provide better support to your end users

     INIUPDate is a DOS program that modifies an INI file by
comparing the Keys and Values in the INI file to a Master INI
file.  

Terminology
-----------
     Example Part of an INI File ---->  [Desktop]
                                 ---->  Wallpaper=marble.bmp

     Term           Example
     ----           -------
     Section        [Desktop]
     Key            Wallpaper
     Value          marble.bmp      INIUPDate - A Network INI File Update Utility, Page 4

Command Line Switches
---------------------

     INIUPD /I-<INIFile> /M-<MasterFile> /K-<KeyType>
            /R-<RptFile> /D-<Disp>

          The /I, /M, and /K switches are required, though they
     may be in any order.  Also, the /K switch may only be an S
     or a D.  The /R and /D switches are optional.

     /I-<INIFile>
     ------------

          This tells INIUPDate the file you want to modify.  It
     can be WIN.INI or any other application INI file.  There is
     no default file name or extension; you must explicitly enter
     the full path, filename, and extension of the INI file you
     want to modify.  INIUPDate will strip the extension and use
     the path and filename to create a temporary file
     (<INIFile>.$$$) and a backup of the file (<INIFile>.!).  The
     user running the INIUPD.EXE program must have Read, Write,
     Create, and Erase rights to the directory where <INIFile> is
     located.

          Example Command Lines:

               /I-C:\WINDOWS\WIN.INI
               /I-J:\WINDOWS\EMAIL.INI

          Since you are specifying the <INIFile> on the command
     line, you can use environment variables in the <INIFile>. 
     For example:

               /I-F:\USERS\%USER%\WIN.INI
      INIUPDate - A Network INI File Update Utility, Page 5

     /M-<MasterFile>
     ---------------

          This tells INIUPDate the file with the changes you want
     made to <INIFile>.  Again, the full path, filename and
     extension are required.  The <MasterFile> is simply an INI
     File with Values you want applied to <INIFile>.  If the
     Section, Key and Value in the <MasterFile> are not in the
     <INIFile>, they will be added.  If the Section and Key are
     found in the <INIFile>, the Value will be updated to match
     the Value in the <MasterFile>.  The <MasterFile> is not
     limited in the number of sections.  You may have as many
     sections as you want in the <MasterFile>.

          Example: WIN.MAS         [Desktop]
                                   IconSpacing=65
                                   IconTitleFaceName=Arial

                                   [Extensions]
                                   wri=write.exe ^.wri
                                   hlp=winhelp.exe ^.hlp

          Example Command Lines:

               /M-F:\WINCFG\WIN.MAS
               /M-F:\WINCFG\PROGMAN.MAS

          Notes:    <MasterFile> does not have to have the MAS
                    extension.  You can name the file anything
                    you like.

                    Users should only have Read and File Scan
                    rights to the directory where the
                    <MasterFile> is located.  This prevents them
                    from changing the <MasterFile>.      INIUPDate - A Network INI File Update Utility, Page 6

     /K-<KeyType>
     -----------

          This is probably the most important option because it
     will cause incorrect updates if not used properly.  There
     are two types of Keys in an INI file.

     Singular Keys are Keys that may appear only once in a
     Section.  Almost all keys in all INI Files are Singular.

     Duplicate Keys are Keys that appear more than once in a
     section.  The two most common (and only ones I know of
     currently) are the "Device=" and "Local=" Keys in the
     "[386Enh]" Section of SYSTEM.INI.

     INIUPDate must know what type of Key the <MasterFile> has. 
     If you tell INIUPDate that the <MasterFile> contains
     singular Keys, and you update the SYSTEM.INI, all "Device="
     lines in the SYSTEM.INI will  have a Value equal to the last
     "Device=" statement in the <MasterFile>.

     My suggestion to you is to not use this utility on the
     SYSTEM.INI until you fully understand how it works.  If you
     use this utility to update SYSTEM.INI, create two
     <MasterFiles>, SYSTEM-S.MAS and SYSTEM-D.MAS.  Put all
     Sections, Keys and Values that are singular into SYSTEM-
     S.MAS.  Put all Sections, Keys and Values that are duplicate
     (Device= and Local=) into SYSTEM-D.MAS.   See SYSTEM-S.MAS
     and SYSTEM-D.MAS example files that are included.

     /R-<RptFile>
     ------------

          INIUPDate creates an extensive report as it runs.  If
     you do not tell INIUPDate to send the report to a file, it
     will be sent to the screen.  You must specify the full path
     and filename for the report file.

               Examples:

                    /R-J:\WINDOWS\WIN.RPT
                    /R-F:\USERS\%USER%\WINDOWS\WIN.RPT
      INIUPDate - A Network INI File Update Utility, Page 7

     /D-<Disp>
     ---------

          This option only works if you redirect output to a file
     with the /R switch.  The only valid <Disp> value is ON  
     (/R-ON), otherwise it is considered to be OFF.  When ON is
     specified and the /R switch is used, INIUPDate will display
     progress on the screen.  It shows the section it is
     currently updating and which Key it is working on.  This is
     helpful if you have a large <MasterFile> and you want to be
     sure the program is still running.  

     /C-<CmdFile> (New to version 1.10)
     ----------------------------------

          This option allows you to put your options in a file so
     multiple INI files can be processed by loading the program
     only once.  Environment variables may be used in the command
     line file.  See the INIUPD.CLF file for an example.

Example Command Lines
---------------------

1. INIUPD /I-J:\WINDOWS\WIN.INI /M-F:\WINCFG\WIN.MAS /K-S

     This example updates the user WIN.INI file using
     F:\WINCFG\WIN.MAS, which has singular keys.  The report
     output is sent to the screen.

2. INIUPD /I-F:\USER\%USER%\PROGMAN.INI /M-F:\WINCFG\PROGMAN.MAS
          /K-S /R-F:\USER\%USER%\PROGMAN.RPT /D-ON

     This example updates the user PROGMAN.INI with
     F:\WINCFG\PROGMAN.MAS, which uses singular keys.  The report
     output is sent to F:\USER\%USER%\PROGMAN.RPT and progress of
     INIUPDate is displayed on the screen.

3. INIUPD /I-J:\SYSTEM.INI /M-F:\WINCFG\SYSTEM-D.MAS 
          /K-D /R-J:\SYSTEM.RPT

     This example updates SYSTEM.INI using the Master File
     F:\WINCFG\SYSTEM-D.MAS, which has duplicate keys.  Report
     output is sent to J:\SYSTEM.RPT, but INIUPDate progress is
     not displayed on the screen.      INIUPDate - A Network INI File Update Utility, Page 8

When to Run INIUPDate
---------------------

     INIUPDate needs to be run before Windows is launched so the
changes it makes to INI files will be in effect when Windows
loads.  There are several ways to do this and you can use
whichever is best for you.

Run INIUPDate from a Netware Login script, for example:

     IF MEMBER OF "INIUPDATE" THEN BEGIN
        #INIUPD.EXE /I-WIN.INI................
        #INIUPD.EXE /I-PROGMAN.INI ...........
     ENDIF

Run INIUPDate from a batch file before loading Windows, for
example:

     ECHO OFF
     CLS
     J:
     CD \WINDOWS
     INIUPD.EXE /I-WIN.INI ................
     INIUPD.EXE /I-SYSTEM.INI .............
     WIN.COM

Note:     Instead of running INIUPD twice, you can create a
          command line file and run INIUPD with the /C option.

Usage 1:  New Application Setup
-------------------------------

          There are several ways to set up Windows applications
     on a LAN.  Basically, you install the program in a
     directory, add an icon for the users to access it, and add
     or modify one or more INI files.  The following is a simple
     example of how to install a program called EDITOR.

     Step 1 -  Install the Application

          I install all my Windows applications in the directory
          F:\WINAPPS.  For this application, I installed it in
          the directory F:\WINAPPS\EDITOR.  I then granted users
          rights to the directory so they could execute
          EDITOR.EXE.      INIUPDate - A Network INI File Update Utility, Page 9

     Step 2 -  Add an Icon for users to run the application

          I have a generic Windows group file called LAN
          Applications.  This file is F:\WINCFG\LANAPPS.GRP. 
          Every time the user logs in to the network, this file
          is copied to their personal Windows directory
          (J:\WINDOWS).  This way, when I update
          F:\WINCFG\LANAPPS.GRP, all users will get the update. 
          In this case, I added the icon for EDITOR to the group. 
          When doing this, you need to be sure the PROGMAN.INI
          file for your users has the line
          Group#=J:\WINDOWS\LANAPPS.GRP.

     Step 3, Modify all WIN.INI files 

          The EDITOR program adds the following line to the
          WIN.INI file in the [Extensions] section
     
               edt=f:\winapps\editor\editor.exe ^.edt

          You definitely DO NOT want to edit every WIN.INI file
          to add this line.  INIUPDate was designed to do this
          for you.

          All you have to do is create a <MasterFile> with the
          desired lines you want added to each user WIN.INI file. 
          The <MasterFile> is an ASCII file; you can use any
          editor to create it.  The format of the <MasterFile> is
          the same as for a normal INI file.  The <MasterFile> in
          this case looks like this:

               [Extensions]
               edt=f:\winapps\editor\editor.exe ^.edt

          Once created, I save the file as F:\WINCFG\WIN.MAS. 
          All modifications I want to make to WIN.INI, I put in
          the file WIN.MAS.  Master files are not limited to a
          particular application.

     INIUPDate - A Network INI File Update Utility, Page 10

          I choose to update user INI files each time the log in. 
          I use a batch file called WINUPD.BAT which is run after
          the system login script exits.  The line in the Netware
          login script to do this is:

               EXIT "WINUPD.BAT"

          The WINUPD.BAT file looks like this

               ECHO OFF
               CLS
               J:
               CD \WINDOWS
               INIUPD /I-WIN.INI /M-F:\WINCFG\WIN.MAS 
                      /K-S /R-WIN.RPT /D-ON
               WIN
               LOGOUT

          This looks at the user J:\WINDOWS\WIN.INI file and
          compares it to the F:\WINCFG\WIN.MAS file.  All lines
          in F:\WINCFG\WIN.MAS not in J:\WINDOWS\WIN.INI are
          added to J:\WINDOWS\WIN.INI in the appropriate Section. 
          If the line is already in the J:\WINDOWS\WIN.INI file,
          INIUPDate updates the line to match the line in
          F:\WINCFG\WIN.MAS.

          In this example, the following line is added to every
          user's [Extensions] Section of their WIN.INI file when
          they log in:

               edt=f:\winapps\editor\editor.exe ^.edt     INIUPDate - A Network INI File Update Utility, Page 11

Usage 2:  Preventing Users From Changing INI File Values
--------------------------------------------------------

     If you ever want to prevent a user from making a change to
the INI file, just set up the value you desire in a <MasterFile>.
When the user logs in and INIUPDate is run, the user INI file
will be changed.  In some cases, this does not prevent a user
from making the change, but it does only allow the change to be
active for the current session when a change is made.  Most users
will probably not want to keep making a change every day and they
will probably cease making current session changes.

Example:

          Suppose you want to put restrictions in PROGMAN.INI so
     that the File, Run option is not available.  To do this, you
     would add a [Restrictions] Section to progman.ini.  The Key
     would be NoRun and the Value would be 1.  It would look like
     this:

               [Restrictions]
               NoRun=1

          Again, modifying every progman.ini file would be quite
     time consuming.  Instead, I created the <MasterFile>
     F:\WINCFG\PROGMAN.MAS.  In it, I included the two lines
     shown above.  When the user logs in to the server, the
     following line is run:

     INIUPD /I-J:\WINDOWS\PROGMAN.INI /M-F:\WINCFG\PROGMAN.MAS    
            /K-S /R-J:\WINDOWS\PROGMAN.RPT /D-ON

          Even if the user modifies PROGMAN.INI with an editor,
     the next time they log in it will be put back to the way it
     is in PROGMAN.MAS.  I log the user out when they exit
     Windows, so they must log back in to re-load it.  In logging
     back in, INIUPDate is run again.
     INIUPDate - A Network INI File Update Utility, Page 12

Usage 3:  Providing User Support
--------------------------------

     INIUPDate allows you to make changes to user INI files that
help the user out.  Sometimes the user does not know how to make
the changes or there is no way for the user to make the changes.

Example:

          Suppose you want to change the default screen font. 
     The default is small and hard to read.  I have found that
     using Arial, Bold, 8pt is a lot better looking.  There is no
     way for the user to change this, so it must be added to the
     WIN.INI file manually.  The following lines change the
     screen font:

          [Desktop]
          IconTitleFaceName=Arial
          IconTitleStyle=1
          IconTitleSize=8

          Suppose you also want to change where users must click
     on icons to make the area bigger.  You can do that by adding
     the following lines:

          [Desktop]
          DoubleClickWidth=4
          DoubleClickHeight=4

          Finally, you want to let users print to a file rather
     than a port.  You do this by using the following lines:

          [Ports]
          FILE:=J:\WINDOWS\PRINT.FIL

     where J:\WINDOWS\PRINT.FIL is the name of the file you want
     users to print to.

     INIUPDate - A Network INI File Update Utility, Page 13

          To accomplish these changes, make a <MasterFile>.  I
     use the same master file I use to add new applications.  It
     is F:\WINCFG\WIN.MAS and looks like the following:

          [Extensions]
          edt=f:\winapps\editor\editor.exe ^.edt

          [Desktop]
          IconTitleFaceName=Arial
          IconTitleStyle=1
          IconTitleSize=8
          DoubleClickWidth=4
          DoubleClickHeight=4

          [Ports]
          FILE:=J:\WINDOWS\PRINT.FIL     INIUPDate - A Network INI File Update Utility, Page 14

History
-------

Version             Description
-------             -----------
1.10 (02/94)   Add support for processing multiple INI files
               while loading INIUPD only once.

               Fix a problem that caused "Error 5".

1.02 (01/94)   Add support for "duplicate keys" (/K-D Switch).

1.01 (04/93)   Process multiple Sections in INI file.

1.0  (02/93)   Original Version.  Only processed one Section in
               WIN.INI file.

Coming Attractions
------------------

1.   Ability to add Keys to a section only if the Key does not
     already exist.     INIUPDate - A Network INI File Update Utility, Page 15

Copyright
---------

     INIUPDate is (c) Copyright Abrams Technologies, 1993-1994.

     Other programs mentioned are copyright/trademark/property of
     their respective companies.

Warranty
--------

     Abrams Technologies make no warranties, either expressed or
implied, pertaining to the functionality, suitability, and usage
of this product.  It is supplied after extensive testing and
usage on LANs with various servers and end-users.  It is intended
as a utility to enhance LAN administration and decrease the
amount of time involved in maintaining INI files on the LAN.

Shareware
---------

     INIUPDate is a Shareware software program.  Shareware is a
great concept, but it only works if YOU, the user, register
Shareware programs you are using.  

     Shareware (also known as user supported software and other
names) is a concept not readily understood by everyone.  The
authors of Shareware retain all rights to the software under
existing copyright laws while still allowing free distribution. 
This gives the user (YOU) the opportunity to obtain and try out
software (without advance purchase) to see if it fulfills your
personal or business needs.  

     Shareware should not be confused with Public Domain software
even though they are often obtained from the same source(s).
   
     If you continue to use INIUPDate after trying it out for 30
days, you are expected to register your copy.  In exchange you
get the latest version and technical support.
     INIUPDate - A Network INI File Update Utility, Page 16

Distribution
------------

You are free to distribute this program provided:
          
(1)  No fee is charged, other than normal costs for media and
     distribution.

(2)  All files are included:

     INIUPD.DOC     Documentation and registration form.
     INIUPD.EXE     INIUPDate program file.
     SYSTEM-D.MAS   Example Duplicate Key file for SYSTEM.INI.
     SYSTEM-S.MAS   Example Singular Key file for SYSTEM.INI.
     PROGMAN.MAS    Example PROGMAN.INI update file.
     WIN.MAS        Example WIN.INI update file.
     INIUPD.CLF     Example Command Line File
                   INIUPDate Registration Form

Make check or money order payable to ABRAMS TECHNOLOGIES.
                            
Remit to:           ABRAMS TECHNOLOGIES
                    536 North Donar Drive
                    Columbia, SC  29223

                    Phone: (803) 865-0405, CIS: 73632,746

Your Name:______________________________________________________

Company Name:___________________________________________________

Address:  ______________________________________________________

          ______________________________________________________

          ______________________________________________________

   Server Operating System/Ver: ________________________________

Your CompuServe Account Number: ________________________________

    INIUpdate Version Number: __________________________________

Where did you obtain INIUPD?: __________________________________

            PCs or       Price per
            Servers      Machine     Discount
            -------      --------    --------
            1 - 5         $30.00          0 %
            6 - 10        $24.00         20 %
            11+           $18.00         40 %

                 Site License   $200.00

Qty  x  Price = Subtot + 5% Sales Tax = Total

___  x  _____ = ______ + ____________ = __________

Note 1:  Residents of countries outside the U.S.A. and Canada
should remit 10% of Subtotal (quantity x price ea.) to cover
shipping and handling cost.

Note 2: All prices are in US Dollars.

Comments and suggestions for future releases:

______________________________________________________________

_______________________________________________________________

_______________________________________________________________