Deploying Windows 7 – Part 8: Understanding LTI Configuration Files

If you would like to read previous articles in this series, please go to:

Tip:
You can find more information about automating LTI deployment in the Windows 7 Resource Kit from Microsoft Press. I’m the lead author for this Resource Kit and I also maintain the Unofficial Support Site for the Windows 7 Resource Kit where you will find the latest updates and other useful information.

In the previous article of this series we learned how to modify the CustomSettings.ini and BootStrap.ini files of MDT 2010 in order to fully automate a Lite Touch Installation (LTI) of Windows 7 Enterprise. In this article we will dig deeper into modifying these two files to control the LTI process.

Understanding BootStrap.ini

BootStrap.ini is one of two configuration files used by MDT for controlling the deployment process (the other configuration file is CustomSettings.ini). Both of these files are located in the Control folder of the deployment share. This means that these files are specific to the deployment share. In other words, if you have more than one deployment share, each share will have its own configuration files for controlling deployments made using that share.

BootStrap.ini is used during the initial connection process when the destination computer, booted using the LiteTouch Windows PE image, connects to the deployment share to begin the installation process. This means that BootStrap.ini must contain any information needed to successfully establish a connection between the destination computer and the deployment share.

The BootStrap.ini file used in the previous article of this series looked like this:

[Settings]

Priority=Default

 

[Default]

DeployRoot=\\SEA-DC1\DeploymentShare$

UserID=Administrator

UserDomain=CONTOSO

UserPassword=Pa$$w0rd

KeyboardLocale=en-US

SkipBDDWelcome=YES

You can see that BootStrap.ini consists of two sections: Settings and Default. The Settings section is required and contains only one property called Priority. This property tells MDT the order in which to parse the remaining sections of the configuration file. Since there is only one remaining section (Default) that is the value assigned to Priority.

The Default section is where the work gets done. Specifically:

  • The DeployRoot property specifies the UNC path to the deployment share that will be used for the install. This is required information.
  • The UserID, UserDomain and UserPassword specify the credentials that the destination computer running Windows PE will used to connect to the deployment share. This is required information. In the sample BootStrap.ini file above, the domain Administrator account is used. For security reasons, in a real-world environment you would not use this account. Instead, you should create a new user account used solely for deployment purposes (no one should log on to a computer using this account). For example, you could create a domain account named MDT for this purpose. Because of the NTFS and shared folder permissions assigned to the deployment share, the MDT account only needs to be a member of the Domain Users group—it doesn’t need to be a member of the Domain Admins group. Note that the password for this account is stored in unencrypted form in the BootStrap.ini file.
  • The KeyboardLocale property specifies the locale for the keyboard attached to the destination computer. The keyboard locale can be specified either in text (for example, en-us) or hexadecimal (for example, 0409:00004009) form. You can specify multiple values by separating them with semicolons. If this property is omitted from BootStrap.ini, the Windows Deployment Wizard will use the keyboard locale configured in the image being deployed.
  • SkipBDDWelcome = YES prevents the opening screen (“Welcome Windows Deployment”) of the Windows Deployment Wizard from being displayed. This is required if you want to fully automate LTI.



The above six properties are the only properties that can be included in BootStrap.ini.

Remember—if you change anything in your BootStrap.ini file, you must update your deployment share in order to regenerate the LiteTouch Windows PE images contained in the Boot folder of the share.

Understanding CustomSettings.ini

CustomSettings.ini is the other configuration file and is also specific to each deployment share. Once BootStrap.ini has done its work, CustomSettings.ini takes over and controls the rest of the deployment process. The CustomSettings.ini file used in the previous article of this series looked like this:

[Settings]

Priority=Default

Properties=MyCustomProperty

 

[Default]

OSInstall=YES

SkipAdminPassword=YES

SkipApplications=YES

SkipAppsOnUpgrade=YES

SkipBDDWelcome=YES

SkipBitLocker=YES

SkipCapture=YES

SkipComputerName=YES

SkipComputerBackup=YES

SkipDeploymentType=YES

DeploymentType=NEWCOMPUTER

SkipDomainMembership=YES

JoinDomain=CONTOSO

DomainAdmin=Administrator

DomainAdminDomain=CONTOSO

DomainAdminPassword=Pa$$w0rd

SkipFinalSummary=YES

SkipLocaleSelection=YES

KeyboardLocale=en-US

UserLocale=en-US

UILanguage=en-US

SkipPackageDisplay=YES

SkipProductKey=YES

SkipSummary=YES

SkipTaskSequence=YES

TaskSequenceID=WIN7_001

SkipTimeZone=YES

TimeZoneName=Central Standard Time

SkipUserData=Yes

The above CustomSettings.ini file contains the same two sections (Settings and Default) that BootStrap.ini contains. CustomSettings.ini can contain additional sections however. For example, you can include additional sections for deploying Windows to specific makes and models of computers or specific locations on your network. We’ll examine this in a later article of this series.

The Default section in the above example contains a number of different property/value pairs. This is only a small subset however of the almost 300 different properties you can specify to control various aspects of the deployment process. There are essentially two types of properties used in the example above: “skip” properties and other properties.

The “skip” properties are those that determine whether a particular page of the Windows Deployment Wizard is displayed or not during installation on the destination computer. For example, if SkipComputerName=YES is specified, the Configure The Computer Name page of the wizard is not displayed during installation; if SkipComputerName=NO, the page is displayed and a user sitting at the destination computer will have to respond in order to proceed with the installation. If you want to fully automate an installation, you need to specify YES for all possible skip properties, and the example above does this. In other words, the full list of skip properties is as follows:

SkipAdminPassword=YES

SkipApplications=YES

SkipAppsOnUpgrade=YES

SkipBDDWelcome=YES

SkipBitLocker=YES

SkipCapture=YES

SkipComputerName=YES

SkipComputerBackup=YES

SkipDeploymentType=YES

SkipDomainMembership=YES

SkipFinalSummary=YES

SkipLocaleSelection=YES

SkipPackageDisplay=YES

SkipProductKey=YES

SkipSummary=YES

SkipTaskSequence=YES

SkipTimeZone=YES

SkipUserData=Yes

The advantage of including all of these lines in your CustomSettings.ini file is that you can change any of them to NO if you want the user involved at some point during deployment. For example, if you want the user to choose whether or not to enable BitLocker Drive Encryption on the computer, all you need to do is change the line SkipBitLocker=YES to SkipBitLocker=NO in your CustomSettings.ini file and the Specify The BitLocker Configuration page of the Windows Deployment Wizard will be displayed during installation.

If you are only interested in fully automating LTI however, you can replace all of the above skip properties with the following two lines lines:

SkipWizard=YES

SkipFinalSummary=YES

The first line causes the entire Windows Deployment Wizard to be skipped (almost). The second line causes the final Operating System Deployment Completed Successfully line to be skipped so that the user doesn’t have to click OK to end the install.

In other words, our previous and somewhat long CustomSettings.ini file is now reduced to this:

[Settings]

Priority=Default

Properties=MyCustomProperty

 

[Default]

OSInstall=YES

SkipWizard=YES

SkipFinalSummary=YES

DeploymentType=NEWCOMPUTER

JoinDomain=CONTOSO

DomainAdmin=Administrator

DomainAdminDomain=CONTOSO

DomainAdminPassword=Pa$$w0rd

KeyboardLocale=en-US

UserLocale=en-US

UILanguage=en-US

TaskSequenceID=WIN7_001

TimeZoneName=Central Standard Time

What about the remaining properties in the Default section of this shortened CustomSettings.ini file? These “other” properties provide the information that the user would have had to manually enter if the pages of the Windows Deployment Wizard were displayed during installation. Specifically:

OSInstall=YES

This line indicates that deployment is authorized to proceed. If you omit this line, deployment will proceed anyways by default.

DeploymentType=NEWCOMPUTER

This line indicates the destination computer is a new computer that has never been a member of the network. Other possible values for this property are REFRESH, REPLACE and UPGRADE.

JoinDomain=CONTOSO

DomainAdmin=Administrator

DomainAdminDomain=CONTOSO

DomainAdminPassword=Pa$$w0rd

These lines indicate that the computer will be joined to the CONTOSO domain during installation. Note that this example uses the domain Administrator account for this purpose, but you can use a member of the Domain Users account for this purpose such as the MDT user account created earlier for BootStrap.ini. 

KeyboardLocale=en-US

UserLocale=en-US

UILanguage=en-US

These lines indicate the keyboard locale and the user locale and language settings. I think the first line is optional since it is also specified in BootStrap.ini, but if you don’t include the other two lines the Locale Selection page of the Windows Deployment Wizard will be displayed during installation.

TaskSequenceID=WIN7_001

This line indentifies the task sequence that will be used for the installation.

TimeZoneName=Central Standard Time

This line indicates the time zone to be configured on the computer.

Are these the only properties you need to include in CustomSettings.ini to fully automate LTI? It depends, if you are not installing any packages or applications as part of your installation, and if you are not migrating user state information during the installation, and if you are not configuring BitLocker on the destination computer, then the above shortened CustomSettings.ini file is probably all you need.

For example, what if you want to install a language pack as part of your installation? To do this, you must first add the language pack to the Packages folder of your deployment share. Then you examine the Packages.xml file in the Control folder of your deployment share to determine the GUID associated with the language pack. Finally, you include the line LanguagePacks001=value in your CustomSettings.ini file where value is the GUID of the language pack. We’ll walk through this process and other customizations of automated LTI in future articles in this series.

One final question: How did I know that I needed to include the line LanguagePacks001=value in my CustomSettings.ini file if I wanted to include a language pack in my install? Simple—read the manual! You should familiarize yourself with the following topics in the Microsoft Deployment Toolkit 2010 Documentation Library, a Help (.chm) file installed as part of MDT 2010:

  • Providing Properties for Skipped Windows Deployment Wizard Pages – This topic lists the properties you need to include in CustomSettings.ini when you skip various pages of the Windows Deployment Wizard.
  • Property Definition – This topic lists all the various properties you can include in CustomSettings.ini and what they are used for.

Both of these topics can be found in the Help file under Microsoft Deployment Toolkit Reference\Properties and we’ll be referring to the information they contain frequently in future articles of this series.

If you would like to read previous articles in this series, please go to:

About The Author

Leave a Comment

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Scroll to Top