Windows Embedded Home
Windows Embedded 8 Family
Windows Embedded 7 Family
Other Windows Embedded Products
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:
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:
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.
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:
International-Core-WinPE | InputLocale
Specifies the default language to use on the installed Windows operating system.
International-Core-WinPE | SetupUILanguage | UILanguage
Specifies the default language to use during Windows Setup. During installation, Windows Setup displays installation progress in the selected language.
International-Core-WinPE | SetupUILanguage | WillShowUI
International-Core-WinPE | UILanguage
Indicates the language of the user interface to use during Windows Setup or Windows Deployment Services.
Setup| FeaturePackageSelection | ShowUI
Specifies whether to show the IBW feature package selection page or not.
Setup| Target Analysis Mapping | RunTargetAnalysisMapping
Specifies whether to run TAP.exe and map the .pmq file to driver packages or not.
Setup| Target Analysis Mapping | ShowImportDriverUI
Specifies whether to show the IBW import driver UI page or not.
Setup| Target Analysis Mapping | WillShowUI
Specifies whether to show the IBW Target Analysis Mapping pages or not.
Setup | UserData | AcceptEULA
Specifies whether to accept Microsoft License Software Terms during IBW.
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.
Setup | ImageInstall | OSImage | InstallToAvailablePartition
Specifies installing Windows on the first available partition.
Setup | ImageInstall | OSImage | InstallTo | DiskID
Specifies the disk where you want to install Windows Embedded Standard 2011.
Setup | ImageInstall | OSImage | InstallTo | PartitionID
Specifies the partition where you want to install Windows Embedded Standard 2011.
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”.
International-Core | InputLocale
P7 OOBE System
Specifies the default input locale of the Windows installation.
International-Core | SystemLocale
Specifies the default system locale of the Windows installation.
International-Core | UILanguage
P7 OOBE System
Specifies the default UI language of the Windows installation.
International-Core | UserLocale
Specifies the default user locale of the Windows installation.
Specifies acceptance of the EULA.
Shell-Setup | ComputerName
Specifies the name of the computer to apply to the Windows installation.
Shell-Setup | ProductKey
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
Specifies the time zone of the computer.
“Pacific Standard Time”
Shell-Setup | OOBE | HideEULAPage
Hides the Microsoft Software License Terms page.
Shell-Setup | OOBE | ProtectYourPC
Specifies the protection level of the Windows installation.
Shell-Setup | OOBE | NetworkLocation
Specifies the location of the computer.
Shell-Setup | OOBE | HideWirelessSetupInOOBE
Hides the Wireless Network selection page.
Shell-Setup | UserAccounts | LocalAccounts
Specifies the user accounts to create on the Windows installation.
Right-click to insert a new local account
Shell-Setup | UserAccounts | LocalAccounts | LocalAccount | Name
The name of the account to create.
Any valid account name that is not already present in your image, for example:
Shell-Setup | UserAccounts | LocalAccounts | LocalAccount |DisplayName
The display name for a local account.
Any valid user name that is not already in your image, for example:
Shell-Setup | UserAccounts | LocalAccounts | LocalAccount | Password | Value
The password of the account created.
Any valid password
Shell-Setup | UserAccounts | AdministratorPassword |
Configures the Administrator account password.
Any password string
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.
Shell-Setup | AutoLogon | Username
User name created for OOBE
Shell-Setup | AutoLogon | Enabled
Shell-Setup | AutoLogon | LogonCount
1 ~ UInt32 MAX
Shell-Setup | AutoLogon | Password | PlainText
true or false
Shell-Setup | AutoLogon | Password | Value
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.