Partilhar via


Creating Fully Unattended (“Hands-Free”) Setup and Deployment of Windows Embedded Standard 2011

PLEASE NOTE: The settings described in this article apply to Windows Embedded Standard 2011 CTP. The required settings may change slightly for the release to manufacturing (RTM) version of Windows Embedded Standard 2011, but for the most part the approach outlined in this article should apply to the RTM release.

One very common scenario for users of Windows Embedded Standard 2011 is to develop a completely unattended, or “hands-free”, setup. In this scenario, a Windows Embedded Standard 2011 image can be created on a target device without a single human interaction once the Setup program has been properly started (and even this can be automated with the help of a well-crafted autorun volume). For this article, a fully unattended setup will result in the target device auto logging in and reaching the desktop.

In order to help you achieve this scenario, I will touch on the different components and stages of the setup process. From a very high level, an unattended setup of Windows Embedded Standard 2011 is achieved by providing answers to every question that the setup process has. If Setup has answers to all of its different questions, then there will be no need for a UI to ask a human what to do. These answers will be provided to Setup in the form of an unattend (a.k.a. “answer”) file. This unattend file is an XML file either created by the Windows Embedded Standard 2011 Image Configuration Editor (ICE) or by hand for those who prefer.

The image below illustrates the setup process from first launching Setup, to the logon screen, from left-to-right.

clip_image001

One important thing to consider about Windows Embedded Standard 2011, Windows 7 and Vista, is that the setup process takes place in multiple configuration passes. There are seven distinct setup passes:

  1. WindowsPE
  2. Offline Servicing
  3. Generalize
  4. Specialize
  5. Audit System
  6. Audit User
  7. Windows Out of Box Experience (OOBE) System

Each of these phases has its own role, and different Settings Management Infrastructure (SMI) settings can be applied in one or more of these phases (for more information, see the following KB article: How Configuration Passes Work). From a high-level however, I like to think of these phases as falling into two categories: phases that take place with the Windows Embedded Standard 2011 image running, and phases that take place when the Windows Embedded Standard 2011 image is not running. These two phases are referred to as online and offline respectively.

The figure above shows how the setup process is broken down into the offline and online stages. When you run Setup, there are several questions that it is going to ask: what language to use, what features to install, where to install them, etc. Once the Setup process has completed, your device will restart, the image will switch to the online oobeSystem phase, and the OOBE will start. OOBE looks and feels like Setup, but the following should be considered:

  1. OOBE is not part of IBW (Setup)
  2. OOBE runs online, during the oobeSystem phase
  3. OOBE will always run after Setup or when an image is deployed

So, in order to achieve a completely unattended setup of Windows Embedded Standard 2011, we need to provide all the answers that both IBW (Setup) and OOBE need. If this is achieved, then we can simply launch Setup and have the image setup progress all the way through to the OOBE, and finally to the desktop.

Below is a list of all the settings that need to be used. These settings are organized into two categories: IBW (Setup) and OOBE settings. Users familiar with the SkipMachineOOBE setting may want to use this setting to bypass the OOBE UI instead of providing all the OOBE SMI settings. This setting is deprecated and only included for testing. It is advised that an answer file that contains all the necessary OOBE SMI settings be used for unattended deployment. Also consider that using SkipMachineOOBE will lead to images that have not had their EULA accepted, and will not have any user accounts created, potentially leaving the final image in an unusable state.

Unattended Setup SMI Settings

Below is a list of all the SMI settings required to achieve unattended setup of Windows Embedded Standard 2011 CTP. Please note that these settings may change for the RTM release of Windows Embedded Standard 2011. These settings have been divided into three sections:

  1. Image Build Wizard Unattend Settings
  2. OOBE SMI Unattend Settings
  3. Auto Logon Unattend Settings

Image Builder Wizard Language and Locale Settings

Setting

ConfigURATION Pass

Description

value

International-Core-WinPE | InputLocale

P1 WindowsPE

Specifies the default language to use on the installed Windows operating system.

“en-US”

International-Core-WinPE | SetupUILanguage | UILanguage

P1 WindowsPE

Specifies the default language to use during Windows Setup. During installation, Windows Setup displays installation progress in the selected language.

“en-US”

International-Core-WinPE | SetupUILanguage | WillShowUI

P1 WindowsPE

 

Never

International-Core-WinPE | UILanguage

P1 WindowsPE

Indicates the language of the user interface to use during Windows Setup or Windows Deployment Services.

“en-US”

Image Builder Wizard Dialog Boxes

Setting

Configuration Pass

Description

value

Setup| FeaturePackageSelection | ShowUI

P1 WindowsPE

Specifies whether to show the IBW feature package selection page or not.

False

Setup| Target Analysis Mapping | RunTargetAnalysisMapping

P1 WindowsPE

Specifies whether to run TAP.exe and map the .pmq file to driver packages or not.

True

Setup| Target Analysis Mapping | ShowImportDriverUI

P1 WindowsPE

Specifies whether to show the IBW import driver UI page or not.

False

Setup| Target Analysis Mapping | WillShowUI

P1 WindowsPE

Specifies whether to show the IBW Target Analysis Mapping pages or not.

Never

Setup | UserData | AcceptEULA

P1 WindowsPE

Specifies whether to accept Microsoft License Software Terms during IBW.

True

Image Installation

You must specify where you intend to install Windows. You can either specify the exact disk ID and partition ID, or you can install Windows to the first available partition.

Setting

Config. Pass

Description

Possible value

Setup | ImageInstall | OSImage | InstallToAvailablePartition

P1 WindowsPE

Specifies installing Windows on the first available partition.

true

-or-

Setting

Configuration Pass

Description

Possible value

Setup | ImageInstall | OSImage | InstallTo | DiskID

P1 WindowsPE

Specifies the disk where you want to install Windows Embedded Standard 2011.

0

Setup | ImageInstall | OSImage | InstallTo | PartitionID

P1 WindowsPE

Specifies the partition where you want to install Windows Embedded Standard 2011.

1

OOBE SMI Settings

Providing all of the settings listed below in your answer file will result In the OOBE UI being suppressed during setup/deployment. Note that if you are trying to achieve unattended OOBE on an image that you intend to capture and deploy, you will need to provide the path to your answer file to sysprep when you generalize your image before capturing for deployment. For more information, see the article How Sysprep Works, and the section “Using Answer Files with Sysprep”.

Setting

ConfigURATION Pass

Description

Possible value

International-Core | InputLocale

P7 OOBE System

Specifies the default input locale of the Windows installation.

“en-US”

International-Core | SystemLocale

P7 OOBE System

Specifies the default system locale of the Windows installation.

“en-US”

International-Core | UILanguage

P7 OOBE System

Specifies the default UI language of the Windows installation.

“en-US”

International-Core | UserLocale

P7 OOBE System

Specifies the default user locale of the Windows installation.

“en-US”

Setup | UserData | AcceptEULA

P1 WindowsPE

Specifies acceptance of the EULA.

True

Shell-Setup | ComputerName

P4 Specialize

Specifies the name of the computer to apply to the Windows installation.

“*”

Shell-Setup | ProductKey

P4 Specialize

Specifies the product key to use for activation.

A valid product key (or test key) in the 5x5 format.

Product_key is a 29-character string, for example: AAAAA-BBBBB-CCCCC-DDDDD-EEEEE

For Windows Embedded Standard 2011 CTP Evaluation purposes, use of an “all-zeros” product key will be accepted: 00000-00000-00000-00000-00000

Shell-Setup | TimeZone

P7 OOBE System

Specifies the time zone of the computer.

“Pacific Standard Time”

Shell-Setup | OOBE | HideEULAPage

P7 OOBE System

Hides the Microsoft Software License Terms page.

True

Shell-Setup | OOBE | ProtectYourPC

P7 OOBE System

Specifies the protection level of the Windows installation.

3

Shell-Setup | OOBE | NetworkLocation

P7 OOBE System

Specifies the location of the computer.

“Work”

Shell-Setup | OOBE | HideWirelessSetupInOOBE

P7 OOBE System

Hides the Wireless Network selection page.

True

Shell-Setup | UserAccounts | LocalAccounts

P7 OOBE System

Specifies the user accounts to create on the Windows installation.

Right-click to insert a new local account

Shell-Setup | UserAccounts | LocalAccounts | LocalAccount | Name

P7 OOBE System

The name of the account to create.

Any valid account name that is not already present in your image, for example:

“User1”

Shell-Setup | UserAccounts | LocalAccounts | LocalAccount |DisplayName

P7 OOBE System

The display name for a local account.

Any valid user name that is not already in your image, for example:

“User One”

Shell-Setup | UserAccounts | LocalAccounts | LocalAccount | Password | Value

P7 OOBE System

The password of the account created.

Any valid password

Shell-Setup | UserAccounts | AdministratorPassword |

Value

P7 OOBE System

Configures the Administrator account password.

Any password string

Auto Logon Settings

Providing the settings below will result in your final image automatically logging on when booted. The account referenced in this section must match the account created in the Shell-Setup | UserAccounts | LocalAccounts section.

Setting

Config. Pass

Description

Possible value

Shell-Setup | AutoLogon | Username

P7 OOBE System

 

User name created for OOBE

Shell-Setup | AutoLogon | Enabled

P7 OOBE System

 

True

Shell-Setup | AutoLogon | LogonCount

P7 OOBE System

 

1 ~ UInt32 MAX

Shell-Setup | AutoLogon | Password | PlainText

P7 OOBE System

 

true or false

Shell-Setup | AutoLogon | Password | Value

P7 OOBE System

 

The same password used for this user account created under the Shell-Setup | UserAccounts node

Here are some things to consider from this list:

1) Setup | UserData | AcceptEULA: Consider who you’re accepting this EULA for. If you’re the end user of the device, this is acceptable, but you wouldn’t want to accept the EULA if you’re not the end user.

2) Shell-Setup | ComputerName: By setting this to a value of “*”, Setup will assign an algorithmic machine name to your target device. The intention of this is to provide a unique machine name to your target device during setup/deployment, which can later be changed after setup/deployment.

3) Shell-Setup | ProductKey: A valid product key will be required for this setting. For the Windows Embedded Standard 2011 CTP, an “all-zeros” product key will be acceptable: 00000-00000-00000-00000-00000

4) Shell-Setup | OOBE | NetworkLocation: The OOBE has different execution paths depending on this setting. Setting this value to “Home” will bring you down a code-path that cannot be suppressed with an answer file. Be sure to set this value to “Work”.

It is clear from this list that there is a significant amount of settings required to achieve a completely unattended setup in Windows Embedded Standard 2011. Keep in mind that these settings can be configured in various ways to fit your specific goals. By using other SMI settings you can do things such as have the device automatically join a domain, use domain accounts instead of local accounts, name the device, etc. Experiment with these settings to find the combination of settings that meet your goal. Although there are a lot of settings, the flexibility is very powerful. Also, keep in mind that most of the SMI settings available for use when setting up, deploying, or servicing a Windows Embedded Standard 2011 image are identical to Windows 7 settings, so be sure to leverage the Windows 7 documentation for these settings.

- Peter

Technorati Tags: XPe,Embedded,Standard 2009,ICE,IBW

Comments

  • Anonymous
    March 12, 2010
    Peter. Thanks for this post, I am a very new to WE7. This post helped me a lot. I have created answerfile and created a IBW Bootable disk. I am using a VirutalBox on Centos. When i boot this CD i am getting a error related to propery <ImageInstall>. my final autoUnattened WondowsPE pass1 contains the follwing. </ComplianceCheck>            <ImageInstall>                <OSImage>                    <InstallToAvailablePartition>true</InstallToAvailablePartition>                    <WillShowUI>false</WillShowUI>                </OSImage>            </ImageInstall> am i missing anyting. It installed and autologon when enable this WillShowUI to true and select the disk manually. Thanks

  • Anonymous
    March 16, 2010
    Hi ardadmin, I've got a few questions:

  1. Which version of WES7 are you using? RC? CTP? Please clarify as this will help me understand the issue you're facing.
  2. Do you have any partitions created on your device? As I understand, <InstallToAvailablePartition> will only work if there is a valid partition on the device.
  3. Could you please post the error logs you're seeing? This will be helpful too.
  • Anonymous
    March 24, 2010
    Hi peter, Thanks for the reply.. I am using RC. Finally I found the problem. What you said is true the device hardware don’t have partition. So have made changes to answer file's DiskConfiguration property under WindowsPE pass to do disk partition ..etc. it worked …  your blog helped me a lot.

  • Anonymous
    May 13, 2010
    The comment has been removed

  • Anonymous
    May 26, 2010
    You can put that app in the $_OEM folder and update the custom shell settings to launch that app.