Windows 95 Automated Installation Guide

Archived content. No warranty is made as to technical accuracy. Content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

Michael Aguilar

Product Support Services

On This Page

Disclaimer
Introduction
Scripting Basics
[Setup] section
[Install] section
[Network] section
Administration options
Group Policy Integration Considerations
Hardware options
Other Options
Updated Components
Other files used by setup
Setting up other applications

Disclaimer

The information provided in this document is provided "as-is" without warranty of any kind, either expressed or implied including without limitation, the implied warranties of merchantibility and/or fitness for a particular purpose. The user assumes the entire risk as to the accuracy and use of the document. In no event shall Microsoft or its suppliers be liable for any damages whatsoever, including without limitation, direct, consequential indirect, incidental, lost profit or special damages, even if Microsoft has been advised of damages.

Introduction

Windows 95 is typically installed via a series of easy to use Wizards that prompt the user to select which components of Windows 95 they wish installed on their specific computer. While this method has proven very effective for single workstations, it does not address the concerns of a business that installs Windows 95 across hundreds or thousands of desktops. These businesses often have specific goals for their workstations, including network configuration, security, administration, and customization. It is unrealistic to expect thousands of end–users to follow a lengthy set of instructions to install Windows 95 to their workstations, or to have a set of employees manually install one workstation at a time. In addition to being time–consuming, it is very likely that mistakes will be made, resulting in a non–homogenized environment, with all the related administrative overhead.

A method exists for just such a scenario. It is possible to write a script for the installation of Windows 95, including many (if not all) desired options. This document discusses such scripting. Its purpose is to expand, clarify, and consolidate Appendixes C & D from the Windows 95 Resource Kit, which should be used for greater detail on syntax and usage. It should be noted that this document is intended for the experienced Windows 95 user, preferably one who has experience installing and troubleshooting, and who is familiar with the topics being discussed. It discusses the installation of various options, but does not discuss the usage of such options. It is not intended in any way to educate the reader as to the internal workings of Windows 95, nor does it discuss interoperability with existing networks and applications.

Scripting Basics

Windows 95 uses a default script name of MSBATCH.INF, a text file that can be edited in Notepad (It is suggested that Word Wrap be disabled when creating or modifying a script). If no script is specified after the Setup command, and this file exists in the same directory that Setup is being run from, it will be used. The script may be saved with any filename that conforms to the 8.3 (DOS) specification, and should end in .INF.

Chapter 3 of the Windows 95 Resource Kit details Windows 95 Setup. In addition to describing the various stages, the margins contain information describing which section in the script refers to the stage of setup being discussed. This can be an invaluable aid to troubleshooting a script that may not perform as expected.

Considerations

When installing Windows 95 to a large number of workstations, it is usually best to consider the following:

  • Existing Operating Systems (OS)

  • Security and Administration

Existing Operating Systems

Windows for Workgroups 3.11

Possibly the easiest method of installing Windows 95 is to upgrade over Windows for Workgroups 3.11. Additional options may be added via the script, and many of the problems that are associated with unique values for a particular computer are avoided. Previously installed applications will still be present, hardware detection is simplified and more reliable, and network settings such as user names, computer names, domain names, et al, will be retained in Windows 95.

Windows 3.1 or 3.11

Another simplified method is to upgrade over Windows 3.1/3.11. Again, additional options may be added via the script, and the settings for previous applications will be retained. However, network–specific information may have to specified by other means.

Clean Install

In many cases, a site will install Windows 95 to computers that have little or no software previously installed. In this situation, the administrator has full control over what will be installed on the workstations.

Security and Administration

Early in the planning phase, consideration should be given to the security and administration options available in Windows 95. These include User Profiles, Group Policies, Remote Registry, and Remote Administration. Some options can only be installed during setup.

Planning

The design of a setup script can be divided into two sections:

  • Core Components

  • Miscellaneous Options

Core Components

When beginning a setup script, initial focus should be on the core components of Windows 95, such as network, security, and administration options. These typically are the most difficult to implement properly, and are the most critical to successful operation. For instance, an end user may not know their TCP/IP settings, and would be unable to connect to their resources without this knowledge.

Miscellaneous Options

Basically, anything that can be added or removed with a minimum of effort on the part of the end–user, or is not difficult to specify in the script is defined as "miscellaneous". This includes components that may be found in Add/Remove Programs, display settings, one–line registry edits, and others.

Time Considerations

Depending on the hardware, and the level of user intervention required, a scripted setup can take from twenty minutes to an hour to complete. Depending on the complexity of your installation be prepared to run setup many times.

Testing

Testing cannot be emphasized enough. Ideally, a few computers should be set aside exclusively for this purpose. Enough computers should be available to test all functions, including networking, administration, and normal usage. A printer is desirable.

Troubleshooting

When experiencing problems with a scripted setup, the best thing to remember is to simplify. Isolate the component that is giving difficulty, and use a script that installs only that component. Editing a large script can be very confusing, as the layout is not easily structured. Reducing the number of extra sections greatly speeds the troubleshooting process, and they can be added back in after the current problem has been resolved.

Another powerful troubleshooting method is running setup from the compact disc, without any script whatsoever. This may reveal error messages that would otherwise be suppressed, options that are specified in the script but require additional components to be integrated to the install point, and settings that should be defined in the script (particularly network settings) but aren't.

Chapter 3 of the Windows 95 Resource Kit contains detailed information as to which stage of setup relates to which section in the script. This can be valuable when troubleshooting a "hand–free" installation that prompts for additional information.

Script Structure Overview

Similar to a Win3x INI file

As noted above, the script is a text file with the extension of INF. This file is similar in design to an INI file, and the rules that apply in an INI also apply in the INF. The format is a section heading contained within square brackets ([heading]), which is followed by text in the following format:

<keyname>=<value>, <optional value>…

Duplicate sections are not permitted, and only in some cases are duplicate keynames permitted. The Windows 95 Resource Kit contains examples of these keys, but unless otherwise noted, duplicate keynames should not be used. If multiple values are to be used after a keyname, they should be separated by commas.

Comments may be included in a script. As in a Win3x INI file, these are preceded by a semicolon (;).

Section names

There are two types of section headings in the INF file:

  • Reserved

  • User Defined

Reserved section names are:

· Setup–Related

· Network–related

· [Setup]

· [Network]

· [Install]

· [MSTCP]

· [System]

· [NWLink]

· [NameAndOrg]

· [NWRedir]

· [InstallLocationsMRU]

· [NWServer]

· [OptionalComponents]

· [Vredir]

· [Printers]

· [Vserver]

Other section names may be reserved, depending on options specified in the script.

User–defined sections are created by the user, and are defined by keynames specified in a reserved section.

The above sections will be discussed in greater detail later in this document.

Tools

There are a few tools available for scripting. Some are available on the Windows 95 compact disc, and can be found in the \Admin subfolder (This folder also contains the files needed for many of the optional components, such as Remote Registry and Group Policies). Other tools are available via Microsoft Electronic Services (FTP, WWW).

These tools greatly simplify preparing a setup script. In most cases, nothing other than these tools is required to write the complete script. Before attempting to manually write the script, try the tools.

Additional information and instructions for each of these tools may be found in their respective README.TXT files.

Available on the compact disc:

  • Netsetup

  • *Inf installer

  • *Batch Installer

*Updated versions of these tools may be found on Microsoft's FTP and WWW site. It is strongly recommended that the updated versions be used, as they provide added functionality, and some problems with the original versions have been fixed.

Available on Microsoft's FTP and WWW site:

  • Inf Installer

  • Batch Installer version 2.0

  • Inf Generator

Netsetup

(Location: \Admin\Nettools\netsetup.exe)

This tool is available only on the Windows 95 compact disc. It will run only on Windows 95. Its use is necessary for any scripted installation that will include components not located in the Windows CAB files. If the installation will include only default options, then the CAB files may be used with the script, although this method is unsupported. Many of the examples in this document will not function if the CAB files are used. Generally, it is better to use this tool, in the event future installations will be further modified.

Netsetup's primary purpose is to create a default folder hierarchy at the installation point, expand the files from the .cab files, copy those files to their appropriate subfolders, and mark them as read–only. There are some rudimentary scripting utilities available, as well.

Inf Installer

(Location: \Admin\Nettools\infinst.exe. Updated version available, and highly recommended, from Microsoft's electronic services)

The Inf Installer is used to integrate software components (not hardware) which use a standard Windows INF format, into an existing installation point. It copies all needed files to their appropriate subfolders, modifies MsBatch.Inf to include these components in the installation, modifies Custom.Inf, and modifies Layout.inf. In short, it does all the work needed to integrate additional components to an installation point.

Batch Installer

(Location: Start menu if using the updated version, else \Admin\Nettools\batch.exe)

Batch Installer has most of the common items that are used in installation scripts. Batch 2.0 has a feature to retrieve settings from the registry of an existing installation. Using this feature, a single workstation may be set up with all desired features, and Batch 2.0 will retrieve the settings from the registry and write the script. It will not copy the necessary files to the installation point, however. Inf Installer should be used for this purpose.

Inf Generator

(Available via FTP or WWW, IG.EXE. Expand with a "–d" parameter. This forces IG.EXE to expand with the necessary folder structure)

This tool is most widely used on networks where many different configurations will be required. It is used in combination with an existing script, which acts as a base template. Inf Generator combines this file with other components, which may not be available in Batch Installer, and creates one or more scripts. Its most useful function is creating separate scripts for multiple users.

Image Installs

A common request regards the issue of "image" installations of Windows 95. This would involve setting up Windows 95 on a computer representative of all the workstations to which it is to be installed. There is no supported method of achieving this.

[Setup] section

Hands–free requirements

In order for a workstation to be setup without any user intervention, any input that would normally be required must be specified in the script. This includes installation locations, uninstall information, all user information, and all optional components. No Emergency Boot Disk will be created; and no printers will be installed, unless upgrading, in which case previous printers will be retained.

Example:

For a hands–free stand–alone (no network, no network card present) installation, the following sections and switches are required:

[Setup]

Display=0

;Do not display setup options

Express=1

;Automates the "Next" button

InstallDir="C:\Windows"

;Install Windows 95 to this folder

ChangeDir=0

;Do not permit the user to change InstallDir

EBD=0

;No Emergency Boot Disk

ProductID=

;The CD key belongs on this line

CCP=0

;Do not search for previous versions of Windows

VRC=0

;Do not prompt to overwrite files

TimeZone="Central"

;Modify to suit

Uninstall=0

;If "5" (create backup), BackupDir must be specified

[NameAndOrg]

Display=0

;Do not display name and organization page

Name="User Name"

;Modify to suit

[Printers]

Please note that this does not include any network options, and does not function if a network card is present in the computer. If any network components are to be installed, further information is required.

Other [Setup] options

InstallType=

This switch specifies which set of default components will installed with Windows 95. The components available correspond with the setup buttons available during a regular Windows 95 installation.

0=Compact

Minimal components will be installed

1=Typical

Default components will be installed

2=Portable

Primarily used on laptops.

3=Custom

Used in conjunction with [OptionalComponents], for non–default configurations

[Install] section

Appendix C of the Windows 95 Resource Kit contains information on modifying system files during setup. For more complete information regarding syntax and usage, please refer to the Resource Kit. The most commonly used keynames will be discussed here. The values for the keynames discussed here refer to user defined sections. In other words, the specific modifications are not in this section. Rather, it refers to and defines the sections that contain the specific information.

Note: In the examples provided, some lines wrap to two or more lines. This is due to the formatting in the document, and should not be duplicated in the script.

Addreg=

(p1161 & p1165, Windows 95 Resource Kit)

This keyname defines those sections that contain information for adding keys and values to the registry. The specified section then contains the specific information for editing the registry. There can be only one Addreg= line in the [Install] section, but it may contain as many section names as needed, separated by commas.

Example

(Runs Notepad once after the initial login):

[Install]
Addreg=Edit.Registry
[Edit.Registry]
HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce,"RunMeOneTime",,"notepad.exe"

CopyFiles=

(p1161 & p1168, Windows 95 Resource Kit)

This defines sections that contain a list of files to be copied to the workstation. There can be only one CopyFiles= line in the [Install] section. Copying the files is more involved than that, however. In addition to providing the list of files, the destinations and source must be defined as well. This is done in three more sections:

  • [DestinationDirs] (p1166, Windows 95 Resource Kit)

  • [SourceDisksNames] (p1170, Windows 95 Resource Kit)

  • [SourceDisksFiles] (p1169, Windows 95 Resource Kit)

All four of these sections are required in the script for the file to be successfully copied. The section referenced by the value by the CopyFiles key is a list of the filenames to be copied. While no path information is required, this section may be used to rename a file, if the source filename differs from the destination filename. It may also be used to temporarily rename the file, in case such a file already exists on the workstation, and is in use. The new file will be renamed to its final name on the next restart.

Another valuable resource for copying files is LDID (Logical Disk Identifiers). These are specific numeric values that correspond to various default destination (not source) folders in a Windows installation. See page 1167 of the Windows 95 Resource Kit for a list of LDID values.

The [DestinationDirs] section specifies where each set of files is to be copied. Each section referenced by the CopyFiles key will have an entry in this section. The section name is equated to either a path, or to an LDID. The most commonly used LDIDs are 10, (%windir%, the directory to which Windows 95 is being installed), and 11 (the %windir%\system subdirectory).

The [SourceDisksNames] section specifies where the files to be copied are kept. In most cases, only one entry is needed. This entry consists of the identifier to be referenced by the [SourceDisksFiles] section, followed by an equals sign, a description of the source, two commas, and a mandatory "0".

In the [SourceDisksFiles] section, all of the files to copied are referenced once again. The actual name of the file to be copied (as opposed to its destination name), is followed by an equals sign, the reference identifier from [SourceDisksNames] section, a comma, the subfolder in which the file may be found (if any), another comma, and the file size.

Example

(copies CE2NDIS3.VXD to the %windir%\system folder):

[Install]
CopyFiles=Xircomfiles.Copy
[Xircomfiles.Copy]
CE2NDIS3.VXD
[DestinationDirs]
Xircomfiles.Copy = 11  ;LDID for the \system folder
[SourceDisksNames]
;<Cab#> = <disk description>,<cabinet filename>, ID (Unused, must be 0)
22="Win95",,0
[SourceDisksFiles]
CE2NDIS3.VXD=22,,1024

UpdateAutoBat

(p1161 & p1163 Windows 95 Resource Kit)

This defines sections that contain information to add or remove entries in the Autoexec.bat. If the script removes a statement that is "called", for example, "Call Test.Bat", then the syntax to remove this line omits the "Call" statement. Please see the example below.

Note: you cannot replace a command. You must delete it, then add a new command. All CmdDelete entries are processed before any CmdAdd entries.

Example

(removes "call startnet.bat" and adds "call virus.bat")

[Install]
UpdateAutoBat=Remove.Add
[Remove.Add]
CmdDelete=Startnet.bat
CmdAdd=Call, "Virus.bat"

UpdateCfgSys=

This defines sections that modify the Config.sys. Note that the uses of this parameter are rather limited. Devices (drivers) may be added, deleted, or replaced. The values for memory structures such as Stacks, Buffers, Files, and LastDrive may be added or modified, but not removed.

Note: Windows 95 processes all DevRename entries, then all DevDelete entries, then all DevAddDev entries.

Example

(removes "Device=c:\dos\aspi4dos.sys"):

[Install]
UpdateCfgSys=Update.Config.Sys
[Update.Config.Sys]
DevDelete=Aspi4dos.sys

UpdateINIs=

(p1161 & p1164 Windows 95 Resource Kit)

This defines sections that update INI files. These INI files do not have to be Windows–specific, they can be any INI file.

Example

(selects the Flying Windows screensaver, and adds needed registry entries to enable it):

[install]
UpdateInis=screensaver.ini
Addreg= screensaver.reg
[screensaver.ini]
%10%\system.ini,Boot,,"SCRNSAVE.EXE=c:\windows\System\flying~1.Scr"
[screensaver.reg]
HKCU,"Control Panel\desktop",ScreenSaveActive,,"1"
HKCU,"Control Panel\desktop",ScreenSaveLowPowerActive,,"0"
HKCU,"Control Panel\desktop",ScreenSaveLowPowerTimeout,,"60"
HKCU,"Control Panel\desktop",ScreenSaveLowPowerTimeout,,"60"
HKCU,"Control Panel\desktop",ScreendavePowerOffTimeout,,"60"
HKCU,"Control Panel\desktop",ScreenSaveTimeOut,,"60"
HKCU,"Control Panel\desktop",ScreenSaveUsePassword,1,0

[Network] section

Hands free requirements

In order for Windows 95 to be setup with network support and no user intervention, the same requirements that are needed for a stand–alone hands–free installation are required with the following additions: All user–specific and workstation–specific information must be specified in the script; all network configuration information must be supplied; Display=0 must be specified in the [Network] section. An example will follow later in this document.

Shared Installations

The [Network] section contains the keys that define whether Windows 95 will be installed locally (all needed files copied to local hard drive), a partially–shared installation (files needed for network connectivity located locally, majority of files located on a remote server), or a completely shared installation (used with RPL network cards).

This document does not cover the specifics of each scenario. Further information may be found in the Windows 95 Resource Kit, pp124–42.

Three keys define in which manner Windows 95 will be installed:

  • RPLSetup=

  • HDBoot=

  • WorkStationSetup=

The table below shows the settings requires for each form of installation.

Windows 95 Location

HDBoot

RPLSetup

WorkstationSetup

All files local

1

0

0

Some files local, some on server

1

0

1

All files on server, RPL boot

0

1

1

All files on server, floppy boot

0

0

1

Computer Identification Parameters

ComputerName=

This key specifies the workstation's NetBIOS name. This is a required value, and is used to identify the computer on the network.

Description=

This key specifies the workstation's description, as it appears in a browse list. It is optional.

Workgroup=

This key specifies the workstation's workgroup. It is mandatory.

Clients=

This key specifies which network redirectors (clients) are to be installed with Windows 95. It also defines the section names for configuration information for the specified redirectors.

Two 32–bit network clients are available in Windows 95. These two clients may be added to the Clients= line without any further modification or configuration of the installation point. They are the Client for Microsoft Networks (VREDIR) and the Client for NetWare Networks (NWREDIR). There are other clients available, but those may require additional files to be copied, or additional entries in the start up files (Config.sys and Autoexec.bat). For more information, please consult p1184 of the Windows 95 Resource Kit.

Additional clients may be specified by this entry, providing that they have been properly integrated to the installation point using Inf Installer.

The primary network logon corresponds to the first Client listed on this line.

Example

(installs the Client for Microsoft Networks and the Client for NetWare Networks, Primary Network Logon is Microsoft, logging on to Domain "DomainName", and the Preferred Server is set to "NWServerName"):

[Network]
Clients=VREDIR, NWREDIR
[VREDIR]
ValidatedLogon=1
LogonDomain="DomainName"
[NWREDIR]
PreferredServer="NWServerName"

Netcards=

This key specifies which network adapters are installed with Windows 95, and defines the section names for configuration information for the specified network adapter. This switch is most commonly used with the IgnoreDetectedNetcards=1 switch, to override Setup's detection scheme. Often, this combination is used to override the detection of an existing NDIS2/ODI driver in the Autoexec.bat.

Strings for this switch may be found in the Windows 95 Resource Kit pp1207–11. Other strings may be found by examining Net*.inf in the INF subfolder of the installation point.

Example

(Installs an Intel EtherExpress 16, sets IRQ and IO)

[Network]
Netcards=*pnp812d
IgnoreDetectedNetcards=1
[*pnp812d]
IRQ=5
IOBaseAddress=0x300

Protocols=

This key specifies which network protocols are installed with Windows 95. It also defines the section names for configuration information for the specified protocols.

The most commonly used protocols are for Microsoft and Novell networks. These protocols are NetBEUI (NETBEUI), IPX/SPX (NWLINK), NetBIOS over IPX (NWNBLINK), and TCP/IP (MSTCP). Available for download is a 32–bit DLC protocol (MSDLC32), which must first be integrated to the installation point using Inf Installer.

Further configuration information for each protocol may be found in the Windows 95 Resource Kit.

Example

(Installs TCP/IP, IPX/SPX and sets parameters for both)

[Network]
Protocols=MSTCP, NWLINK
[NWLINK]
Frame_Type=1          ;Sets frame type to 802.2
[MSTCP]
DHCP=1
WINS=DHCP
DNS=0

Services=

This line specifies which services are installed with Windows 95. It also defines the section names for configuration information for the specified services.

"Services" can include file and print sharing, as well as network administration utilities. Please refer to the Windows 95 Resource Kit p1188 for a complete list of available options, many of which must be integrated into the installation point. Also available via Microsoft electronic services is the 32–bit NetWare NDS service, for accessing NetWare 4.x directory trees. This must be integrated into the installation point using Inf Installer.

Example:

(installs File and Print Sharing for Microsoft Networks)

[Network]
Services=VSERVER
[VSERVER]
MaintainServerList=0;Disables BrowseMastering for these workstations

Other [Network] options

DefaultProtocol=

This key specifies which protocol will be the default. The value should match an entry on the protocols= line.

Note: If installing NWLINK, setting NetBIOS=1 in the [NWLINK] section, and it is desired that NWLINK be the default protocol, then DefaultProtocol must equal NWNBLINK.

RemoveBinding=

This breaks the binding between the specified adapter and protocol. This is useful when a specific network card will not be utilizing a specific protocol. For instance, if a Dial–Up Adapter is installed for PPP connectivity, but IPX is being used for local network access, then IPX need not be bound to the Dial–Up Adapter.

Security=

Specifies which network security model should be implemented for local access to shared folders and printers. With the exception of share–level security, this should be used in conjunction with the PassThroughAgent key, in this same section.

Example:

(Sets security to user–level, specified by Windows NT domain, and sets the specific security provider to "DomainName")

[Network]
Security=Domain
PassThroughAgent="DomainName"

ValidateNetcardResources=

This key determines whether or not Setup displays a dialog box to resolve resource conflicts if a partial configuration is detected or if there is an IRQ conflict for a network adapter.

Administration options

Components exist to facilitate the administration of Windows 95 workstations on a network. The most common of these are Group Policies and Remote Registry. Most other options can be installed after the initial installation, if these components are included in the script.

Both options require the use of Inf Installer to incorporate the necessary files and configuration changes into the installation point.

Group Policies

There are a couple of suggested actions for preparing to incorporate Group Policies to the installation point. The first relates to a feature of Inf Installer. Inf Installer will use all the components available in a given folder, whether or not their Inf is selected. Copying grouppol.* from \Admin\Apptools\poledit to another folder, and pointing Inf Installer to that folder will keep it from incorporating both Group Policies and the System Policy Editor to the installation point. Another consideration is a problem with Grouppol.inf. Without modification, when incorporating this file to the installation point the user will receive an error message, stating that Grouppol.Inf could not be found. Changing the given path to the location of the Group Policy files will allow the user to proceed, and all modification will be made properly.

Alternatively, you can modify Grouppol.Inf. to prevent the error message from appearing.. In the [DestinationDirs] section, add the line:

Grouppol.inf.copy=17

After integrating the files, Group Policies will be installed by adding

[Optional Components]
"Group Policies"=1 

Note that in order for Group Policies to function, user profiles must be enabled.

Remote Registry

This component permits editing of a Windows 95 workstation's registry from another Windows 95 workstation. The components are found on the Windows 95 compact disc, in the \Admin\Nettools\RemoteReg folder. After Inf Installer incorporates the needed modifications, add the following line to the installation script:

[Network]
Services=RemoteReg

Other options that must be enabled for Remote Registry to function are Remote Administration and User Profiles. Both of these options may be included in the script.

Example:

(installs Group Policies, Remote Registry and Remote Administration, gives permission to edit the registry to the DomainName Domain Administrator)

[Install]
AddReg=Remote.Admin,User.Profiles
[Remote.Admin]
HKLM,Security\Access\Admin\Remote,DomainName\Administrator,1,ff,00
[User.Profiles]
HKLM,Network\Logon,UserProfiles,1,1
[Network]
Services=RemoteReg
Security=Domain
PassThroughAgent=DomainName

Group Policy Integration Considerations

To integrate Group Policies to a Windows 95 distribution point the following should be done, first. For various reasons, Group Policies are handled differently than most other components.

First, the files for Group Policies should be separated from the System Policy Editor files. The files are located on the Windows 95 retail compact disc, in the \Admin\Apptools\Poledit folder. Copy Grouppol.* to their own folder (there are three files). This is done because Inf Installer will integrate all software INFs in a given directory, regardless if only one specific INF was chosen for integration. Leaving the group policy files with the System Policy Editor files will result in the System Policy Editor being installed on all target computers.

Next, open grouppol.inf in a text editor. In the [DestinationDirs] section, add the line:

Grouppol.inf.copy=17

Save your changes. This corrects a minor problem with the INF, which results in the user being prompted for the location of grouppol.inf repeatedly during integration.

At this point, Inf Installer may be used to integrate Group Policies properly.

INF structure introduction

INFs are text-based files that contain setup information. This information need not be specific to Windows 95 Setup, INFs may be used by other applications' Setup procedures. In an INF, the requirements for successful installation of hardware or software is defined, including files to be copied, as well as the locations to which they are to be copied; required registry entries; application or device specific settings; configuration settings; and uninstallation information may all be defined in an INF.

In many ways, an INF is similar to a Win3x-style INI file.

Similarities:

  • It is text-based.

  • It cannot exceed 64K in size.

  • Sections are defined by placing the name of the section in square brackets ("[section-name]")

  • Entries within a section may follow a keyname=value format.

  • Duplicate section names are not permitted

  • Duplicate keynames within a section are not permitted.

  • Multiple values may be included for each keyname, where applicable, and should be separated by commas.

  • Comments may included in an INF, and are defined by preceding the comment with a semicolon (";").

The biggest significant difference is that a section may contain a list of values, typically filenames or registry entries.

Typically, there will be a section whose entire purpose is to define other sections' names and functions. This section is called [Install]. Within that section will be keynames. These keynames identify the purposes of the section names defined here.

Example:

[Install]
CopyFiles=Copy.These.Files
[Copy.These.Files]
File1.exe
File2.exe

Note: this example is insufficient to actually copy the files. It is included for illustrative purposes.)

Above, [Install] contains a keyname "CopyFiles". This is a predefined keyname, and sections defined by this keyname contain lists of files to be copied, in this case, "Copy.These.Files". That section is then created ("[Copy.These.Files]"), and the names of the files to be copied are listed within that section.

Please note that multiple sections could have been defined on the CopyFiles= line, and in fact, if there were multiple lists (when copying to multiple destination, this is necessary), then all the sections must be defined on that same line:

[Install]
CopyFiles=Copy.These.Files, Copy.These.Files.Too
[Copy.These.Files]
File1.exe
File2.exe
[Copy.These.Files.Too]
File3.vxd
File4.vxd

Note: again, this example is insufficient to actually copy the files. It is included for illustrative purposes.)

Registry entries may be added this way, as well, and this is how Remote Administration is enabled.

Enabling Remote Administration

Remote Administration requires a few other options to be enabled before full functionality will be provided. These are user-level security, and Remote Registry editing. Since Remote Registry was covered earlier in this document, focus will be given to enabling Remote Administration and user-level security. User-level security also requires a security provider, either Windows NT or Netware, which will also be discussed.

To enable Remote Administration and user-level security, the following should be included in MsBatch.Inf:

[Network]                         ; This section name is Windows 95 Setup specific
Security=<domain_or_server>          ;
Available security providers for this line are "Domain", 
;"MSServer", or "NWServer"
PassThroughAgent=<provider_name>     ;
The name of the domain or server
Services=remotereg               ;
installs the Remote Registry agent. 
;This should've been added by Inf Installer.
;If it is missing, use Inf Installer to add it. Simply ;
including it on the Services= line is insufficient to ;
enable it, as none of the supporting files have been ;
copied.
[Install]
AddReg=Remote.Admin, User.Profiles.Base
[Remote.Admin]
HKLM,"Security\Access\Admin\Remote",
"<server_or_domain\account>",1,ff,00
; This will enable Remote Administration, 
with admin rights given to the account
; specified by <server_or_domain\account>
[User.Profiles.Base]
HKLM,"Network\Logon","UserProfiles",1,1 
;This will enable the base User Profile options

Hardware options

[Printers]

This section predefines printers to install with Windows 95. If this section is left blank, then no printers will be installed, and the user will not be prompted to install any during setup. The keyname is the "friendly name" — the name the user will see in Control Panel and the Print dialog box. The first value is the type of printer (valid strings for this value may be found in Prtupd.inf, in the Inf subfolder of the installation point). The second value is the port or UNC path where the printer is located.

Example:

(adds a Hewlett–Packard Deskjet 310 located at \\<server>\<printer>, and names it "Main"

[Printers]
Main=HP Deskjet 310, \\<server>\<printer>

[System]

This section defines miscellaneous hardware settings. The hardware that can be predefined in this manner is rather limited. Appropriate entries for this section may be found in the SetupLog.Txt of a successful Windows 95 installation.

Available settings are found in the Windows 95 Resource Kit, p1181.

Example:

(sets Monitor to NEC Multisync 3FGe, display to 800x600, 256 colors, disables APM)

[System]
Monitor="NEC Multisync 3Fge"
DisplChar=16,800,600
Power="No_APM"

PCCards (PCMCIA Adapters)

Normally, when a PCCard is detected on a workstation during setup, the protected–mode drivers are disabled, and, if available, the existing real–mode drivers are left in the Config.sys. This ensures that network connectivity will not be lost during setup if the PCCard adapter is being used for the setup. In this case, the user must activate the PCCard Wizard in Control Panel, which walks the user through removing the drivers from the Config.sys, and activates the protected–mode drivers.

This may not be desirable in all cases. It is possible to enable the protected–mode drivers during setup.

If the PCCard is not being used for installation, activation of protected–mode support is simplified. A single AddReg section is all that is required, whose function is the equivalent of putting a check in the appropriate box in Device Manager. The PCCard wizard will not be started.

Example:

(protected–mode card and Socket services are enabled)

[Install]
AddReg=EnablePCMCIA.AddReg
[EnablePCMCIA.addreg]
HKLM,SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUNONCE\SETUP,
"Enable PCMCIA",,"rundll sysdm.cpl,
EnablePCMCIA_RunDLL"

If network connectivity is established via the PCCard, this poses certain problems:

  • Existing drivers in the Config.sys will conflict with the protected–mode drivers.

  • Any existing NDIS2 or ODI drivers will be detected as such, and that adapter will be installed.

    When Windows 95 boots, the following sequence of events occurs:

    • Windows 95 detects the PCCard network adapter.

    • An attempt is made to load the drivers for the adapter.

    • Since the drivers are not located locally, it attempts to get them from the installation point.

    • The workstation does not have network connectivity, and cannot get the driver to establish network connectivity.

    • The user receives a dialog box prompting for the location of the driver.

To avoid these issues, three things must be done:

  • An UpdateCfgSys= line should be used to define a section containing DevDelete keys, to remove the real–mode drivers.

  • A netcards= line should be used to specify which PCCard adapter is being used, in conjunction with an IgnoreDetectedNetcards=1 entry in the [Network] section.

  • The drivers for the adapter should be copied to the workstation during setup via a CopyFiles= key in the [Install] section.

Example

(Installs a Xircom CE2, with full protected–mode support. Note: This card does not use drivers in the Config.sys, so no modification is needed))

[Install]
CopyFiles=Xircomfiles.Copy
AddReg=EnablePCMCIA.AddReg
[Xircomfiles.Copy]
CE2NDIS3.VXD
[DestinationDirs]
Xircomfiles.Copy = 11  ;
LDID for the \system folder
[SourceDisksNames]
;<Cab#> = <disk description>,
<cabinet filename>, ID (Unused, must be 0)
22="Win95",,0
[SourceDisksFiles]
CE2NDIS3.VXD=22,,1024
[EnablePCMCIA.addreg]
HKLM,SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUNONCE\SETUP,
"Enable PCMCIA",,
"rundll sysdm.cpl,EnablePCMCIA_RunDLL"

Other Options

User Profiles

Enabling user profiles in the script was discussed briefly earlier in this document. The example provided only enabled User Profiles, with users retaining their desktop settings. If the installation requires that users retain desktop icons and Network Neighborhood contents, as well as their own Start Menus and Program Groups, two additional addreg entries with their corresponding sections are required in the script, one for each checkbox.

Example:

(enables User Profiles with both checkboxes. If only one or neither checkbox is desired, remove the references on the AddReg= line, and remove the unneeded section(s).)

[Install]
AddReg=User.Profiles.Reg,User.Box.One,User.Box.Two
[User.Profiles.Reg]   ;;; Enables User Profiles
HKLM,"Network\Logon",UserProfiles,1,1
[User.Box.One]  ;;;
Entries for check box to Include desktop Icons and
 Network Neighborhood contents in user settings
;Desktop
HKCU,"%CurrentVersion%\%PrimaryRec%\Desktop",
CentralFile,,"Desktop"
HKCU,"%CurrentVersion%\%PrimaryRec%\Desktop",
Default,1,01,00,00,00
HKCU,"%CurrentVersion%\%PrimaryRec%\Desktop",
DefaultDir,,"%10%\Desktop"
HKCU,"%CurrentVersion%\%PrimaryRec%\Desktop",
LocalFile,,"Desktop"
HKCU,"%CurrentVersion%\%PrimaryRec%\Desktop",
MustBeRelative,1,01,00,00,00
HKCU,"%CurrentVersion%\%PrimaryRec%\Desktop",
Name,,"*.lnk,*.pif"
HKCU,"%CurrentVersion%\%PrimaryRec%\Desktop",
RegKey,,"%CurrentVersion%\Explorer\User Shell Folders"
HKCU,"%CurrentVersion%\%PrimaryRec%\Desktop",
RegValue,,"Desktop"
;NetHood
HKCU,"%CurrentVersion%\%PrimaryRec%\NetHood",
CentralFile,,"NetHood"
HKCU,"%CurrentVersion%\%PrimaryRec%\NetHood",
Default,1,01,00,00,00
HKCU,"%CurrentVersion%\%PrimaryRec%\NetHood",
DefaultDir,,"%10%\NetHood"
HKCU,"%CurrentVersion%\%PrimaryRec%\NetHood",
LocalFile,,"NetHood"
HKCU,"%CurrentVersion%\%PrimaryRec%\NetHood",
MustBeRelative,1,01,00,00,00
HKCU,"%CurrentVersion%\%PrimaryRec%\NetHood",
Name,,"*.lnk,*.pif"
HKCU,"%CurrentVersion%\%PrimaryRec%\NetHood",
RegKey,,"%CurrentVersion%\Explorer\User Shell Folders"
HKCU,"%CurrentVersion%\%PrimaryRec%\NetHood",
RegValue,,"NetHood"
;Recent
HKCU,"%CurrentVersion%\%PrimaryRec%\Recent",
CentralFile,,"Recent"
HKCU,"%CurrentVersion%\%PrimaryRec%\Recent",
Default,1,01,00,00,00
HKCU,"%CurrentVersion%\%PrimaryRec%\Recent",
DefaultDir,,"%10%\Recent"
HKCU,"%CurrentVersion%\%PrimaryRec%\Recent",
LocalFile,,"Recent"
HKCU,"%CurrentVersion%\%PrimaryRec%\Recent",
MustBeRelative,1,01,00,00,00
HKCU,"%CurrentVersion%\%PrimaryRec%\Recent",
Name,,"*.lnk,*.pif"
HKCU,"%CurrentVersion%\%PrimaryRec%\Recent",
RegKey,,"%CurrentVersion%\Explorer\User Shell Folders"
HKCU,"%CurrentVersion%\%PrimaryRec%\Recent",
RegValue,,"Recent"
[User.Box.Two]  ;;;
Entries for check box to Include Start Menu and Program groups in user settings
;Primary
HKCU,"%CurrentVersion%\%PrimaryRec%\Start Menu",
CentralFile,,"Start Menu"
HKCU,"%CurrentVersion%\%PrimaryRec%\Start Menu",
Default,1,01,00,00,00
HKCU,"%CurrentVersion%\%PrimaryRec%\Start Menu",
DefaultDir,,"%10%\Start Menu"
HKCU,"%CurrentVersion%\%PrimaryRec%\Start Menu",
LocalFile,,"Start Menu"
HKCU,"%CurrentVersion%\%PrimaryRec%\Start Menu",
MustBeRelative,1,01,00,00,00
HKCU,"%CurrentVersion%\%PrimaryRec%\Start Menu",
Name,,"*.lnk,*.pif"
HKCU,"%CurrentVersion%\%PrimaryRec%\Start Menu",
RegKey,,"%CurrentVersion%\Explorer\User Shell Folders"
HKCU,"%CurrentVersion%\%PrimaryRec%\Start Menu",
RegValue,,"Start Menu"
;Secondary
HKCU,"%CurrentVersion%\%SecondaryRec%\Programs",
CentralFile,,"Programs"
HKCU,"%CurrentVersion%\%SecondaryRec%\Programs",
Default,1,01,00,00,00
HKCU,"%CurrentVersion%\%SecondaryRec%\Programs",
DefaultDir,,"%10%\Start Menu\Programs"
HKCU,"%CurrentVersion%\%SecondaryRec%\Programs",
LocalFile,,"Start Menu\Programs"
HKCU,"%CurrentVersion%\%SecondaryRec%\Programs",
MustBeRelative,1,01,00,00,00
HKCU,"%CurrentVersion%\%SecondaryRec%\Programs",
Name,,"*.lnk,*.pif"
HKCU,"%CurrentVersion%\%SecondaryRec%\Programs",
ParentKey,,"Start Menu"
HKCU,"%CurrentVersion%\%SecondaryRec%\Programs",RegKey,,
"%CurrentVersion%\Explorer\User Shell Folders"
HKCU,"%CurrentVersion%\%SecondaryRec%\Programs",RegValue,,"
Programs"
; Startup folder
HKCU,"%CurrentVersion%\%SecondaryRec%\Startup",
CentralFile,,"Startup"
HKCU,"%CurrentVersion%\%SecondaryRec%\Startup",
Default,1,01,00,00,00
HKCU,"%CurrentVersion%\%SecondaryRec%\Startup",
DefaultDir,,"%10%\Start Menu\Programs\Startup"
HKCU,"%CurrentVersion%\%SecondaryRec%\Startup",
LocalFile,,"Start Menu\Programs\Startup"
HKCU,"%CurrentVersion%\%SecondaryRec%\Startup",
MustBeRelative,1,01,00,00,00
HKCU,"%CurrentVersion%\%SecondaryRec%\Startup",
Name,,"*.lnk,*.pif"
HKCU,"%CurrentVersion%\%SecondaryRec%\Startup",
ParentKey,,"Start Menu"
HKCU,"%CurrentVersion%\%SecondaryRec%\Startup",
RegKey,,"%CurrentVersion%\Explorer\User Shell Folders"
HKCU,"%CurrentVersion%\%SecondaryRec%\Startup",
RegValue,,"Startup"
[Strings]
CurrentVersion="Software\Microsoft\Windows\CurrentVersion"
PrimaryRec="ProfileReconciliation"
SecondaryRec="SecondaryProfileReconciliation"

Removing Items from the Desktop

There are some Windows 95 components that place icons on the Desktop, even though those components have not been selected for installation (MSN, Inbox). Activating these icons will begin the installation of those components. If any implementation of these components is not desired, then removing the icons will prevent them from accidentally being installed at a later date. Another desktop item that may not be wanted is the Recycle Bin. These may be removed in the script using appropriate DelReg entries for the Inbox and Recycle Bin, and an UpdateInis section for the MSN icon.

Example:

(Removes Inbox, Microsoft Network, and Recycle Bin icons from the Desktop)

[Install]
DelReg= Recycle.Remove,Inbox.Remove
UpdateInis=MSN.Remove
[Recycle.Remove]
HKLM,"Software\Microsoft\Windows\CurrentVersion\
Explorer\desktop\NamesSpace\{645FF040-5081-101B-9F08-00AA002F954E}",,,
[Inbox.Remove]
HKLM,"Software\Microsoft\Windows\CurrentVersion\
Explorer\desktop\NameSpace\{00020D76-0000-0000-C000-000000000046}",,,
[MSN.Remove]
setup.ini,desktop,, "Set Up The Microsoft Network",
MSNEXCH.EXE "Set Up The Microsoft Network"

Updated Components

Since the release of Windows 95, some new components have been made available. These components include the Service for NetWare Directory Services, a full 32–bit DLC protocol, and the Service Pack.

Service for NetWare Directory Services

This component is used on networks where access to a Novell NDS tree is required. It is best integrated to the installation point using the updated Inf Installer. Before integrating, a few steps must be followed.

  • Rename NetCli.Inf to NetCli.Stn.

  • Rename NetCli.Sbs to NetCli.Inf.

  • Make the following modifications to NetCli.Inf (formerly NetCli.Sbs):

[NWREDIR4.ndi.reg]
HKR,Ndi,DeviceID,,NWREDIR4
HKR,Ndi,NdiInstaller,,"nwnds.dll,NWNdsNdiProc"
HKR,Ndi\autoexec.bat\Order,KeyOrder,,"nwnds"
;HKR,Ndi\autoexec.bat\nwnds,Line,,
"call %11%\_nwnds.bat %11%"
HKR,Ndi\autoexec.bat\nwnds,Search,,"*startnet*"
HKR,Ndi\autoexec.bat\nwnds,Replace,,""
;HKR,Ndi\autoexec.bat\nwnds,Skip,,"*_nwnds*"
;HKR,Ndi\autoexec.bat\nwnds,Position,1,00,00,00,00

Note that three lines have been remarked.

  • Use Inf Installer to integrate the components to the installation point.

In the installation script, the Services= line should include NWREDIR4. Parameters for this service, as well as needed script entries for printing, may be found in NDSBatch.TXT, included with the service.

32–bit DLC Protocol

This component replaces the 16–bit DLC protocol that shipped with Windows 95. It should be integrated to the installation point using the updated Inf Installer. For best results, some modifications should be made to NetDLC32.Inf before integration:

[DLC.CopySystemFiles]
dlc.vxd
dlcapi.dll
trcdlc.exe
;dlc.vxd,,dlc~.v1
;dlcapi.dll,,dlcapi~.d1
;trcdlc.exe,,trcdlc~.e1
[DLC.CopyInfFile]
netdlc32.inf
;netdlc32.inf,,dlc~.i1
[DLC.CopyNdifile]
dlcndi.dll
;dlcndi.dll,,dlc~.d2

Note that three lines have been remarked, and three lines added. This will prevent errors when copying the files during setup.

Service Pack

The Windows 95 Service Pack contains many updated files. It is possible to include these files during setup. It is, however, necessary to be sure the proper Service Pack file is used — SP1NSF.EXE. This self–expanding archive contains all of the updated components, as well as an Inf for use in integration. The updated Inf Installer should be used for this. No modifications to this Inf are necessary.

Other files used by setup

The script is not the only file referenced during setup. There are other editable files that are directly involved with a proper installation of Windows 95. Editing these files should not be necessary, but knowledge of these files can help when debugging the script.

Custom.Inf

This file may be created by any of the tools referenced above. It is used by setup primarily to reference other INF files that contain information for non–default or integrated options, and to copy those files which may be needed during setup. It may be found in the root of the installation point.

Layout.Inf

The source name and location for all files that are copied to the workstation are referenced in these files (there are three, all identical). The format is similar to a [SourceDisksFiles] section. Whenever possible, editing this file should be avoided.

Setting up other applications

It is not within the scope of this document to give detailed instructions for installing other applications at the same time as Windows 95. However, some methods follow.

On a clean installation, the end–user will most likely require some applications to be installed. Installing these applications while installing Windows 95 can be a tremendous time–saver. However, implementation may be rather difficult. If the applications support their own script, adding a RunOnce registry entry pointing to the installation point for these applications, with all required parameters, may be an option. If the application requires little or no modification to system files or the registry, a CopyFiles section or sections may be an alternative.

In either case, it is recommended that the script for Windows 95 be created separately, omitting any references to the other application, until a satisfactory script exists. Then, focus may be set on the other applications' setup.

Rolling out Office 97

11

4/2/97

4/16/97

Prepare installation servers

5

4/2/97

4/8/97

Prepare users

1

4/2/97

4/2/97

Prepare client computers

1

4/9/97

4/9/97

Install Office

1

4/16/97

4/16/97