Microsoft-Windows-Embedded-ShellLauncher (Industry 8.1)
7/8/2014
Review the settings and examples of the Microsoft-Windows-Embedded-ShellLauncher feature package for Windows System Image Manager (SIM) in Windows Embedded 8.1 Industry (Industry 8.1).
You can use Shell Launcher to replace the default Windows 8.1 shell with a custom shell. You can use any application or executable as your custom shell, such as a command window or a custom dedicated application.
Important
You may specify any executable file to be the default shell except C:\Windows\System32\Eshell.exe. Using Eshell.exe as the default shell will result in a blank screen after a user signs in.
You can also configure Shell Launcher to launch different shell applications for different users or user groups.
Important
You cannot use Shell Launcher to launch a Windows Store app as a custom shell. However, you can use Windows 8 Application Launcher to launch a Windows Store app at startup.
Shell Launcher processes the Run and RunOnce registry keys before starting the custom shell, so your custom shell doesn't need to handle the automatic startup of other applications or services. Shell Launcher also handles the behavior of the system when your custom shell exits. You can configure the shell exit behavior if the default behavior does not meet your needs.
Important
A custom shell is launched with the same level of user rights as the account that is signed in. This means that a user with administrator rights can perform any system action that requires administrator rights, including launching other applications with administrator rights, while a user without administrator rights cannot. If your shell application requires administrator rights and needs to be elevated, and User Account Control (UAC) is present on your device, you must disable UAC in order for Shell Launcher to launch the shell application.
Warning
Microsoft does not support having both Shell Launcher and Windows 8 Application Launcher enabled at the same time.
Settings available in Windows SIM
Default shell settings
The default shell settings are used when Shell Launcher is enabled but the security identifier (SID) of the user who is currently signed in does not match any custom defined Shell Launcher configurations.
Setting |
Description |
---|---|
DefaultReturnCodeAction |
Specifies what action to take, based on the return code. |
Shell |
Specifies the application or executable to use as the default custom shell. |
UserSettings settings
Use the UserSettings settings to specify what custom shell and what default return code action to use for specific users or user groups.
Setting |
Description |
---|---|
AccountName |
Specifies the user or group account name the custom shell will be used for. |
Action |
Specifies whether to add, modify, or remove this user setting from the list. |
DefaultReturnCodeAction |
Specifies what action to take based on the return code. |
Domain |
Specifies account name's domain. |
Key |
Index key for this setting in the setting list. |
Shell |
Specifies the application or executable to use as the default custom shell. |
CustomReturnCodeAction settings
Use these settings to map an exit code from a custom shell to a shell exit action. If the exit code does not match a defined value, Shell Launcher performs the default return action code.
Setting |
Description |
---|---|
Action |
Specifies the shell exit action to be performed. |
Action |
Specifies whether to add, modify, or remove the custom return code configuration from the list. |
ReturnCode |
Specifies the custom shell return code to map to the shell exit action. |
Settings details
Default shell settings
The default shell settings are used when Shell Launcher is enabled but the security identifier (SID) of the user who is currently signed in does not match any custom defined Shell Launcher configurations.
DefaultReturnCodeAction
When a custom shell exits, Shell Launcher can perform one of four actions, based on the return codes.
- Type
Int32
Values
Value
Description
0
Restart the shell.
This is the default value.
1
Restart the device.
2
Shut down the device.
3
Do nothing.
- Parent hierarchy
Microsoft-Windows-Embedded-ShellLauncher | DefaultActionCodeAction
- Valid passes
oobeSystem
XML example
<settings pass="oobeSystem"> <component name="Microsoft-Windows-Embedded-ShellLauncher" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="NonSxS" xmlns:wcm="https://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Shell>testshell.exe</Shell> <DefaultReturnCodeAction>1</DefaultReturnCodeAction> </component> </settings>
Shell
- Type
String
Values
Value
Description
ExecutableFile
Specifies the name and path, if required, of the executable to use as the default custom shell.
The default value is cmd.exe.
- Parent hierarchy
Microsoft-Windows-Embedded-ShellLauncher | Shell
- Valid passes
oobeSystem
XML example
<settings pass="oobeSystem"> <component name="Microsoft-Windows-Embedded-ShellLauncher" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="NonSxS" xmlns:wcm="https://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Shell>testshell.exe</Shell> <DefaultReturnCodeAction>1</DefaultReturnCodeAction> </component> </settings>
UserSettings settings
AccountName
Specifies the user or group account name the custom shell will be used for.
- Type
String
Values
Value
Description
UserOrGroupName
Specifies the name of the user or user group this custom shell will apply to.
- Parent hierarchy
Microsoft-Windows-Embedded-ShellLauncher | UserSettings | User | AccountName
- Valid passes
oobeSystem
XML example
<settings pass="oobeSystem"> <component name="Microsoft-Windows-Embedded-ShellLauncher" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="NonSxS" xmlns:wcm="https://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <UserSettings> <User wcm:action="add"> <AccountName>Tester1</AccountName> <DefaultReturnCodeAction>0</DefaultReturnCodeAction> <Domain>TestDomain</Domain> <Key>1</Key> <Shell>cmd.exe</Shell> </User> </component> </settings>
Action
Specifies whether to add, modify, or remove this user setting from the list.
Values
Value
Description
AddListItem
Add a new custom configuration to the list.
Modify
Modify an existing custom configuration.
RemoveListItem
Remove a custom configuration from the list.
- Parent hierarchy
Microsoft-Windows-Embedded-ShellLauncher | UserSettings | User | Action
- Valid passes
oobeSystem
XML example
<settings pass="oobeSystem"> <component name="Microsoft-Windows-Embedded-ShellLauncher" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="NonSxS" xmlns:wcm="https://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <UserSettings> <User wcm:action="add"> <AccountName>Tester1</AccountName> <DefaultReturnCodeAction>0</DefaultReturnCodeAction> <Domain>TestDomain</Domain> <Key>1</Key> <Shell>cmd.exe</Shell> </User> </component> </settings>
DefaultReturnCodeAction
Specifies what action to take based on the return code.
- Type
Int32
Values
Value
Description
0
Restart the shell.
1
Restart the device.
2
Shut down the device.
3
Do nothing.
- Parent hierarchy
Microsoft-Windows-Embedded-ShellLauncher | UserSettings | User | DefaultReturnCodeAction
- Valid passes
oobeSystem
XML example
<settings pass="oobeSystem"> <component name="Microsoft-Windows-Embedded-ShellLauncher" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="NonSxS" xmlns:wcm="https://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <UserSettings> <User wcm:action="add"> <AccountName>Tester1</AccountName> <DefaultReturnCodeAction>0</DefaultReturnCodeAction> <Domain>TestDomain</Domain> <Key>1</Key> <Shell>cmd.exe</Shell> </User> </component> </settings>
Domain
Specifies account name's domain.
- Type
String
Values
Value
Description
UserOrGroupDomain
Specifies the domain of the user or user group this custom shell will be used for.
- Parent hierarchy
Microsoft-Windows-Embedded-ShellLauncher | UserSettings | User | Domain
- Valid passes
oobeSystem
XML example
<settings pass="oobeSystem"> <component name="Microsoft-Windows-Embedded-ShellLauncher" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="NonSxS" xmlns:wcm="https://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <UserSettings> <User wcm:action="add"> <AccountName>Tester1</AccountName> <DefaultReturnCodeAction>0</DefaultReturnCodeAction> <Domain>TestDomain</Domain> <Key>1</Key> <Shell>cmd.exe</Shell> </User> </component> </settings>
Key
Index key for this setting in the setting list.
- Type
Uint32, min 1
Values
Value
Description
IntegerKey
Specifies the unique key of this user setting in the list.
- Parent hierarchy
Microsoft-Windows-Embedded-ShellLauncher | UserSettings | User | Key
- Valid passes
oobeSystem
XML example
<settings pass="oobeSystem"> <component name="Microsoft-Windows-Embedded-ShellLauncher" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="NonSxS" xmlns:wcm="https://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <UserSettings> <User wcm:action="add"> <AccountName>Tester1</AccountName> <DefaultReturnCodeAction>0</DefaultReturnCodeAction> <Domain>TestDomain</Domain> <Key>1</Key> <Shell>cmd.exe</Shell> </User> </component> </settings>
Shell
Specifies the application or executable to use as the default custom shell.
- Type
String
Values
Value
Description
ExecutableFileName
Specifies the name and path, if required, of the executable to use as this user's custom shell.
- Parent hierarchy
Microsoft-Windows-Embedded-ShellLauncher | UserSettings | User | Shell
- Valid passes
oobeSystem
XML example
<settings pass="oobeSystem"> <component name="Microsoft-Windows-Embedded-ShellLauncher" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="NonSxS" xmlns:wcm="https://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <UserSettings> <User wcm:action="add"> <AccountName>Tester1</AccountName> <DefaultReturnCodeAction>0</DefaultReturnCodeAction> <Domain>TestDomain</Domain> <Key>1</Key> <Shell>cmd.exe</Shell> </User> </component> </settings>
CustomReturnCodeAction settings
Maps a custom shell's return code to a shell exit action code.
Action
Specifies the shell exit action to perform.
- Type
Int32
Values
Value
Description
0
Restart the shell.
This is the default value.
1
Restart the device.
2
Shut down the device.
3
Do nothing.
- Parent hierarchy
Microsoft-Windows-Embedded-ShellLauncher | UserSettings | User | CustomReturnCodeAction | CodeAction | Action
- Valid passes
oobeSystem
XML example
<settings pass="oobeSystem"> <component name="Microsoft-Windows-Embedded-ShellLauncher" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="NonSxS" xmlns:wcm="https://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Shell>testshell.exe</Shell> <DefaultReturnCodeAction>1</DefaultReturnCodeAction> </component> </settings>
Action
Specifies whether to add, modify, or remove the custom return code configuration from the list.
Values
Value
Description
AddListItem
Add a new custom configuration to the list.
Modify
Modify an existing custom configuration.
RemoveListItem
Remove a custom configuration from the list.
- Parent hierarchy
Microsoft-Windows-Embedded-ShellLauncher | UserSettings | User | CustomReturnCodeAction | CodeAction | Action
- Valid passes
oobeSystem
XML example
<settings pass="oobeSystem"> <component name="Microsoft-Windows-Embedded-ShellLauncher" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="NonSxS" xmlns:wcm="https://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Shell>testshell.exe</Shell> <DefaultReturnCodeAction>1</DefaultReturnCodeAction> </component> </settings>
ReturnCode
- Type
String
Values
Value
Description
CustomReturnCode
Specifies the return code to map to the indicated shell exit code.
- Parent hierarchy
Microsoft-Windows-Embedded-ShellLauncher | UserSettings | User | CustomReturnCodeAction | CodeAction | ReturnCode
- Valid passes
oobeSystem
XML example
<settings pass="oobeSystem"> <component name="Microsoft-Windows-Embedded-ShellLauncher" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="NonSxS" xmlns:wcm="https://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Shell>testshell.exe</Shell> <DefaultReturnCodeAction>1</DefaultReturnCodeAction> </component> </settings>
See Also
Concepts
Add lockdown and branding features to your image by using Windows SIM
Shell Launcher