Back docs > winnt > unattended installs
     
   
   

 

The following is a scenario you are faced with:

You have a number of desktop PCs with voodoo3 graphics cards and IBM 10/100 Etherjet network cards. You want to do an unattended install of Windows NT 4 Workstation on the PCs from a server installation point. However, since these two cards are fairly new, the drivers for them will not be found on the NT CD. How do you get WinNT to install these cards?


1.
Create a share on your server called Installs. Assign the appropriate NTFS and Share permissions for the users who will be accessing it (Read and Execute should be sufficient).

2. Under the Installs directory create a "Ntwrkst" directory.

3. Copy the I386 directory from the NT Workstation CD to the "Ntwrkst" directory.
You can remove the INETSRV subdirectory from within the I386 directory. It contains the optional Personal Web Server install files that are not needed in many environments.

4. Under the I386 directory create a directory called $OEM$

5. Under the $OEM$ directory create a "c" directory, a "display" directory and
a "net" directory

6. Under the "net" directory create subdirectories for the network cards
you will be using. For example create an IBM subdirectory for the drivers
for an IBM card. Create a 3COM directory for 3COM network card drivers.

7. Under the "c" directory create any files or folders you want copied
to the c: drive. These files and folders will stay on the c: drive and be
available after the installation.

8. In your display directory copy the files for the graphics card. Theoretically
you only need an .inf file, a .sys file, and a .dll file for graphics cards under NT.
You can try this, or copy all the driver files in case they are needed during install.

9. Copy the driver files for your network card(s) to the appropriate subdirectory(s)
under \Net. Your directory structure will look similar to this:
You can see that two directories, "drivers" and "IE55" will be created under C:\
of the PC during the install.

10. Use Setupmgr.exe to create a basic unattend.txt file. This file
will be modified later.


Unattend.txt File


Display Adapter in unattend.txt - Your basic unattend.txt file you created with setupmgr.exe
will have a [Display] section in it. In this example, the 3dfx Voodoo3 2000 PCI card is being used.

The inffile parameter requires the name of the .inf file that you moved to \i386\$oem$\display. The infoption parameter requires a common name for the video card. You can decipher the .inf file to find your video card's description, but you have an easier option.

Place your graphics card .inf, .sys, and .dll driver files on a disk and take the disk to a working NT machine. Open Control Panel, Display, and select the Settings tab. Click Display Type. The Display Type dialog box will appear; it tells you which drivers are currently loaded for your video card. Click Change, Have Disk. Insert the disk and click OK. The Change Display dialog box will appear. The video card's descriptive name will appear in the Display field. Place the descriptive name in the infoption parameter.

[Display]
ConfigureAtLogon = 0
inffile = "voodoo3.inf"
infoption = "3dfx Voodoo3"
InstallDriver = 1
BitsPerPel = 16
XResolution = 800
YResolution = 600
VRefresh = 75
AutoConfirm = 1

You should be able to use this procedure for just about any graphics card.


Network Card in unattend.txt
- In this unattend.txt file the purpose is to
install an IBM 10/100 Etherjet card.

First, determine the internal product name of the NIC. For example, this IBM card's internal product name is IBMFE.
To find the NIC's internal product name, look on a WinNT PC that uses the NIC in the Registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\1.
The value for the ProductName entry is the NIC's internal product name.
Then, under [Network] create the line:
InstallAdapters = AdaptersList
Next, create a new section called [AdaptersList]
Under this section the format is:
NIC'sInternalName = adapterparameters, path to driver files

adapterparamers would be the networkcard name plus
"parameter". For the IBMFE it would be IBMFEParameters
You also need to create a section called [IBMFEParameters]
this section would have the I/O address, IRQ and what not,
but this usually isn't necessary with PCI cards. So don't
put anything under it.

You end up with the following:

[Network]
InstallAdapters = AdaptersList
InstallProtocols = ProtocolsSection
JoinDomain = MYDOMAIN

[AdaptersList]
IBMFE = IBMFEParameters, ..\$OEM$\Net\IBMFE

[ProtocolsSection]
TC = TCParamSection

[IBMFEParameters]

Note: Quite often NIC manufacturers will provide instructions on how to add their card(s) to an unattended installation file. Call them, check their web site, or the driver CD for instructions.

After completion of the GUI portion of the core OS, the installation checks for the existence of the CMDLINES.TXT file. If present, the install processes the commands contained within.


Explanation of the directories for an Unattended install

Note: Not all directories need to be used. Just use the directories
appropriate for your install.

$OEM$ directory - This is the directory which will house the CMDLINES.TXT (which is responsible for defining additional customization during the installation), REGEDIT.EXE and related .REG files, SYSDIFF.EXE and related .IMG files, and the sub-directories $$, C, NET, OEMFILES and TEXTMODE.

$$ - This directory should contain any files that you wish to copy to the %SYSTEMROOT% or it's sub-directories within your new install. It can be especially useful if you wish to copy files into the \WINNT directory (or whatever you chose to call it). Files can be copied further into the directory tree by using $OEM$\$$\SYSTEM32, which will be installed into %SYSTEMROOT%\ SYSTEM32, and so on.

C, or other Drive Letter - files and directories stored here will be copied to the drive letter bearing the same name. This file can also contain the $$RENAME.TXT file, which will convert files using the 8.3 naming convention to their original long filenames (see Special Note below). C also contains the subdirectory BATCH, which houses specialized .BAT or .CMD files that are used to kick off silent or scripted installations of applications like MS Office or Netscape or reset file permissions (all of which will be discussed in Section III).

NET - Should only contain subdirectories which house special network-related files (NIC drivers, Protocols, etc.) that are used during the networking section of the automated setup. Network drivers can also be copied over to the target system by using the TEXTMODE subdirectory as well.

TEXTMODE - This subdirectory can contain files that you would like to have copied over during the text mode portion on the installation process. Video drivers can also be copied over to the target system by using this subdirectory.

DISPLAY - This subdirectory will house the files for the display adapter.


Sample Unattend.txt file

[Unattended]
OemPreinstall = yes
OemSkipEULA = yes
NoWaitAfterTextMode = 1
NoWaitAfterGUIMode = 1
FileSystem = ConvertNTFS
ExtendOEMPartition = 0
ConfirmHardware = no
NtUpgrade = no
Win31Upgrade = no
TargetPath = \Winnt
OverwriteOemFilesOnUpgrade = no

[UserData]
FullName = "Installer"
OrgName = "Widgets"
ComputerName = NEWNT1
ProductId = "xxxxx-oem-xxxxxxx-xxxxx"

[GuiUnattended]
OEMSkipWelcome = 1
OEMBlankAdminPassword = 1
TimeZone = "(GMT-05:00) Eastern Time (US & Canada)"

[Network]
InstallAdapters = AdaptersList
InstallProtocols = ProtocolsSection
JoinDomain = MYDOMAIN

[AdaptersList]
IBMFE = IBMFEParameters, ..\$OEM$\Net\IBMFE

[ProtocolsSection]
TC = TCParamSection

[IBMFEParameters]

[TCParamSection]
DHCP = no
IPAddress = 10.90.10.44
Subnet = 255.255.255.0
Gateway = 10.90.10.1
DNSServer = 205.152.144.252

[Display]
ConfigureAtLogon = 0
inffile = "voodoo3.inf"
infoption = "3dfx Voodoo3"
InstallDriver = 1
BitsPerPel = 16
XResolution = 800
YResolution = 600
VRefresh = 75
AutoConfirm = 1


Explanation of some not so obvious keys in unattend.txt

OemPreinstall = yes
Determines whether a special subdirectory, \$OEM$, will be copied and certain sections will used during setup.

NoWaitAfterTextMode = 1
NoWaitAfterGUIMode = 1
These two lines will remove two instances in which NT Setup would otherwise wait for you to press a key before continuing. Requires OemPreinstall = yes.

ConfigureAtLogon = 0
This key is used to specify when the graphics devices are configured during setup or after the first logon by an end user. 0 implies configure during setup and 1 indicates that the device should be configured during the first logon by the user.

AutoConfirm = 1
This key indicates whether the graphics device should be configured using pre-specified display settings or not.
0 implies do not use the pre-specified settings and 1 indicates that the pre-defined settings should be used. AutoConfirm = 1 requires that all of the necessary parameters have been pre-specified in the UNATTEND.TXT file.

InstallDriver = 1
This key specifies whether a third-party driver is being installed or not. If value is 0, the InfFile and InfOption keys are skipped.

    Top

b/johnson:01