AUTOMATIC CLIENT UPGRADE ======================== TABLE OF CONTENTS ================= Introduction Definitions of ACU Components Preliminary Tasks Procedures for Performing the ACU Process Examples of Login Scripts Appendix A: Modified INSTALL.CFG File Sample Appendix B: Description of Keywords INTRODUCTION ============= Novell's Automatic Client Upgrade (ACU) provides a way to automatically upgrade NetWare client software. ACU executes a series of instructions placed by the network supervisor in a container, profile, or system login script, and then seamlessly upgrades clients during login. Automatic Client Upgrade is the name of a process, rather than a specific utility. The process involves four new individual utilities, NWDETECT.EXE, NWSTAMP.EXE, NWLOG.EXE, and REBOOT.COM, plus an enhanced version (version 1.50 or later) of INSTALL.EXE. Depending on the number of different NetWare client configurations in yourinternetwork, ACU may or may not be a practical solution for efficiently upgrading clients. For example, if your network were comprised of 20 Bindery-based (NETX) or NetWare Directory Services (VLM, Client 32) workstations running DOS and MS Windows, and you needed to upgrade all or a portion of them to the NetWare Client 32 (NIOS) client set, the ACU process would be a practical solution. However, if your network were comprised of 30 workstations, each with a different customized or nonstandard configuration (i.e., multiple protocol stacks loaded, TSRs, memory configurations, etc.), you might not find the ACU process to be a viable option for upgrading your clients. NOTE: As long as your network workstations are configured with some set of standards, there is no limit to the number of workstations that can be upgraded using the ACU process. DEFINITIONS OF ACU COMPONENTS ============================= NWDETECT.EXE Begins the ACU process by looking for an Install Stamp in the NET.CFG file and detecting whether there is a difference between the stamp parameters within the login script and those within NET.CFG. NWSTAMP.EXE Updates (or creates for the first time) the Install Stamp in the NET.CFG file. Install Stamp An entry in the individual workstation's NET.CFG file that displays four parameters. If any of these parameters differ from those defined by the network supervisor in the login script, the upgrade instructions within the login script may be invoked. Following the upgrade, the parameters are updated in the NET.CFG file. A sample Install Stamp in a NET.CFG file is shown below. Install Stamp Name = Novell_Inc_client32 Major Version = 4 Minor Version = 1 Revision Version = 0 The four Install Stamp parameters are network supervisor- definable. The Name parameter can contain up to 63 alphanumeric characters, while the three Version parameters can contain 127 characters each. If you choose to use spaces, the entire name or version must be enclosed in double quotes (" "). As a suggestion, you may want to use the character allowances in the Install Stamp's Version parameters. For example, you could use the Major Version parameter to define the server storing the ACU and client files, the Minor Version to list the group or department to be upgraded, and the Revision Version to display the version of client files to be installed. NWLOG.EXE A utility that creates a log file of all upgraded nodes to a network supervisor-specified subdirectory. The log file lists the date, time, username, IPX external network number, and as an option, any network supervisor-defined text. Before individual workstation information can appear in the log file, all users must have Write and Create rights to the subdirectory where the log file will be. A sample log entry for an upgraded NDS (NetWare Directory Services) client is shown below. 4-17-95 4:01:25 pm JSMITH 010104A0:00001B021FDB The log entry above indicates that user object JSMITH was upgraded at the specified date and time. The IPX external network number and node number follow the username. A sample log entry for a Bindery-based (NETX) client is shown below. 4-17-95 5:17:57 pm Upgrade Successful for user "GMAZZA" The log entry above indicates that user "GMAZZA" was upgraded at the specified date and time. The message on the second line is network supervisor-definable in the login script. INSTALL.EXE The NetWare client installation utility that is executed if NWDETECT.EXE determines that the NWDETECT parameters specified in the login script and those set in the individual workstation's NET.CFG Install Stamp section are different. The execution of INSTALL.EXE further depends on the conditions set in the login script. The number of files that are copied to the workstation is determined by the files listed in the INSTALL.CFG file (described below). INSTALL.CFG is a component of the DOS/MS Windows client installation (a copy of the INSTALL.CFG file is included with the ACU files). Only INSTALL.EXE versions 1.5x support the ACU instructions in the INSTALL.CFG file and thus can be used with the ACU process. NOTE: Due to a compatibility problem between LOGIN.EXE and DRDOS 6, version 1.5x of INSTALL.EXE will not run on a workstation running DRDOS 6 unless upper memory is disabled. To disable upper memory, type memmax -u INSTALL.CFG A configuration file listing all of the client files and any associated configuration parameters to be copied to the workstation during installation. A default INSTALL.CFG file is included in the NetWare client kit. INSTALL.EXE uses the configurations in INSTALL.CFG (or in another network supervisor-defined configuration file) during the ACU process. The INSTALL.CFG file can be edited so that only the files you want installed on the workstation are installed. This can be very useful when you want to update only a few files (for example, some updated client files downloaded from NetWire) rather than an entire set of client files. If you choose to edit the INSTALL.CFG file, we recommend that you make a copy of the original INSTALL.CFG file and save it somewhere so that it can be retrieved in case of a problem with the edited INSTALL.CFG (or whatever name you give the new configuration file). If you want to use a configuration file with a name other than INSTALL.CFG, you will need to use the following command line parameter in the login script when invoking INSTALL.EXE: INSTALL /C=path\filename NOTE: A sample copy of a modified configuration file is included in Appendix A. REBOOT.COM An executable file that automatically reboots the workstation. Exit Code A value that is returned by NWDETECT.EXE based on its findings in the workstation's Install Stamp located in the NET.CFG file. An exit code is the same as an ERROR_LEVEL, which is a key word used in login scripts. An exit code of "0" (true) means that the command-line syntax values placed in the login script match those in the workstation's Install Stamp, or that an Install Stamp does not exist in the NET.CFG file. An exit code of "1" (false) signifies that the Install Stamp does not match. NOTE: All executable ACU utilities use the exit codes. PRELIMINARY TASKS ================= o Understand the purpose and use of each of the components of the ACU process. o Based on which workstations you want to upgrade, determine the type of login script you need to modify to execute NWDETECT, NWSTAMP, and NWLOG. This may be a system login script (for NetWare 3.x networks), or a container or a profile login script (for NetWare 4.x networks). If you decide to use a profile login script and one does not exist, you must create one at this time. o Determine where the login script will access INSTALL.EXE and the installation files. o Look to see if you have a PUBLIC\CLIENT\DOSWIN subdirectory. The CLIENT and DOSWIN subdirectories were created automatically if the "Set up a Network Directory for Client Install" was selected during the server installation. o If you don't have a PUBLIC\CLIENT\DOSWIN subdirectory, create one. Then copy the contents of each client diskette to the DOSWIN subdirectory. Do not create a subdirectory for each client diskette within the DOSWIN subdirectory. Doing so will prevent the client from upgrading properly. o In the DOSWIN subdirectory, create a LOG subdirectory for log files created by NWLOG.EXE, and give everyone Create and Write rights to it. PROCEDURES FOR PERFORMING THE ACU PROCESS ========================================= 1. View the list of client files and settings in the INSTALL.CFG file and determine if the desired filenames, requester information, and settings are listed. 2. (Conditional) If you determine that you need to modify the INSTALL.CFG file, save a copy of the INSTALL.CFG file to a safe location. 3. (Conditional) Using a text editor, modify any applicable settings in the [FILES], [REQUESTER], [TCP/IP], [NWIP], [SNMP], [HOSTMIB], [TSA],[SETUP] and [driverTranslationTable] sections of the INSTALL.CFG file (or whatever configuration filename you choose) to include the desired filenames, requester information, and settings. NOTE: An example of a modified INSTALL.CFG file is shown in the appendix. A discussion of the [FILES], [REQUESTER], [NIOS], [SETUP], [TCP/IP], [NWIP], [SNMP], [HOSTMIB],[TSA], and [driverTranslationTable] sections of the INSTALL.CFG file ...follows. IMPORTANT: Configurations in the [FILES], [REQUESTER], and [SETUP] sections are generally universal to all upgraded workstations and will not require additional configuration work at the individual workstations. Configurations in the [TCP/IP], [NWIP], [SNMP], [HOSTMIB], and [TSA],sections may require additional configuration at the workstation. Consequently, many of the settings in the [TCP/IP], [NWIP], [SNMP], [HOSTMIB], and [TSA],sections are "dummy" settings. NOTE: Some sections in the INSTALL.CFG file contain an "Override local settings =" parameter. If this parameter is set to FALSE, the values within that section will be updated only on workstations that don't have those values defined. If the parameter is set to TRUE, those values will override the existing values, or place them as new values. [FILES] This section contains an extensive list of all of the client files and the path where they will be installed from. We recommend that you do not make any changes to this section until all clients have been upgraded with these listed files. Later you can indicate the specific files you want to be upgraded to the clients by using the semicolon (;) before each of the filenames except the ones you want copied. Each file listing is preceded by a set of variables that indicate information about the file. This information includes the diskette name or CD-ROM area from which it is installed, a keyword, and a single-letter representing a category in the INSTALL.CFG file. There may be multiple single-letter categories in the file information. For example, here is the default entry for NWUSER.EXE: DISK3:WINSYS:W:WINDRV\NWUSER.EXE DISK3 indicates that the file is installed either from diskette 3 of the client diskette set, or from the DISK3 area of the CD-ROM. NOTE: If the file DISK3 were to be installed from a hard disk or a network single source area, the file must exist in the current directory. WINSYS is the keyword indicating the target and source for the NWUSER.EXE file. There are a total of eleven keywords. Each keyword represents a combination of target and source variables. NOTE: A detailed description of each keyword is included in Appendix B. W is the file classification code and indicates that the individual file will be copied to the MS Windows SYSTEM directory if MS Windows is selected during client installation. There are six classification codes: D=DOS, W=MS Windows, T=TCP/IP, M=SNMP, H=HOSTMIB S=TSA. WINDRV\NWUSER.EXE indicates the subdirectory from where NWUSER.EXE will be copied, relative to the source indicated by the keyword (see Appendix B). [REQUESTER] This section contains basic network client configuration information. Recommended NetWare DOS Requester Parameters: First Network Drive = Preferred Tree = Preferred Server = Name Context = Connections = NetWare Protocol = NOTE: Any valid parameter in the [REQUESTER] section of the NET.CFG file can be placed in the [REQUESTER] section of the INSTALL.CFG file. For information on these parameters, see "Available Parameters and Values for the NetWare DOS Requester Option" in the "NetWare Client for DOS and MS Windows Technical Reference" manual. [NIOS] This section displays unique NIOS (NetWare Client 32) parameters, which will be updated to the NetWare Client 32's NET.CFG file. [SETUP] This section contains a number of default workstation settings that can be edited according to how you want your workstations configured. The settings are listed below. The default settings are underlined. InstallType = AUTO BASIC ----- This parameter must be set to AUTO before running the ACU process. To change the setting, modify the INSTALL.CFG file. TargetPath = *AUTO ----- InstallWindows = TRUE FALSE AUTO ---- WindowsUserPath = C\WINDOWS (Modify this path according to where Windows is stored on your individual workstations UpdateDOSSystemFiles = TRUE FALSE ---- OverwriteStartnetBat = TRUE FALSE ---- DoInstallIfLowSpace = TRUE FALSE ---- CopyAllUnicodeFiles = TRUE FALSE ----- OverwriteNewerFiles = TRUE FALSE ----- OverwriteNewerINIFiles = TRUE FALSE ----- OverwriteReadOnlyFiles = TRUE FALSE ----- OverwriteReadOnlySYSFiles = TRUE FALSE ----- Use32BitDrivers = TRUE FALSE ---- An explanation of each setting follows. InstallType AUTO: Runs in unattended mode, asks no questions (errors are not presented to the user, but are logged in NWCINST.LOG, located in the directory where LSL.COM is loaded). (Default value) To seamlessly upgrade clients using the ACU process, this setting should remain selected. If it is not, the user is required to answer a number of questions during the upgrade. BASIC: Asks user to confirm automatically detected answers and to answer all other questions. TargetPath *AUTO: (Suggested method) Automatically detects the target path according to where LSL found NET.CFG. In the unlikely event that this cannot be found, then searches the environment path for NIOS.EXE, VLM.EXE, or NETX.COM and installs in that location. (Default value) The default TargetPath is NOVELL\CLIENT32 : A full path (no spaces allowed) to the directory where the client files are to be installed (i.e., D:\NETWARE). InstallWindows TRUE: Installs MS Windows utilities and drivers; requires an MS Windows user path (WindowsUserPath). FALSE: Does not install MS Windows utilities and drivers. AUTO: If MS Windows' WIN.COM is found in the environment path, then installs MS Windows support in that path. (Default value) WindowsUserPath : A full path to the MS Windows directory where the files will be installed. A shared network path won't work; the ACU process supports only a workstation's MS Windows path. A path is needed only if the InstallWindows parameter is set to "TRUE." UpdateDOSSystemFiles TRUE: Modifies AUTOEXEC.BAT and CONFIG.SYS and saves backups with a .BNW extension. (Default value) FALSE: Does not modify AUTOEXEC.BAT and CONFIG.SYS. Makes the necessary changes to the AUTOEXEC.NEW and CONFIG.NEW files, which are created automatically and stored in the NOVELL\CLIENT32 subdirectory. OverwriteStartnetBat TRUE: Updates STARTNET.BAT, creates a STARTNET.BNW, and saves it as a backup. (Default value) FALSE: Does not update STARTNET.BAT. Makes the changes to the STARTNET.NEW file, which is created automatically in the NOVELL\CLIENT32 subdirectory. DoInstallIfLowSpace TRUE: Continues the installation even if disk space is low. (Default value) FALSE: Stops the installation if disk space is low and records an error in the NWCINST.LOG file, located in the directory where LSL.COM was loaded. CopyAllUnicodeFiles TRUE: Copies the Unicode files for all countries. FALSE: Copies only the Unicode files for the country code loaded on the target machine. (Default value) OverwriteNewerFiles TRUE: Overwrites files located in the TargetPath that are newer if installation source files are older. FALSE: Does not overwrite newer files in the target path with any older files from the installation source path. (Default value) OverwriteNewerINIFiles TRUE: (NOT suggested) INSTALL.EXE overwrites any modifications made to the NWADMIN.INI file by copying over the file with the original NWADMIN.INI file and its original settings. FALSE: Does not overwrite a modified NWADMIN.INI file. (Default value) OverwriteReadOnlyFiles TRUE: Overwrites files marked "Read Only."(See OverwriteReadOnlySYSFiles) FALSE: Does not replace files marked "Read Only." (Default value) OverwriteReadOnlySYSFiles TRUE: Updates or modifies DOS and MS Windows system configuration files that are flagged Read Only. FALSE: Does not modify DOS and MS Windows system configuration files that are flagged Read Only. Stores the file modifications in a file with the same name but with a .NEW file extension. (Default value) UpdateRequester TRUE: Compares the [REQUESTER] section of the INSTALL.CFG file with the "NetWare DOS Requester" section located in the workstation's NET.CFG file. If keywords are different, deletes all information in the "NetWare DOS Requester" section and replaces it with information in the [REQUESTER] section of the INSTALL.CFG file. FALSE: Compares the [REQUESTER] section of the INSTALL.CFG file with the "NetWare DOS Requester" section located in the workstation's NET.CFG file. If keywords are different, appends the information in the "NetWare DOS Requester" section with the information in the [REQUESTER] section of the INSTALL.CFG file. (Default value) [TCP/IP] This section contains specific information for workstations that are running on TCP/IP stacks. The seven parameters are discussed below. InstallTCP True: The network supervisor intends to install TCP/IP with the configurations in the INSTALL.CFG file. False: The network supervisor does not intend to have TCP/IP installed. (Default value) OverrideLocalSettings True: The network supervisor intends to override the TCP/IP settings on each workstation running TCP/IP with the configuration settings in the INSTALL.CFG file. False: The network supervisor does not want to override the TCP/IP settings with the new ones. (Default value) WARNING: Since each workstation must have a unique IP address, all IP addresses must be configured individually in the workstation's NET.CFG file. If you want to maintain the present IP addresses for those workstations running TCP/IP, set this parameter to False. ip_address This setting is the IP address that will be configured for each workstation that is upgraded. Each upgraded workstation's NET.CFG file must be configured individually by overriding this setting with a unique IP address (refer to the WARNING above). ip_router This setting displays the IP router address. Unlike the IP address, the IP router address is the same for all workstations using the same router. ip_netmask This setting displays the netmask address for all workstations in a network segment. DNS_domain This is the address that identifies the domain name for your particular network in relation to other networks. An example is provo.novell.com NameServerAddress This is the IP address of the domain name server (DNS). The DNS maintains the IP addresses for each TCP/IP worstation in the network. [NWIP] This section contains specific information for NetWare/IP workstation parameters. These parameters allow the workstation to send and receive IP packets via NetWare/IP. The three parameters are discussed below. InstallNWIP True: The network supervisor intends to install NetWare/IP with the configurations in the INSTALL.CFG file. False: The network supervisor does not intend to have NetWare/IP installed. (Default value) OverrideLocalSettings True: The network supervisor intends to override the NetWare/IP settings on each workstation running NetWare/IP with the configuration settings in the INSTALL.CFG file. False: The network supervisor does not want to override the NetWare/IP settings with the new ones. (Default value) NWIP_Domain_Name This parameter specifies the NetWare/IP Domain configured for the workstation. [SNMP] This section contains specific information for MIB-II support and communities for SNMP workstations. The twelve parameters are discussed below. InstallSNMP True: The network supervisor intends to install SNMP with the configurations in the INSTALL.CFG file. False: The network supervisor does not intend to have SNMP installed. (Default value) OverrideLocalSettings True: The network supervisor intends to override the SNMP settings on each workstation running SNMP with the configuration settings in the INSTALL.CFG file. False: The network supervisor does not want to override the SNMP settings with the new ones. (Default value) enable monitor community This parameter enables the settings for the monitor community. The monitor community describes the read-only community (the community that is allowed to do GET and GET NEXT operations). This parameter is set to either "specified," "any," or "off." Specified: SNMP will use only the specified community name. Any: Any community string can gain access. Off: Access to the monitor community is disabled. NOTE: When a community type is disabled, no management entity can access information for that community, no one can use SNMP to do SET operations against the data it manages. monitor community This parameter specifies the monitor community name. A community name can be any arbitrary case-sensitive ASCII string. It can include any characters except space, tab, open square bracket ([), equal sign (=), colon (:), semicolon (;), double quotation mark ("), or number sign (#). enable control community This parameter enables the settings for the control community. The control community describes the read/write community (the community that is allowed to do SET operations). This parameter is set to either "specified," "any," or "off." For a description of each setting, refer to "enable monitor community" above. control community This parameter specifies the control community name. For a description of allowable characters in a community name, refer to "monitor community" above. enable trap community This parameter enables the settings for the trap community. The trap community describes the name used for traps. This parameter is set to either "specified," or "off." For a description of these settings, refer to "enable monitor community" above. trap community This parameter specifies the community name used for traps. For a description of allowable characters in a community name, refer to "monitor community" above. sysName This parameter informs the SNMP manager of your username. For a description of allowable characters in a sysName, refer to "monitor community" above. sysLocation This optional parameter informs the SNMP manager of the physical location of the workstation. This information can be retrieved by SNMP management stations or reported in SNMP traps. This parameter can be used with the sysContact or sysName parameters or by itself. sysContact This optional parameter informs the SNMP manager of the workstation's network supervisor. This contact information can be retrieved by SNMP management stations or reported in SNMP traps. This parameter can be used with the sysLocation or sysName parameters or by itself. snmpEnableAuthenTraps This parameter instructs the Desktop SNMP to send a trap message if someone without proper access tries to use SNMP to get or change information that Desktop SNMP manages. This parameter is set to either "on" or "off." NOTE: To increase security on the workstation, enable the Desktop SNMP to send a trap message to the manager by setting the value of this parameter to "on." [HOSTMIB] The HOSTMIB file is the resource configuration file for SNMP. HOSTMIB allows you to define both hardware and software resources for a workstation running SNMP. The [HOSTMIB] section often lists "dummy" resources. The "dummy" resources are included so that a "Resources" section is created in the workstation's NET.CFG file during the ACU process. After the workstation is upgraded, the network supervisor can then go to the individual workstation and establish the HOSTMIB resources. The individual settings are described below. InstallHOSTMIB True: The network supervisor intends to install HOSTMIB with the configurations in the INSTALL.CFG file. False: The network supervisor does not intend to have HOSTMIB installed. (Default value) OverrideLocalSettings True: The network supervisor intends to override the HOSTMIB settings on each workstation running SNMP, with the configuration settings in the INSTALL.CFG file. False: The network supervisor does not want to override the HOSTMIB settings with the new ones. (Default value) PRINTER This setting lists the print devices connected to the workstation. A separate line is needed for each print device. There is no limit to the number of listed print devices. MODEM This setting lists the modems connected to the workstation. A separate line is needed for each modem. There is no limit to the number of listed modems. TAPEDRIVE This setting lists the tape drives connected to the workstation. A separate line is needed for each tape drive. There is no limit to the number of listed tape drives. SWDirectorySearchDepth This setting defines the number levels within the Directory tree (beginning with the [Root] level) that HOSTMIB.NLM uses to search for .COM and .EXE files for populating the InstalledSoftwareTable. This setting is a number from 0 to 999. SWDirectorySearch This setting displays the search directory paths for .COM and .EXE files for populating the InstalledSoftwareTable. This entry can be multiple lines. A sample is shown below. SWDirectorySearch=c:\nios\ SWDirectorySearch=c:\scsi\* If the asterisk (*) is placed at the end of the path, the HOSTMIB.NLM starts searching at that subdirectory and continues until all directories below that one have been searched. Each search line is limited to a single line of the NET.CFG file. [TSA] This section contains default settings for the Novell Target Service Agent (TSA) software. TSA software uses Storage Management Services (SMS) applications to backup and retrieve files stored on a backup device. Like the [HOSTMIB] section, this section will often times list "dummy' resources which will need to be established by the network supervisor once the workstation is upgraded. The settings are explained below. InstallTSA True: The network supervisor intends to install TSASMS.COM with the configurations in the INSTALL.CFG file. False: The network supervisor does not intend to install TSASMS.COM. (Default value) OverrideLocalSettings True: The network supervisor intends to override the TSA settings on each workstation running TSASMS.COM with the configuration settings in the INSTALL.CFG file. False: The network supervisor does not want to override the TSA settings with the new ones. (Default value) ServerName This parameter specifies the name of the server where TSASMS.COM will register with WSMAN.NLM. WSMAN.NLM is the NLM that manages workstation registration for SMS products. WorkstationName This parameter identifies the target workstation's unique name. A value for this parameter is required the first time you load TSASMS.COM file for a particular server. Password This parameter identifies the target workstation's unique password, or is used initially to specify a password. The network supervisor running SBACKUP must know this password to back up the workstation. The password is limited to ten characters. SelectedDrives This parameter indicates the hard drives on the workstation that are to be backed up. These drives cannot include floppy diskette drives or network drives. DiskBuffers This parameter indicates the number of kilobytes set aside for temporary storage of the data during the storage or retrieval process. The default is set to 10. StackSize This parameter indicates the bytes allocated for internal variables for the DOS TSA software. The default is optimally set to 2048, and, in most cases, should not be adjusted. [driverTranslationTable] This section contains a LAN driver table for resolving any discrepancies that may occur among LAN driver names being referred to in the .INS, .COM, .LDI, and .LAN files. This table lists all of the LAN drivers shipped with the NetWare client kit, and their accompanying name resolutions. To conserve memory, each line in the table is disabled with a semicolon (;). It is up to the network supervisor to enable those lines in the table that are appropriate for his network. The left side of the equals sign (=) indicates the long name from the loaded LAN driver. The right side indicates a resolution from the .LDI file. Use the above approach to add third party LAN driver resolutions to the INSTALL.CFG file. 4. If you are upgrading Bindery-based (NETX) or NDS clients (VLM, NIOS), follow the applicable substeps below. NETX CLIENTS (Bindery-based) 4a. Run the SYSCON utility and open the system login script. NDS CLIENTS (VLM, NIOS) 4b. Run NetWare Administrator (NWADMIN) or NETADMIN and open the container or profile login script. 5. In the login script, insert a command to run NWDETECT.EXE and accompanying parameters using the following command line syntax: NWDETECT [name] [version1] [version2] [Options...] []=optional parameters [name]: Name to detect. A network supervisor-specified name that should identify a unique attribute of a group. Example: "client32" or "Engineering." [version1]: Version stamp or starting version to detect. [version2]: Ending version to detect. [Options...]: [/T (client_type)]: Used for detecting type of client loaded. Valid clients include NETX, VLM, and NIOS. [/P ("prompt text")]: Prompts the user if /T option returns "True" or 0. The user must be able to answer the prompt with a Y or N. Depending on how the login script is set, a Y returns an exit code of 0 and runs the ACU process. An N returns an exit code of 1 and does not run the ACU process. [/C (path\filename)]: Full path and name to the configuration file containing the Install Stamp. This is normally NET.CFG, but it can be any configuration file you specify. This option is not necessary if the client loads either LSL or NIOS.EXE. [/NS]: Detect whether there is no stamp in the NET.CFG file. An exit code of 0 is returned if no stamp is found. Examples: Command: #NWDETECT ENGINEERING_client32_WS 1.0.0 /C C:\NOVELL\CLIENT32\NET.CFG Result: If NET.CFG has the stamp "ENGINEERING_client32_WS 1.0.0" NWDETECT.EXE returns an exit code of 0 (TRUE) and then performs the ACU process. name: ENGINEERING_client32_WS version1: 1 version2: 0 revision: 0 Command: #NWDETECT /T NIOS Result: If the workstation is running NetWare Client 32, the exit code returns 0 and performs the ACU process. If the workstation is not running NetWare Client 32, the exit code returns 1 (FALSE) and doesn't perform the ACU process. Command: #NWDETECT MARKETING_GROUP 1.*.* /C C:\NOVELL\CLIENT32\NET.CFG Result: Any stamp with the name "Marketing_ Group" and a major version of 1 matches the command, returns an exit code of 0, and performs the ACU process. Command: #NWDETECT client32_GRP_A 1.0.0 2.0.0 /T NIOS Result: Any workstation running NetWare Client 32 with a stamp name "client32_GROUP_A" and a version between 1.0.0 and 2.0.0 returns an exit code of 0 and performs the ACU process. Command: #NWDETECT /NS /T NETX Result: Any workstation running NETX that does not have an Install Stamp in NET.CFG returns 0 and performs the ACU process. Command: #NWDETECT /T NETX /P "Do you want to upgrade Y/N?" Result: Any user whose workstation is running NETX is prompted whether they want to upgrade their workstation. A Y returns 0 and initiates the ACU process. An N returns 1 and does not. Working Example: Here is a sample login script portion with a simple NWDETECT command. REM Auto update script for NDS clients (VLM, Client 32). if member of "Update" then MAP I:=LAHF/SYS:PUBLIC\CLIENT\DOSWIN write "Executing NWDETECT" #I:NWDETECT Novell_Inc_client32 4.0.0 /C C:\NOVELL\CLIENT32\NET.CFG write "NWDETECT completed" end 6. In the login script, insert an IF/THEN statement for error levels 1 and 0, and corresponding action items for each. Examples: Command: if error_level = "0" then write "Upgrading Your NetWare Client" #I:INSTALL /C=INSTSHRT.CFG end Result: If error level 0 is detected, then the message "Upgrading Your NetWare Client" appears and INSTALL.EXE is run with the specified parameters of the INSTALL.CFG file. Command: if error_level = "0" then #I:NWSTAMP Acctng_client32 4.1.0 /C C:\NOVELL\CLIENT32\NET.CFG end Result: If an error level 0 is detected, then the "Acctng_client32 4.1.0" Install Stamp is placed in the NET.CFG file in the path indicated. Working Example: Here is the same sample login script with an added IF/THEN statement for an error level of 0 and a corresponding action item. REM Auto update script for NDS clients. if member of "Update" then MAP I:=LAHF/SYS:PUBLIC\CLIENT\DOSWIN write "Executing NWDETECT" #I:NWDETECT Novell_Inc_client32 4.0.0 /C C:\NOVELL\CLIENT32\NET.CFG write "NWDETECT completed" REM NWDETECT found a stamp matching "Novell_Inc_client32 4.0.0" if error_level = "0" then write "Updating Client" #I:INSTALL end end 7. In the login script, insert a command to run NWSTAMP.EXE and accompanying parameters using the following command line syntax: NWSTAMP [options...] <>=required parameters []=optional parameters : Name to set in the STAMP section of the NET.CFG file (network supervisor-defined). The name cannot contain spaces. : Version stamp to set in the STAMP section of the NET.CFG file. The version MUST be in the x.x.x format. [options...]: [/B ]: Back up the NET.CFG file using the path and filename specified. [/C (path\filename)]: Full path and name of the file where the Install Stamp will reside. This is normally NET.CFG, but it can be any file you specify. This option is not necessary if the client loads either LSL or NIOS.EXE. Examples: Command: #NWSTAMP TEST_CFG 1.0.0 Result: Writes the following to the NET.CFG file: Install Stamp Name = TEST_CFG Major Version = 1 Minor Version = 0 Revision Version = 0 Command: #NWSTAMP ENGINEERING_TYPE_1 94.11.A Result: Writes the following to the NET.CFG file: Install Stamp Name = ENGINEERING_TYPE_1 Major Version = 94 Minor Version = 11 Revision Version = A Working Example: Here is the same sample login script with an added NWSTAMP command and accompanying parameters. REM Auto update script for NDS clients. if member of "Update" then MAP I:=LAHF/SYS:PUBLIC\CLIENT\DOSWIN write "Executing NWDETECT" #I:NWDETECT Novell_Inc_client32 4.0.0 /C C:\NOVELL\CLIENT32\NET.CFG write "NWDETECT completed" REM NWDETECT found a stamp matching "Novell_Inc_client32 4.0.0" if error_level = "0" then write "Updating Client" #I:INSTALL REM INSTALL completed without errors. if error_level = "0" then write "Run NWSTAMP" #I:NWStamp Novell_Inc_client32 4.1.0 /C C:\NOVELL\CLIENT32\NET.CFG end end end 8. In the login script, insert a command to run NWLOG.EXE and accompanying parameters using the following command line syntax: NWLOG [/M "message"] <>=required parameters []=optional parameters : Path and filename to write log entry. [/M "message"]: Additional message to add with log entry. The message must be in quotes. The total amount of alphanumeric characters allowed for the message and NWLOG command line syntax is 125. When using login script identifier variables however, the number of characters allowed is reduced. Examples: Command: #NWLOG /F Z:\LOG.FIL Result: Writes a log entry to the file Z:\LOG.FIL Command: #NWLOG /F \\SERVER\VOL\LOGDIR\LOGIN.LOG /M "Stamped 1.0.0" Result: Writes a log entry with the extra text "Stamped 1.0.0" to the specified file. Working Example: Here is the same sample login script with an added NWLOG command and accompanying parameters. REM Auto update script for NDS clients. if member of "Update" then MAP I:=LAHF/SYS:PUBLIC\CLIENT\DOSWIN write "Executing NWDETECT" #I:NWDETECT Novell_Inc_client32 4.0.0 /C C:\NOVELL\CLIENT32\NET.CFG write "NWDETECT completed" REM NWDETECT found a stamp matching "Novell_Inc_client32 4.0.0" if error_level = "0" then write "Updating Client" #I:INSTALL REM INSTALL completed without errors. if error_level = "0" then write "Run NWSTAMP" #I:NWStamp Novell_Inc_client32 4.1.0 /C C:\NOVELL\CLIENT32\NET.CFG write "Run NWLOG" #I:NWLOG /F I:\LOG\UPDATE.LOG end end end 9. (Optional) If desired, insert a command into the login script, to reboot the workstation once NWLOG.EXE has executed. Example: Command: #I:REBOOT Result: Reboots the workstation Working Example: Here is the same sample login script with an added REBOOT command. REM Auto update script for NDS clients. if member of "Update" then MAP I:=LAHF/SYS:PUBLIC\CLIENT\DOSWIN write "Executing NWDETECT" #I:NWDETECT Novell_Inc_client32 4.0.0 /C C:\NOVELL\CLIENT32\NET.CFG write "NWDETECT completed" REM NWDETECT found a stamp matching "Novell_Inc_client32 4.0.0" if error_level = "0" then write "Updating Client" #I:INSTALL REM INSTALL completed without errors. if error_level = "0" then write "Run NWSTAMP" #I:NWStamp Novell_Inc_client32 4.1.0 /C C:\NOVELL\CLIENT32\NET.CFG write "Run NWLOG" #I:NWLOG /F I:\LOG\UPDATE.LOG write "Update completed; your machine will now reboot" pause #I:REBOOT end end end 10. Test the ACU parameters by setting up a test environment using two or three workstations and then monitoring the upgrades. If the upgrades run successfully, implement the ACU on a larger scale. NOTE: If you have a large number of users that meet the criteria for upgrade logging in at the same time (for example between 8:00 AM and 8:10 AM), you may want to avoid the increased network traffic by staggering the upgrades. For best results, place users into groups of no more than ten members. Then, stagger the times or days that the group members are upgraded. EXAMPLES OF LOGIN SCRIPTS ========================= Each line in the login script examples below are preceded by a number. These numbers serve as a reference for comments that follow. Example #1 ========== 1 REM Auto update for workstations connected via bindery 2 if member of "update" then 3 map I:=lahf\sys:\public\client\doswin 4 #I:nwdetect /T netx 5 REM Nwdetect found out this is a bindery client. 6 if error_level = "0" then 7 write "Upgrading Your NetWare Bindery Client" 8 REM Specifying a modified install script file. 9 #I:INSTALL /C=INSTSHRT.CFG 10 REM Install completed without errors. 11 if error_level = "0" then 12 #I:NWSTAMP Novell_Inc_client32 4.1.0 /C C:\NOVELL\CLIENT32\NET.CFG 13 REM NWLOG does not query for NETX client's username, network 14 REM & node address, added key words to provide that info. 15 #I:NWLOG /F I:\LOG\UPDATE.LOG /M "Upgrade Successful for NETX user %LOGIN_NAME %NETWORK_ADDRESS:%P_STATION" 16 write "Upgrade Completed - Reboot for New Client" 17 else 18 REM Install encountered a problem while running. 19 #I:NWSTAMP Novell_Inc_client32 4.0.0 /C C:\NOVELL\CLIENT32\NET.CFG 20 REM NWLOG does not query for NETX client's username, network 21 REM & node address, added key words to provide that info. 22 #I:NWLOG /F I:..\LOG\FAILED.LOG /M "%LOGIN_NAME %NETWORK_ADDRESS:%P_STATION. Upgrade Failed. Check NWCINST.LOG in NETX directory" 23 write "Tell System Administrator Upgrade Failed" 24 end 25 pause 26 EXIT "logout" 27 end 29 map del I: 30 write "This is not a true Bindery client. ACU process completed." 31 end Comments on Example #1 ====================== All the lines that have write commands inform the user what is happening. These lines are optional. Line 2 checks to see if user is a member of a particular group. Line 3 creates a mapping so that NWDETECT, NWSTAMP, NWLOG, and INSTALL can be run. Line 4 checks to see if the client is running a NETX shell, (/T NETX does this). Line 6 checks to see if NWDETECT found a client running a NETX shell. Line 9 executes the INSTALL utility because NWDETECT returned an exit code of 0, and INSTALL uses a modified install script file called INSTSHRT.CFG. Line 11 checks to see if INSTALL completed OK. Line 12 stamps the NET.CFG with the indicated name and version. (/C indicates the location of the NET.CFG file that is stamped. Lines 13&14 tell what the /M in line 15 does. Line 15 creates a log of the ACU process and the /F indicates the log file's name and path. NOTE: A LOG subdirectory must be created in the DOSWIN subdirectory and all users must have Create and Write rights to the subdirectory before a log file is created. Line 18 describes line 17. Line 19 stamps an existing NET.CFG file to a starting value. The /C makes sure the right NET.CFG gets stamped. Lines 20 & 21 indicate what the /M in Line 22 does. Line 22 creates a log file of the failure of the upgrade process for a particular user. NOTE: A LOG subdirectory must be created in the DOSWIN subdirectory and all users must have Create and Write rights to the subdirectory before a log file is created. Line 24 ends the third if'. Line 27 ends the second if'. Line 30 indicates that the client is not running a NETX shell. Line 31 ends the first if' and this whole portion of the login script. Example #2 ========== 1 REM Auto Update for workstations connected via NDS 2 if member of "update" then 3 MAP I:=LAHF/SYS:PUBLIC\CLIENT\DOSWIN 4 write "executing NWDETECT" 5 #I:NWDETECT Novell_Inc_client32 4.0.0 4.2.0 /C C:\NOVELL\CLIENT32\NET.CFG 6 write "NWDETECT completed" 7 REM NWDETECT did not find a matching stamp or any stamp 8 IF ERROR_LEVEL = "1" then 9 write "Updating Client" 10 #I:INSTALL 11 REM Install completed without errors 12 IF ERROR_LEVEL = "0" then 13 #I:NWSTAMP Novell_Inc_client32 4.1.0 /C C:\NOVELL\CLIENT32\NET.CFG 14 #I:NWLOG /f I:\LOG\UPDATE.LOG 15 write "Update Completed - Your Machine Will Now Be Rebooted" 16 pause 17 #I:REBOOT 18 ELSE 19 REM INSTALL encountered a problem 20 #I:NWSTAMP Novell_Inc_client32 4.0.0 /C C:\NOVELL\CLIENT32\NET.CFG 21 #I:NWLOG /F I:\LOG\FAILED.LOG /M "Check the NWCINST.LOG in the original client directory" 22 write "Update Failed; please contact network supervisor" 23 END 24 pause 25 END 26 MAP DEL I: 27 write "End of ACU process." 28 END Comments on Example #2 ====================== All the lines that have write commands inform the user what is happening. The lines are optional. Line 2 checks to see if the user is a member of a particular group. Line 3 creates a mapping so that NWDETECT, NWSTAMP, NWLOG, and INSTALL can be run. Line 5 checks the NET.CFG file for an Install Stamp with the name Novell_Inc_client32 and determining if the versions fall between 4.0.0 and 4.2.0. Line 8 checks to see that NWDETECT did not find the stamp name and version range indicated or any stamp. Line 10 executes the INSTALL utility because NWDETECT returned an exit code of 1. Line 12 executes if INSTALL.EXE ran successfully. Line 13 stamps the NET.CFG file with the indicated name and version. Line 14 entry is made into a log file; the /F indicates the filename and path. NOTE: A LOG subdirectory must be created in the DOSWIN subdirectory and all users must have Create and Write rights to the subdirectory before a log file is created. Line 16 allows the user to read the message displayed by line 15. Line 17 runs this program that is outside the login script, which will reboot the computer. Line 19 describes line 18. Line 20 stamps an existing NET.CFG file to a starting value. This stamp allows the ACU to update the client at a later time. Line 21 the failure of the upgrade process for a particular user into a log file. The /M tells the network supervisor where to look to find out why the INSTALL utility failed. NOTE: A LOG subdirectory must be created in the DOSWIN subdirectory and all users must have Create and Write rights to the subdirectory before a log file is created. Line 23 ends third if'. Line 24 allows user to view the message in line 22. Line 25 ends second if'. Line 27 displays this message because the workstation did not need to be upgraded. Line 28 ends the first if' and this whole portion of the login script. APPENDIX A: MODIFIED INSTALL.CFG FILE SAMPLE ========================================== The following example shows a modified INSTALL.CFG file, copied from the original INSTALL.CFG that is a component of the NetWare client kit. This sample INSTALL.CFG copies only two files: the NETBIOS.EXE file and the NOVELL.BMP file. However, because the InstallWindows parameter under [SETUP] is set to AUTO, the single Unicode file listed under [UNICODEFILES] will also be copied to workstations with a Windows subdirectory. NOTE: If you choose to edit the INSTALL.CFG file, we recommend that you make a copy of the original INSTALL.CFG file and save it so that it can be retrieved in case of a problem with the edited INSTALL.CFG (or whatever name you give the new configuration file). In most cases, you will need to only edit the [FILES], [REQUESTER], and [SETUP] settings, and, if applicable, some of the settings in the [TCP/IP], [NWIP], [SNMP], [HOSTMIB], and [TSA] sections. Remember that many of the settings in the [TCP/IP], [NWIP], [SNMP], [HOSTMIB], and [TSA] sections must be unique and therefore can't be set in the INSTALL.CFG file. Those unique settings must therefore be configured at the individual workstation. [FILES] DISK2:CLIENT:DW:CLIENT32\CLIENT32.NLM DISK2:CLIENT:DW:CLIENT32\PHASERS.WAV DISK2:CLIENT:DW:CLIENT32\LOGINW31.EXE DISK2:CLIENT:DW:CLIENT32\NIOS.EXE [UNICODEFILES] DISK4:WINNLS:W:UNICODE\UNI_COL.001 DISK4:WINNLS:W:UNICODE\UNI_MON.001 [WINDELETE] NWPOPUP.EXE NETWARE.DRV [REQUESTER] FIRST NETWORK DRIVE = F NETWARE PROTOCOL = NDS BIND PREFERRED SERVER = ATHENA PREFERRED TREE = "BUBBA.ATHENA" NAME CONTEXT = "CN=GMAZZA.OU=INSTALL.OU=NPD.O=NOVELL" [TITLES] DISK1DOS:'NetWare Client 32 for DOS/Windows 3.1X Disk 1 DOS Install' DISK2:'NetWare Client 32 for DOS/Windows 3.1X Disk 2' DISK3:'NetWare Client 32 for DOS/Windows 3.1X Disk 3' DISK4:'NetWare Client 32 for DOS/Windows 3.1X Disk 4' DISK5:'NetWare Client 32 for DOS/Windows 3.1X Disk 5 - LAN Driver' DRIVER:'NetWare Client 32 for DOS/Windows 3.1X Disk 5 - LAN Driver' [DISKSPACE] lowSpace = 5500 installDosSpace = 1330 installWinSpace = 3380 [WINGROUP] group=NW.GRP:NetWare Tools icon=nwuser.exe:winsys:NetWare User Tools icon=loginw31.exe:client:NetWare Login icon=setup.hlp:clientlang:Client 32 Help [READMEFILE] LANGCLIENT:readme.txt LANGCLIENT:readSNMP.txt [SETUP] InstallType = AUTO TargetPath = *AUTO InstallWindows = AUTO WindowsUserPath = C:\WINDOWS UpdateDOSSystemFiles = TRUE OverwriteStartnetBat = TRUE DoInstallIfLowSpace = TRUE CopyAllUnicodeFiles = FALSE OverwriteNewerFiles = FALSE OverwriteNewerINIFiles = FALSE OverwriteReadOnlyFiles = FALSE OverwriteReadOnlySYSFiles = FALSE Use32BitDrivers = TRUE [AUTOEXEC] BOTTOM:@CALL %sSTARTNET VeRsIoN=2.00 Novell DOS Install Configuration File CoPyRiGhT=Copyright 1993 - 1996 Novell, Inc. All Rights reserved. APPENDIX B: DESCRIPTION OF KEYWORDS =================================== This appendix is a more detailed description of the keywords used in the variables preceding individual files listed in the [FILES] section of the INSTALL.CFG file. There are a total of eleven keywords. The keyword name signifies the target and source for the individual file. Target and source are very broad terms that include all of the possible installation paths. Key tfp: Target File Path tdp: Target Disk Path wdp: Windows Disk Path fn: Filename idp: Install Disk Path Name fpn: File with Path Name Keyword Target: Source: ------------- CLIENT Target: Source: \ CLIENTDRV Target: Source: \LANDRV16 or \LANDRV32 NWCNTL Target: C:\NWCNTL\ Source: \ CLIENTNLS Target: \NLS\ Source: \NLS\ CLIENTLANG Target: \NLS\\ Source: \NLS\\ LANGCLIENT Target: \ Source: \NLS\\\ Source: \ WINSYS Target: \SYSTEM\ Source: \ WINNLS Target: \NLS\ Source: \ WINLANG Target: \NLS\| Source: \NLS\\ WINLANGSYS Target: \SYSTEM\ Source: \NLS\\ VeRsIoN=2.00 Novell Client32 ACU Readme file (960606). CoPyRiGhT=Copyright 1996 Novell, Inc. All rights reserved.