Skip to Content

Windows 10 Kiosk Mode Shell Launcher Today

To bypass the login screen, use Sysinternals Autologon or configure the registry:

The custom shell exits immediately. Solution: The shell must block or loop (e.g., Application.Run() in .NET). A console app that returns will log out the user. windows 10 kiosk mode shell launcher

$shellLauncherClass.RemoveCustomShell("KioskUser") Get-WmiObject -Namespace "root\standardcimv2\embedded" -Class "WESL_UserSetting" | Select-Object UserName, ShellPath 6. Security and Behavior Considerations | Aspect | Implication | | --- | --- | | Keyboard shortcuts | Ctrl+Alt+Del may still open the security screen. Group Policy must disable relevant options. | | Win32 app crashes | If the custom shell terminates, the user session may become unusable (black screen). Implement watchdog or auto-restart logic in the custom app. | | Remote management | Shell Launcher does not block remote administration tools (e.g., PowerShell remoting). The kiosk account should have minimal privileges. | | UWP incompatibility | Classic Shell Launcher cannot directly launch UWP apps. Use shell:AppsFolder trick or migrate to Assigned Access for UWP. | 7. Comparison: Shell Launcher vs. Assigned Access | Feature | Shell Launcher (Classic) | Assigned Access (Kiosk Mode) | | --- | --- | --- | | Supports Win32 apps | Yes | No (UWP only, except via XML hack in Enterprise) | | Supports multiple apps | Yes (app can launch others) | No (single app) | | Complexity | High (manual WMI) | Low (Settings UI) | | UWP support | No | Yes | | Recommended use | Custom launcher, legacy apps, multi-app kiosk | Simple content viewer, Edge kiosk | 8. Troubleshooting Common Issues Issue: After setting Shell Launcher, the user logs in to a black screen. Solution: Verify the path to the executable exists and is accessible. Also ensure the executable does not depend on explorer.exe services (e.g., some clipboard features). To bypass the login screen, use Sysinternals Autologon

# Define variables $userName = "KioskUser" $shellPath = "C:\KioskApp\launcher.exe" $shellLauncherClass = Get-WmiObject -Namespace "root\standardcimv2\embedded" -Class "WESL_UserSetting" -ErrorAction Stop Set the shell for the user $result = $shellLauncherClass.SetCustomShell($userName, $shellPath, $null, $null) $shellLauncherClass

if ($result.ReturnValue -eq 0) Write-Host "Shell Launcher configured successfully for $userName" else Write-Host "Error: Return value $($result.ReturnValue)"

PLEASE NOTE: We're handy RVers, not professional technicians. We're happy with the techniques and products we use, but be sure to confirm that all methods and materials you use are compatible with your equipment and abilities. Regardless of what we recommend, consult a professional if you're unsure about working on your RV. Any task you perform or product you purchase based on any information we provide is strictly at your own risk.

We participate in affiliate programs from many companies (including the Amazon affiliate program), which provides a means for us to earn a small commission by linking to products there. But our opinions are our own and we only link to products we can recommend to friends with complete confidence. And using our links won't cost you an extra penny!