This page outlines the possibilities to configure ANI for all the special needs of your environment.
The following three chapters explain how to configure the
Bootmedia,
Microsoft's Unattended Setup and
the Post-Windows Installation.
'new
' (default), 'update
', 'nonet
'.
boot: new [ENTER]
'2
' (default), '3
'.
NOTE: If a runlevel is passed at the boot prompt you have to pass a installation mode too!
boot: update 3 [ENTER]
ani.cf0
, ani.cf1
and ani.cf2
The configuration files ani.cf0
, ani.cf1
and ani.cf2
are located on the boot media in the directory /config
.
The installation mode defines which of these files is the valid configuration file:
ConfigFile: Installation mode: ani.cf0 new ani.cf1 update ani.cf2 nonetApart from changeing the
PWFLAGS
, edit these files only for debug purposes.
Because the Linux-Bootdisk uses the FAT-format as its file system, its files can also be changed under Windows.
PWFLAGS
In ani.cf0
, ani.cf1
and ani.cf2
you can find the entry PWFLAGS=0
(default). PWFLAGS
manages currently two features:
nomail
flag, first bit)joinoff
flag, second bit)Flag: Value: mail and join 0 nomail and join 1 mail and joinoff 2 nomail and joinoff 3Example:
PWFLAGS=1
PWFLAGS=3
unattended.tpl
The settings for the MS Unattended Setup
have to be made in the file ~/Ai386/ani/unattend.tpl
.
You can find a guide to Unattended Setup on the website of Microsoft for Windows 2000 or Windows XP.
Most of the settings in unattend.tpl
are adapted for ANI and should not be changed.
That concerns especially all variables enclosed by '$'-characters, because they will be replaced dynamically.
The following listed settings should be changed to fit your region or the concerned OS.
[Unattended]
and [Shell]
The following settings only affects Windows XP. These settings do not cause problems with Windows 2000 so the same unattend.(txt|tpl) can be used for both Operating Systems.
---snip--- [Unattended] ... ;XP: Needed for XP - see <http://support.microsoft.com/?kbid=294801>. UnattendSwitch=Yes ... ---snip---
---snip--- [Shell] ; Use classic start menu DefaultStartPanelOff=Yes ; Use classic visual style DefaultThemesOff=Yes ---snip---
[GuiUnattended]
In this section you should change the value for the key TimeZone
. The presetting is 110
, which is the numerical value for the TimeZone (GMZ +01:00) Amsterdam, Berlin, Bern...
.
To look up a numeric value for your timezone, see the Unattend.doc
file on your Windows-CD
or directly here.
---snip--- [GuiUnattended] ... TimeZone=110 ... ---snip---
[RegionalSettings]
This section defines language support and other international settings for the MS Unattended Setup.
A complete description of the section can be found at Microsoft.
A complete reference about keyboard-layouts, languages, locales, codepages etc. can be found here.
Following presettings are made:
---snip--- [RegionalSettings] LanguageGroup=1 ; Language=00000409 Language=00000807 ---snip---
LanguageGroup
has the value for Western Europe and United States and Language
has the code for German_Swiss
.
The commented line is an example for the language code English_United_States
.
By Post-Windows installation we mean the part of the installation, which happens under the freshly installed Windows.
WINSET.INI
resp. WINSET.TPL
(main configuration file)
The main configuration file 'winset.tpl
' is located in the directory ~/Ai386/ani
.
NOTE: All presettings in 'winset.tpl
' are made for english/american OSs. If you are using another language, you should edit all affected paths (e.g. 'Program Files'(englisch) -> 'Programme'(german)).
Some settings are only valid for Windows XP. They can be found by the comment ';XP:
' in the preceding line. These new settings did not cause problems with Windows 2000.
Following configurations may be done:
[versioninfo]
The keys 'version
', 'release
', 'insttype
' and 'releasedate
' must not be removed because their values are evaluated for mail notification and logging.
You can change their values to whatever you want.
[mailnotification]
Initialization values for mail notification. The mail notification informs about the installatioin process.
The present keys will be evaluated and therefore must not be changed or deleted.
The values should be changed to fit the own environment.
Make following specifications:
[rmvdir]
The key are arbitrarily. As value you may pass every directories you want to delete during the unattended setup.
You have to pass the absolute path of the directories (e.g. '1=C:\Program Files\Outlook Express
').
WARNING: Directories will be deleted recursive!
[mkdir]
All specified directories will be created. Good for creating directories with spaces etc. which are not in the DOS 8.3 format.
You may also make directories by creating them in the installation environment under the directory tree ~/Ai386/i386/$OEM$/$$
(system root, normaly C:\WINNT\
) resp. ~/Ai386/i386/$OEM$/$1
(system drive, normally C:\
). But there you can only specify names limited to DOS 8.3 format.
[rmfile]
Specify all files, which should be deleted during the unattended setup. You have to pass the absolute path for every file (e.g. '1=C:\Program Files\Common Files\System\directdb.dll
').
[dynvar]
The section [dynvar]
must not be edited.
The values will be substituted dynamically.
The variable $CLTYPE$
defines a client class and will be evaluated for the software package installation. See the field Clienttype
in the following screenshot in Process and Use.
The variable $COMPNAME$
will be substituted by the machine name during the installation.
[options]
The section [options]
must not be edited.
The variables will be substituted dynamically by the corresponding variables in the configuration file ani.cfx
during the installation.
[attrib]
Sets attributes on files or directories.
Example:
---snip--- [attrib] C:\winnt\system32\cmd.exe=HIDDEN C:\winnt\system32\grouppolicy\machine\scripts\scripts.ini=HIDDEN C:\install=HIDDEN C:\PNP=HIDDEN C:\Programme=HIDDEN ---snip---Apart from
HIDDEN
, the following attributes can be used: ARCHIVE
, HIDDEN
, NORMAL
, OFFLINE
, READONLY
, SYSTEM
and TEMPORARY
. Use Google to search for their meaning.
[DelRegKey <unique name>]
These sections define a section group of registry keys, which should be deleted.
For every registry key you have to define a own section starting with 'DelRegKey
' and a space.
Example:
---snip--- [DelRegKey outlook_ex_1] kroot=HKEY_LOCAL_MACHINE kpath=Software\Microsoft\Outlook Express [DelRegKey outlook_ex_2] kroot=HKEY_LOCAL_MACHINE kpath=Software\Microsoft\WAB ---snip---WARNING: Keys will be deleted recursively.
[DelRegVal <unique name>]
These sections define a section group of registry values, which should be deleted. Both, value name and value will be deleted.
For every registry value you have to define a own section starting with 'DelRegVal
' and a space.
Example:
---snip--- [DelRegVal v1] kroot=HKEY_LOCAL_MACHINE kpath=Software\Microsoft\Outlook Express vname=AValueName ---snip---
[AddRegKey <unique name>]
These sections define a section group of registry keys and/or values, which should be created.
For every registry value you have to define a own section starting with 'AddRegKey
' and a space.
Example:
---snip--- [AddRegKey Startupscript] kroot=HKEY_LOCAL_MACHINE kpath=SOFTWARE\Policies\Microsoft\Windows\System\Scripts vname=Startup value=C:\WINNT\System32\GroupPolicy\Machine\Scripts vtype=REG_SZ ---snip---You may omit the values for the keys '
vname
', 'value
' and 'vtype
', if you want to create an empty key.[addlocalgroups]
Creates user defined local user groups.
Syntax: <local grouop name>=<group description>
Example:
---snip--- Floppy-Users=Users with acces to floppy ---snip---
[fillgroup_lcl]
Assigns local users or local user groups to existing local groups.
Syntax: <local group>=<user1 resp. group1>,<user2 resp. group2>,...
If you want to add domain groups, configure the section [fillgroup_glb]
.
Example:
---snip--- [fillgroup_lcl] ;adds loacl user 'anithing' to the local administrators group: Administrators=anithing ;adds local User 'anithing' to the local group 'Floppy-Users': Floppy-Users=anithing ;... ---snip---
[fillgroup_glb]
Assigns domain users or domain user groups to existing local groups.
Syntax: <local group>=<domain name>\<user1> resp. <domain name>\<group1>,<domain name>\<user2> resp. <domain name>\<group2>,...
---snip--- [fillgroup_glb] ;adds domain group 'anidomain\CDROM-User_DLG' to local group 'CDROM-Users': CDROM-Users=anidomain\CDROM-User-DLG ;adds domain user 'anidomain\anithing' and domain group 'anidomain\Floppy-User-DLG' to local group 'Floppy-Users': Floppy-Users=anidomain\anithing,anidomain\Floppy-User-DLG ;... ---snip---NOTE: You can add domain groups and users only if the machine belongs to the appropriate domain or if a valid trust exists.
SWPACK.INI
(configuration file for installing additional software)
The configuration file SWPACK.INI
is located in the directory ~/APACK
and controls the installation of software packages, depending on the client class.
Currently there are 26 client classes (A..Z) predefined, which may be used in the section [CLTYPE]
as 'ATYPE
', 'BTYPE
',...
Have a look in CONTENT
and SWPACK.INI
for further details and at the field Clienttype
in the following screenshot in Process and Use where the user enters the client class.
You have the possibility to set the local administrators password in the file 'unattend.txt
'. There the password is written as 'plain text' and everybody may read it. If someone interrupts the uattended setup, he is able to get the local administrators password.
With ANI you have the possibility to set the password with the tool 'prenet.exe
'. In addition 'prenet.exe
' renames the local administrator and creates a dummy-user named 'administrator'. prenet.exe
is coded in C. It's difficult for a normal user to get the password because prenet.exe
is a binary.
The source code for prenet.exe is located in the directory ~/SOURCES/prenet
. The administrators name and pasword are defined in ~/SOURCES/prenet/prenet.h
.
Following name and password are predefined: (line 12..15 in prenet.h)
---snip--- #define _OLD_ADMIN TEXT("administrator") #define _NEW_ADMIN TEXT("anithing") // or whatever you want #define _NEW_PASSWD TEXT("ani++") // or whatever you want #define _DUMMY_PW TEXT("ANIgoes") // password for deactivated old account 'administrator' ---snip---
prenet.exe
was compiled with Microsoft Visual C++ .NET 69586-270-0000007-18846.