SMISettings (Windows Configuration Designer reference)
Use SMISettings settings to customize the device with custom shell, suppress Windows UI during boot and sign-in, and block or allow specific keys.
Applies to
Setting | Windows client | Surface Hub | HoloLens | IoT Core |
---|---|---|---|---|
All settings | ✅ |
All settings in SMISettings
The following table describes the settings in SMISettings. Some settings have more details in sections after the table.
Setting | Value | Description |
---|---|---|
AutoLogon | Enable Domain name Password UserName |
Allows automatic sign-in at startup. Users don't need to enter a user name and password. |
BrandingNeutral | See BrandingNeutral values | Specifies which UI elements display on the Welcome screen. |
CrashDumpEnabled | See CrashDumpEnabled values | Specifies the type of information to be saved if there's a crash. |
DisableBootMenu | True or false | Disables the F8 and F10 keys during startup to prevent access to the Advanced Startup Options menu. |
DisplayDisabled | True or false | Configures the device to display a blank screen if the OS has an error that it can't recover from. |
HideAllBootUI | True or false | Suppresses all Windows UI elements (logo, status indicator, and status message) during startup. |
HideAutologonUI | True or false | Hides the Welcome screen when automatic sign-in (AutoLogon) is enabled. |
HideBootLogo | True or false | Suppresses the default Windows logo that displays during the OS loading phase. |
HideBootStatusIndicator | True or false | Suppresses the status indicator that displays during the OS loading phase. |
HideBootStatusMessages | True or false | Suppresses the startup status text that displays during the OS loading phase. |
HideFirstLogonAnimation | True or false | Disable the animation during the first sign-in. |
KeyboardFilter | See KeyboardFilter settings | Use these settings to configure devices to suppress key presses or key combinations. |
NoLockScreen | True or false | Disables the lock screen functionality and UI elements |
ShellLauncher | See ShellLauncher settings | Settings used to specify the application or executable to use as the default custom shell. |
UIVerbosityLevel | Suppress or don't suppress | Disables the Windows status messages during device startup, sign-in, and shut down. |
BrandingNeutral values
The following table shows the possible values. You can combine these values using bitwise exclusive-OR logic to disable multiple Welcome screen UI elements.
The default value is 17, which disables all Welcome screen UI elements and the Switch user button.
Value | Description |
---|---|
1 | Disables all Welcome screen UI elements |
2 | Disables the Power button |
4 | Disables the Language button |
8 | Disables the Ease of access button |
16 | Disables the Switch user button |
32 | Disables the blocked shutdown resolver (BSDR) screen. Restarting or shutting down the system causes the OS to immediately force close any applications that are blocking the system shutdown. No UI is displayed, and users aren't given a chance to cancel the shutdown process. This value can result in a loss of data if any open applications have unsaved data. |
CrashDumpEnabled values
If the system stops unexpectedly, choose the type of information to capture in a dump (.dmp) file.
The .dmp file is typically saved in %SystemRoot% as Memory.dmp.
Set CrashDumpEnabled to one of the following values:
Value | Description |
---|---|
1 | Records all the contents of system memory. This dump file may contain data from processes that were running when the information was collected. |
2 | Records only the kernel memory. This dump file includes only memory that's allocated to the kernel, kernel-mode drivers, and other kernel-mode programs. It doesn't include unallocated memory, or any memory that's allocated to user-mode programs. For most purposes, this kind of dump file is the most useful because it's smaller than the complete memory dump file. It also includes information that's most likely involved in the issue. If a second problem occurs, the dump file is overwritten with new information. |
3 | Records the smallest amount of useful information that may help identify why the device stopped unexpectedly. This type of dump file includes the following information: - A list of loaded drivers - The processor context (PRCB) for the processor that stopped - The process information and kernel context (EPROCESS) for the process that stopped - The process information and kernel context (ETHREAD) for the thread that stopped - The kernel-mode call stack for the thread that stopped This dump file can be useful when space is limited. Because of the limited information, errors that aren't directly caused by the running thread at the time of the problem may not be discovered by analyzing this file. The date is encoded in the file name. If a second problem occurs, the previous file is preserved and the new file is given a distinct name. A list of all small memory dump files is kept in the %SystemRoot%\Minidump folder. |
4 | Records the smallest amount of useful information. This value produces the same results as entering a value of 1. |
7 | Records only the kernel memory. This value produces the same results as entering a value of 1. This is the default value. |
Any other value | Disables crash dump and doesn't record anything. |
KeyboardFilter settings
Use these settings to suppress undesirable key presses or key combinations. KeyboardFilter works with physical keyboards, the Windows on-screen keyboard, and the touch keyboard.
When you enable KeyboardFilter, many other settings become available for configuration.
Setting | Value | Description |
---|---|---|
CustomKeyFilters | Allow or block | Add your own key filters to meet any special requirements that aren't included in the predefined key filters. Enter a custom key combination in CustomKeyFilter, and then select it to allow or block it. The format to add custom filter combinations is "Alt+F9." This also appears as the CustomKey name, which is specified without "+". For more information, see WEKF_CustomKey. |
CustomScancodeFilters | Allow or block | Blocks the list of custom scan codes. When a key is pressed on a physical keyboard, the keyboard sends a scan code to the keyboard driver. The driver then sends the scan code to the OS and the OS converts the scan code into a virtual key based on the current active layout. Enter a custom scan code in CustomScancodeFilter, and then select it to allow or block it. For more information, see WEKF_Scancode. |
DisableKeyboardFilterForAdministrators | True or false | Disables the keyboard filter for administrators. |
ForceOffAccessibility | True or false | Disables all Ease of Access features and prevents users from enabling them. |
PredefinedKeyFilters | Allow or block | Specifies the list of predefined keys. For each key, the value will default to Allow. Specifying Block will suppress the key combination. |
Learn more about using keyboard filters.
ShellLauncher settings
Use ShellLauncher to specify the application or executable to use as the default custom shell. One use of ShellLauncher is to create a kiosk (fixed-purpose) device running a Windows desktop application.
Warning
Windows 10 doesn't support setting a custom shell prior to OOBE. If you do, you won't be able to deploy the resulting image.
You can also configure ShellLauncher to launch different shell applications for different users or user groups.
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 cannot use ShellLauncher to launch a Windows app as a custom shell. However, you can use Windows 10 application launcher to launch a Windows app at startup.
ShellLauncher 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. ShellLauncher also handles the behavior of the system when your custom shell exits. You can configure the shell exit behavior if the default behavior doesn't 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 ShellLauncher to launch the shell application.