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.
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:
- WindowsPE
- Offline Servicing
- Generalize
- Specialize
- Audit System
- Audit User
- 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:
- OOBE is not part of IBW (Setup)
- OOBE runs online, during the oobeSystem phase
- 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:
- Image Build Wizard Unattend Settings
- OOBE SMI Unattend Settings
- 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 | |
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.
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. ThanksAnonymous
March 16, 2010
Hi ardadmin, I've got a few questions:
- Which version of WES7 are you using? RC? CTP? Please clarify as this will help me understand the issue you're facing.
- 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.
- 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 removedAnonymous
May 26, 2010
You can put that app in the $_OEM folder and update the custom shell settings to launch that app.