NOVELL TECHNICAL INFORMATION DOCUMENT TITLE: Novell Client Configuration Utilities TID #: 2957238 README FOR: NCCUTIL4.EXE SUPERSEDES: NCCUTIL3.EXE NOVELL PRODUCTS and VERSIONS: Novell Clients ABSTRACT: The Novell Client Config Utilities (NCCUtils) were developed with the intent to provide a utility that would help administrators troubleshoot and monitor the workstation client configurations on their network. There are 2 main components, NCCScan and NCCRead. NOTE: This utility helps system administrators and developers. It is provided free of charge as a courtesy, and therefore, is not a Novell supported product. Problems or questions regarding this product can be reported via e-mail to NTSUTIL@NOVELL.COM. ----------------------------------------------------------------- DISCLAIMER THE ORIGIN OF THIS INFORMATION MAY BE INTERNAL OR EXTERNAL TO NOVELL. NOVELL MAKES ALL REASONABLE EFFORTS TO VERIFY THIS INFORMATION. HOWEVER, THE INFORMATION PROVIDED IN THIS DOCUMENT IS FOR YOUR INFORMATION ONLY. NOVELL MAKES NO EXPLICIT OR IMPLIED CLAIMS TO THE VALIDITY OF THIS INFORMATION. ----------------------------------------------------------------- INSTALLATION INSTRUCTIONS: Note: NCCSCAN.EXE is no longer time-bombed. Refer to README.DOC for a Microsoft Word version of this information. NCCSCAN ENGINE (NCCSCAN.EXE) This component is a parsing engine. It will read in an instruction file that contains instructions on what information is to be gathered on a machine and will write that information out to a report file. There are several command line switches for the NCCSCAN.EXE and many different types of valid entries in the instruction file. The instruction filename defaults to NCCSCAN.INI, but can be changed by a command line parameter. NCCScan.exe Command Line Parameters INIFILE - Instruction Database INI File Specifier Usage: NCCSCAN.EXE /INIFILE = [Drive]:\[Path]\[File] If not specified as a command line parameter , will default to assuming the same path as .EXE and a filename of NCCSCAN.INI. NOUI - Disable the visible GUI while executing Usage: NCCSCAN.EXE /NOUI Currently, this switch reduces makes the GUI invisible to the user. On a screen that is 640x480 for a program to be visible its top and left location (X and Y) must be smaller than 640x480, in other words it must be within the display size of the screen. The NOUI switch tells the program to set its top location to 100000 and its left location to 100000. Unless a monitor is set to 100000x100000 the user will never see the program, but the display routines are still ran. Running NCCSCAN with the /NOUI will still not run in NT System Scope. This is being evaluated for future release. NCCSCAN INSTRUCTION DATABASE FILE This is the .INI file that gives instructions about what information is to be gathered when NCCScan is executed. This file is created in standard .INI format and it requires that all entries in a section be unique (can't have 2 IPAddress = entries in the same section). NCCSCAN_PARAMETERS section At the beginning of this file is a required section [NCCSCAN_PARAMETERS] that is used to configure the Report file location and what it will do if the file already exists (replace or append). The parameters are as follows: Output_File - Specifies the location and filename for the Report file. Can user internal variables for any part of this setting (right of the = sign). Default Usage: Output_File=%Application_Path\%UserName.TXT Write_Type - Specifies what NCCScan should do if the Report file already exists. Supported values are Replace and Append. Replace will delete the existing file and create a new file. Append will use the standard .INI logic to insert or replace entries with in sections. Default Usage: Write_Type=Replace NCCSCAN.INI Entry Types The following are valid entry types in an NCCScan.ini: Registry File GetFile Internal Function/Assignment For each of these types you set an identifier (i.e. IPAddress) equal (=) to the entry type followed by it's required parameters. Information on each of these entry types is provided below. Single Registry Entry: Identifier = Registry;OSCondition;ClientCondition;RegistryType;RegKeyValue;DefaultValue Example: First_Network_Drive=Registry;WIN9X;;String;HKEY_LOCAL_MACHINE\Network\Novell\Sy stem Config\Netware DOS Requester\First Network Drive\0;F OSCondition - Required OS type for this entry to be executed by NCCScan. Allowed values are WIN95, WIN98, WIN9X (both WIN95 and WIN98), and WINNT. ClientCondition - Required Client version for this entry to be executed by the CCG. Will accept any 2 version or 4 version value (i.e. 3.0 or 3.0.1.0). The last two numbers of a 4 version value are the Revision and Level, both of which are set by the network administrator during the install. RegistryType - Defines the registry type of the value that will be queried. Allowed values are String , Integer, Binary or Boolean. Leaving this value blank will allow NCCScan to autodetect what registry type it is. Leaving the RegistryType blank is recommended. RegKeyValue - The full registry key and value that will be queried. See the above example for an explanation of what is required. DefaultValue - The default value for this setting. Many of the Client settings only create registry key/values if they are set to non-default values. This parameter allows the CCG to put the default value in the Report file if the registry key/value does not exist. Will also be used in the Config Reader to indicate to the user whether a setting is default, assumed default, or non-default (when it applies). Leaving this field empty/NULL indicates that there is no Default Value for this setting (i.e. Preferred Server has no Default, but First Network Drive does). Multiple Registry Entry: Identifier = Registry;OSCondition;ClientCondition;RegistryType;RegKey Example: Uninstall_Available=Registry;WIN9X;;AllKeys;HKEY_LOCAL_MACHINE\Software\Microso ft\Windows\CurrentVersion\Uninstall OSCondition - Required OS type for this entry to be executed by NCCScan. Allowed values are WIN95, WIN98, WIN9X (both WIN95 and WIN98), and WINNT. ClientCondition - Required Client version for this entry to be executed by the NCCScan. Will accept any 2 version or 4 version value (i.e. 3.0 or 3.0.1.0). The last two numbers of a 4 version value are the Revision and Level, both of which are set by the network administrator during the install. RegistryType - Defines the registry type of the value that will be queried. Allowed values are AllKeys and AllValues. For AllKeys, it will return a list of all subkeys to the key given in RegKey. For AllValues, it will return a list of all values and their data for the key given in RegKey. RegKey - The full registry key and value that will be queried. See the example below for an explanation of what is required. File: Identifier = File;OSCondition;ClientCondition;DrivePathFile;DefaultDate Example: CLIENT32.NLM=File;WIN9X;;C:\NOVELL\CLIENT32\CLIENT32.NLM;2000/03/22 OSCondition - Required OS type for this entry to be executed by the NCCScan. Allowed values are WIN95, WIN98, WIN9X (both WIN95 and WIN98), and WINNT. ClientCondition - Required Client version for this entry to be executed by the NCCScan. Will accept any 2 version or 4 version value (i.e. 3.0 or 3.0.1.0). The last two numbers of a 4 version value are the Revision and Level, both of which are set by the network administrator during the install. DrivePathFile - The full Drive, Path, and Filename to be examined. See the above example for an explanation of what is required. There are some internal variables that can be used as part of the path. See the Internal Variables section at the end of this document for a complete list. DefaultDate - The default minimum date that the file should be. Will then use this information to flag the file as NEWER, DEFAULT, or OLDER in the NCCScan output file (default filename of NCCSCAN.TXT). GetFile Identifier = GetFile; OSCondition;ClientCondition DrivePathFile Example: Autoexec.Bat_File = GetFile;WIN9X;;C:\AUTOEXEC.BAT OSCondition - Required OS type for this entry to be executed by the NCCScan. Allowed values are WIN95, WIN98, WIN9X (both WIN95 and WIN98), and WINNT. ClientCondition - Required Client version for this entry to be executed by the NCCScan. Will accept any 2 version or 4 version value (i.e. 3.0 or 3.0.1.0). The last two numbers of a 4 version value are the Revision and Level, both of which are set by the network administrator during the install. DrivePathFile - The full Drive, Path, and Filename that should be inserted in the Report.Txt.. See the above example for an explanation of what is required. There are some internal variables that can be used as part of the path. See the Internal Variables section at the end of this document for a complete list. Internal Function/Assignment: Identifer=InternalFunction Examples: IP_Address=IPAddress Drive_Info=DriveInformation Internal Function - Variable that is assigned by the program, but is available for reference in the NCCScan database file (NCCSCAN.INI). See the above examples for an explanation of what is required. The complete list of supported internal function is provided later in this document. NCCSCAN REPORT FILE NCCScan will parse the NCCScan.ini file and write to a Report file on an entry by entry basis. This Report file is defined by the Output_File entry in the [NCCSCAN_PARAMETERS] section of the NCCScan.ini file (NCCSCAN.INI). The format of the Report file will be identical to the NCCScan.ini file as far as sections are concerned. Each section may one or more of the following Report Entry Types: Report Entry Types: Entries/lines in the NCCScan Report File (NCCSCAN.TXT) will be formatted based on what type of entry was specified in the NCCScan Instruction Database file (NCCSCAN.INI). Single Registry Entries Identifier=Registry;Value;[Assumed Default | Non-Default | Default] Example: FIRST_NETWORK_DRIVE=F;ASSUMED DEFAULT Multiple Registry Entries: Identifier_0=Registry;Value; ... Identifier_n=Registry;Value; Example: UNINSTALL_AVAILABLE_0=REGISTRY;Netscape Communicator 4.5; UNINSTALL_AVAILABLE_1=REGISTRY;WinZip; UNINSTALL_AVAILABLE_2=REGISTRY;Z.E.N.works; Files: Identifier=FILE;Drive\Directory\File;Size;Date;Time;Company Name;File Version;Internal Name;Product Version Example: LOGINW32.EXE=FILE;C:\NOVELL\CLIENT32\LOGINW32.EXE; 25088; 8/24/98 1:07:46 AM; Novell, Inc.; 2.10.0.0; LoginW32; 1.0.4.0 Internal Function/Assignment: Identifier=Internal_Variable;Value Example: IP_ADDRESS_0=IPADDRESS;151.155.1.100 NCCREAD.EXE This component will allow you to manipulate/analyze 3 types of files, the NCCScan Output file (NCCSCAN.TXT), the NCCRead Input Database File (NCCREAD.INI), and the NCCScan Instruction Database File (NCCSCAN.INI). NCCREAD.EXE is the GUI analysis component designed to both present the NCCRead output file in a more readable format and to perform some configurable automated analysis on the file. The NCCREAD.EXE file defaults to read this analysis logic from the NCCREAD.INI file in the same directory that the NCCREAD.EXE file was launched from. NCCScan.exe Command Line Parameters DBFILE - Input Report .TXT File Specifier Usage: NCCREAD.EXE /INIFILE = [Drive]:\[Path]\[File] Specifying this parameter will automatically load the specified NCCRead Report File and perform any automatic analysis specified by the NCCREAD.INI file. If this parameter is not used in the execution of NCCREAD.EXE, the NCCRead utility will launch with a blank window (no NCCSCAN.TXT loaded). NOBETA - Disable the Beta Message Box (does not disable time bomb) d - Enable Debug mode for NCCRead. Must be lowercase. Using an upercase D will not enable Debug mode. Usage: NCCREAD.EXE /d Specifying this parameters enables a new "Variables" tab and changes the "Suggestions" tab to show the processing of the logic file on an individual logic operation basis. The "Variables" tab contains a complete list of all values/entries from the loaded NCCSCAN.TXT file that could be referenced as variables in the NCCSCAN.INI file. See the NCCREAD.INI Variables section later for a list of default available variable types for Registry and File entry types. An example of how the "Suggestions" tab works is as follows: NCCREAD.INI file contents IF (%REGISTRY:VAR1:VALUE% = 1) & (%REGISTRY:VAR2:VALUE% = Microsoft) THEN PRINT "VAR1 = 1 and VAR2 = Microsoft"; Suggestions Tab contents Operator: IF Condition: %REGISTRY:VAR1:VALUE% = 1 TheVar: %REGISTRY:VAR1:VALUE% FoundVar: 1 Condition with replaced vars: (1=1) Condition: %REGISTRY:VAR2:VALUE% = Microsoft TheVar: %REGISTRY:VAR2:VALUE% FoundVar: Microsoft Condition with replaced vars: (1=1) & (Microsoft = Microsoft) Outcome: PRINT "VAR1 = 1 and VAR2 = Microsoft"; ) & (%REGISTRY:VAR3:VALUE% = %REGISTRY:VAR4:VALUE%) THEN PRINT "VAR1 = VAR2 and VAR3 = VAR4"; Operator: = %REGISTRY:VAR1:VALUE% NCCREAD.INI This is the .INI file that gives instructions about what analysis should be performed against the entries in the NCCScan Report File (NCCSCAN.TXT) file. All NCCREAD.INI commands will either be an operation or a logical comparison. Any NCCSCAN.TXT entry can be referenced in the NCCREAD.INI file using the basic C++ logic operators. The NCCREAD.INI file should ONLY be edited from within NCCREAD.EXE using the Options drop-down menu and then selecting the "Rules" tab. This is because there is line numbering and other automated information put in the file that is not easily done when manually editing. NCCREAD.INI OPERATIONS Valid operations are: PRINT Syntax: PRINT "literal string"; This will display information to the "Suggestions" tab. The PRINT command allows the use of literal string(s) and variables. It is terminated by a semicolon (;). The following are examples of valid PRINT commands: PRINT "Warning: Bad client configuration detected You have never set the DoBadThings parameter to OFF."; PRINT %REGISTRY:USER_CONTEXT_CEILING:VALUE%; PRINT "Warning: WM file missing the "+%FILE:WM95SCHED.EXE:FULLNAME%+" file is required for the Workstation Manager service to function. Please install this file or remove the Workstation Manager service."; SET Syntax: SET %NewVariable% = RHOperand NewVariable - Name of the new variable that can then be referenced in later lines of the NCCREAD.INI. RHOperand - The Left-Hand Operand can be a combination of literal strings, numbers, or other variables. This will allow the creation/population of an internally defined variable (was not in the NCCSCAN.TXT input file). This variable can then be referenced the same as other variables. This was intended for use for complex logical comparisons that would be performed multiple times (do the complex logic check once and then assign a value to a variable that can be referenced instead of the doing the complex logic check each time). This command must also be terminated by a semicolon (;). The following are examples of valid SET commands: SET %CurrentClientVer%= %REGISTRY:MAJOR_VERSION:VALUE%+ %REGISTRY:MINOR_VERSION:VALUE; NOTE: if the Major Version was 3 and the Minor Version was 1, then CurrentClientVer would be 31. This could then be used to quickly check the client version without having to check both version registry keys (could also be used for all 4 version registry keys). Be warned that it will be handled as a string from this point on and not a number (which is why I did not put a period in between the numbers). NCCREAD.INI LOGICAL COMPARISONS Syntax: IF LHOperand Operator RHOperand THEN Operation; LHOperand - The Left-Hand Operand to be used in the logical comparison. Must be a File, Registry, or Internal Variable attribute. RHOperand - The Left-Hand Operand can be a combination of literal strings, numbers, or other variables. Operator - The type of comparison to be performed. The following is a list of valid Operators: < - Less than <= - Less than or Equal to > - Greater than >= - Greater than or Equal to = - Equal to != - Not equal to ^ - Contains (commonly used with multi-value entries). Example: IF %FILE:CLIENT32.NLM:Date% < 1999/05/11 THEN PRINT "You are not using the current client version"; NCCREAD.INI Commands There are three main categories of NCCREAD Commands, the File, Registry and Internal commands. The File and Registry Commands can be used against the different values stored for each entry type. Each of these values that can be viewed from the NCCRead GUI can be used in an NCCREAD Command. NCCREAD.INI FILE Commands Syntax: IF %FILE:Entry_Name: Field% [Operator] [RHOperand] THEN OPERATION Entry_Name - The entry name as defined in the NCCSCAN.INI. For the following NCCSCAN.INI example, the Entry_Name would be CLIENT32.NLM: CLIENT32.NLM=File;WIN9X;;C:\NOVELL\CLIENT32\CLIENT32.NLM Field - Valid values here are: COMPANY - "Company Name" attribute from the file header. Can also be viewed by looking at the properties of the file in Windows Explorer and selecting "Company Name" in the "Other version information" window of the "Version" tab. DATE - "Modified" attribute from the file header. Can also be viewed by looking at the properties of the file in Windows Explorer and viewing the date portion of "Modified" field of the "General" tab. NOTE: This will always be displayed in the YYYY/MM/DD format to simplify the programming required to make valid logical comparisons (i.e. if DATE > 1999/10/21 THEN...). FULLNAME - "Location" attribute + File name attribute from the file header. Can also be viewed by looking at the properties of the file in Windows Explorer and viewing the "Location" field of the "General" tab. INTERNALFILEVERSION - 'File version" attribute from the file header. Can alsobe viewed by looking at the properties of the file in Windows Explorer and viewing the "Product version" field of the "Version" tab. NAME - The name of the file (will display long file name if it is greater than 8.3). SIZE - "Size" attribute from the file header. Can also be viewed by looking at the properties of the file in Windows Explorer and viewing the "Size" attribute of the "General" tab. TIME - "Time" attribute from the file header. Can also be viewed by looking at the properties of the file in Windows Explorer and viewing the time portion of the "Modified" attribute of the "General" tab. NOTE: This will always be in the HH:MM:SS format where HH will be 1 to 24 (uses military time to eliminate the need to distinguish between AM and PM). DEFAULT - This will have the value of what was defined in the NCCSCAN.INI for the default value. This is an optional field, so if it is not populated in the NCCSCAN.INI, it will be null/blank for this variable within NCCREAD. Usage Example 1: The following is an example of detecting a version of the 95/98 Client CLIENT32.NLM file prior to version that shipped with 3.10: IF %FILE:CLIENT32.NLM:DATE% < 1999/01/14 THEN PRINT "The "+%FILE:CLIENT32.NLM:FULLNAME%+" file is a version older than what shipped with the 3.10 Client for Windows 95/98. Please update the client on this machine to the current client."; Usage Example2: The following could be used to detect a known problem when using an outdated COMCTL32.DLL: IF %FILE:COMCTL32.DLL:PRODUCTVERSION% < 4.72 THEN PRINT "You are using an outdated version of COMCTL32.DLL, this may cause Roaming Profiles to be recreated using the Default Profile"; Usage Example3: The following could be used to detect when a Novell created SAMSRV.DLL was no longer present in the SYSTEM32 directory: IF %FILE:SAMSRV.DLL:COMPANY% != NOVELL THEN PRINT "You are no longer using Novell's SAMSRV.DLL for SAM database redirection."; NCCREAD.INI Single Registry Commands Syntax: IF %REGISTRY:Entry_Name:Field [Operator] [RHOperand] THEN OPERATION Entry_Name - The entry name as defined in the NCCSCAN.INI. For the following NCCSCAN.INI example, the Entry_Name would be CLIENT32.NLM: CLIENT32.NLM=File;WIN9X;;C:\NOVELL\CLIENT32\CLIENT32.NLM Field - Valid values here are: DEFAULT - This will have the value of what was defined in the NCCSCAN.INI for the default value. This is an optional field, so if it is not populated in the NCCSCAN.INI, it will be null/blank for this variable within NCCREAD. KEY - This is the registry Key/Value pair that was defined in the NCCSCAN.INI. VALUE - This is what will be used for almost all Registry NCCREAD.INI commands, since it was the value retrieved from the registry and then stored in the NCCSCAN.TXT. Usage Example1: If you wanted to check to see if the Replica Timeout parameter has been enabled, you could use the following command: IF %REGISTRY:REPLICA_TIMEOUT:VALUE% >= 1 THEN PRINT "Someone has changed the Replica Timeout value in an attempt to control initial DS server authentication."; NCCREAD.INI Multiple Registry Commands This type is only created when using the AllKeys or AllValues Entry Type in the NCCSCAN.INI. Syntax: IF %REGISTRY:Entry_Name:Field [Operator] [RHOperand] THEN OPERATION Entry_Name - The entry name as defined in the NCCSCAN.INI. Field - Valid values here are: ALL_VALUES - The ALL_VALUES variable will list all values found (the complete list) in a semicolon delimited structure. The purpose of the ALL_VALUES entry is is to allow Contains (^). [Individual Values or Keys] - Since these registry entries contain multiple values, each unique value found will be added as a variable name. For a visual explanation, launch NCCREAD with the /d parameter and look at the "Variables" tab. NCCSCAN.INI INTERNAL FUNCTIONS This is a list of Functions defined internally within the NCCSCAN.EXE program that can be used in the NCCSCAN.INI file. These exist for situations where you need to do additional logic beyond just requesting a Registry value or File name. If you do not request them (by having an entry for them in the NCCSCAN.INI), then they will not be available for use in the NCCREAD.INI file. This has been broken up into 5 main sections, the OS Connectivity, System Information, System Resources, System Devices, and Miscellaneous Values: OS Connectivity: NIC - Gets all loaded/bound network cards (older versions only returned the primary NIC) IPAddress - Gets the all bound IP Addresses (starts numbering at 0 for primary) IPXAddress - Gets the Net:Node:Socket for IPX System Information: BIOSInfo - Attempts to read the BIOS string (does not work on all workstations) ComputerName - Gets the computer name CPU - Gets the CPU type (i.e. Genuine Intel; 586) CurrentDate - Get the current date CurrentTime - Get the current time LastBoot - Last boot time/date (gives in MM/DD/YY HH:MM:SS AM/PM) OSVersion - Gives the text and version string (i.e. Windows 98;4.10.1998) Organization - Organization name set during the OS installation Owner - Full name for the user TimeZone - Time Zone the workstation is configured for UserName - Windows login name for the user UpTime - How long the system has been up (gives time in hours, min, sec) System Resources: AvailableMemory - Gets the amount of memory available DriveInformation - Gives detailed stats on each drive using the following reporting format: Drive Letter;Media Type; Volume Label;File System;Free Space; Media Type possible values: 1=Not Present 2=Floppy 3=Hard Drive 4=Network Drive 5=CD-ROM 6=RAM Disk File System possible values: CDFS FAT FAT32 NTFS OS2 Free Space is only valid for space under 2 GB Total Space is only valid for drives smaller that 2 GBivesPresent - Gives a count and letter list (i.e. 6;ACDFYZ) SwapFileSetting - Current max swap file size in bytes SwapFileSize - Current swap file size in bytes TotalMemory - Gets the total physical memory Environment - Will display all global variables that have been set (i.e. same as SET command). System Devices: MonitorDriverDescription - Gets the Monitor Driver text desc. string Printer - Printer and port description (i.e. HP 4 Si on \\Tree\.Queue_name.context) SoundInfo - Returns sound driver and MIDI driver info VideoCard - Gets the primary video card driver BiosVideoInfo - Returns the date of the Video BIOS Miscellaneous Values: Beep - Make the PC speaker beep Message - Display a message Question - Allows for a prompt for user input Usage: Address=QUESTION;What is your address? Output: Address=QUESTION;{User Response or NO RESPONSE} NOTE: Currently the internal variable Question only allows for very short questions. The ability to prompt for a long question is being considered for future releases. NCCSCAN.INI INTERNAL VARIABLES These are values that can be used in the NCCSCAN.INI where the executable will replace the variable name (i.e. %SYSTEM_PATH) with the correct value for that workstation (i.e. C:\WINNT\SYSTEM32). All Internal Variables will start with a % as a triggering symbol. The list of currently accepted Internal Variables is as follows: %Application_Path - Path where the NCCSCAN.EXE was launched from %Novell_Client_Path - Path to where the Novell Client was installed (Normally NOVELL\CLIENT32 for Windows 95/98 and WINNT\SYSTEM32\NETWARE for WinNT). %User_Name - The Windows login name (not necessarily the NDS username) %Windows_Path - The WINNT path for NT and the WINDOWS path for 95/98. Will adjust for custom installations (both for the drive letter and the path). %Windows - Same as %Window_Path. %Windows_System - The WINNT\SYSTEM path for NT and the WINDOWS\SYSTEM path for 95/98. Will adjust for custom installations (both for the drive letter and the path). %Windows_System32 - The WINNT\SYSTEM32 path for NT and the WINDOWS\SYSTEM path for 95/98. Will adjust for custom installations (both for the drive letter and the path). KNOWN LIMITATIONS/ISSUES: 1. This NCCREAD included in this version is time-bombed and will be inoperative after January 1, 2001. 2. The NCCREAD launches very slowly beyond the Beta acceptance GUI, sometimes taking up to 2 minutes to popup the main GUI. ISSUE: Refer to Install section. Self-Extracting File Name: NCCUTIL4.EXE Files Included Size Date Time ..\ NCCUTIL4.TXT (This file) README.DOC 72704 7-31-2000 3:48:08 pm ..\NCCUTIL4\ NCCREAD.EXE 1026048 7-19-2000 11:12:54 am NCCREAD.INI 35149 7-31-2000 8:57:42 am NCCSCAN.EXE 467968 5-23-2000 2:31:30 pm NCCSCAN.INI 88714 6-23-2000 1:50:20 pm ----------------------------------------------------------------- Any trademarks referenced in this document are the property of their respective owners. Consult your product manuals for complete trademark information. -----------------------------------------------------------------