- Home
- windows 10 kiosk mode shell launcher
- windows 10 kiosk mode shell launcher
Windows 10 Kiosk Mode Shell Launcher | 2K |
# 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)
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). # Define variables $userName = "KioskUser" $shellPath =
if ($result.ReturnValue -eq 0) Write-Host "Shell Launcher configured successfully for $userName" else Write-Host "Error: Return value $($result.ReturnValue)" $shellLauncherClass