After a lot of searching and trial and error, here’s a quick guide to setting up a user account to run a webpage in as near-kiosk as it’s possible to be in Win 8.1 if the built in managed access method isn’t suitable for you: either because you’re running 8.1 Standard (managed access isn’t included) or because you need other applications to be able to launch from your webpage (managed access doesn’t permit this).
I’ve implemented it as two .bat files:
KioskAdministrator.bat is run once by an administrator to make some necessary changes (although this could just as easily be typed in at a command prompt running as Administrator):
REM KioskAdministrator.bat REM Prevent autorestart of explorer reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "AutoRestartShell" /t REG_DWORD /d 0 /f REM Prevent fast user switching reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "HideFastUserSwitching" /t REG_DWORD /d 1 /f
KioskUser.bat is run at whenever the kiosked user logs on:
REM KioskUser.bat REM Kill explorer taskkill /f /im explorer.exe REM Start Chrome C:\Progra~1\Google\Chrome\Application\chrome.exe --incognito --kiosk http://www.mysebsite.com
To run through what these are doing:
Touchscreen gestures (swiping from left to switch between apps, swipe from right to access start, settings, etc.) are part of explorer.exe and, while you can stop the trackpad equivalents while explorer is still running, the only way to stop the touchscreen gestures, without turning off the touchscreen altogether, appears to be by stopping explorer.exe. AutoRestartShell is a key which determines whether Windows will automatically try to restart explorer.exe if it shuts down unexpectedly – we have to set this to 0 to allow our kiosked user to turn it off in KioskUser.bat. Setting HideFastUserSwitching to 1 means that users can only switch between users by logging off – we only need this because we are running online exams. Note this this changes these settings for all users on the machine.
The first thing this does in kill explorer.exe to prevent access to those touchscreen gestures. It then launches chrome (or any other application you want to launch). –incognito puts Chrome into incognito mode, which prevents it displaying the option to restore a previous session if it closed unexpectedly and –kiosk starts it in full screen mode.
In order to get KioskUser.bat to run at logon, use Scheduled Tasks as described (for Win 7 but it’s very similar) here. Note the gotcha if you want this to happen when on battery as well as when plugged in, that under the Conditions tab in task properties, there is a Start the task only if the computer is on AC power checkbox which is ticked by default.
Note that this is a quick and easy solution – there may well be a way to do this with group or local policies that might suit your situation better.
There doesn’t seem to be any way to disable Ctrl-Alt-Del and access to the Task Manager from where you can re-enabled explorer by choosing Run new task from the File menu – I’d be interested in any ideas…