Windows可通过Assigned Access配置UWP应用Kiosk模式,对Win32程序需修改注册表Shell值并配合组策略禁用热键、任务栏及锁屏,最后设置自动登录确保开机直达应用。

如果您希望将一台Windows电脑限制为仅运行单一应用程序,防止用户访问其他系统功能或程序,则可以启用Kiosk模式(展台模式)。以下是实现单应用Kiosk模式的具体步骤:
一、通过设置应用配置Assigned Access
Assigned Access是Windows内置的Kiosk模式配置工具,专为单应用锁定设计,适用于本地标准用户账户。该方式无需修改注册表或安装第三方软件,安全性较高且易于管理。
1、以管理员身份登录Windows,进入“设置” > “账户” > “家庭和其他用户”。
2、在“其他用户”下点击“将其他人添加到这台电脑”,创建一个新本地账户(例如命名为KioskUser),不关联Microsoft账户。
3、返回“设置” > “账户” > “登录选项”,确保该账户已设置登录密码或PIN码(必须设置,否则Assigned Access不可用)。
4、进入“设置” > “账户” > “登录选项” > “设置”(位于“分配的访问”下方),点击“设置”按钮。
5、开启“分配的访问”,在下拉菜单中选择此前创建的KioskUser账户。
6、在“选择要在此账户中运行的应用”列表中,勾选目标应用(如Microsoft Edge、计算器、或已安装的UWP应用);注意:仅UWP应用(来自Microsoft Store)支持直接选择;传统桌面程序(.exe)不可见,需改用其他方法。
二、使用注册表强制启动桌面程序为Kiosk应用
当目标程序为Win32桌面应用(如Chrome、自研.exe程序)时,可通过注册表覆盖Assigned Access限制,使系统启动后自动运行指定程序并禁用任务栏、Alt+Tab等系统交互。
1、以管理员身份运行regedit,导航至HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\SessionData。
2、右键空白处新建“DWORD (32位)值”,命名为AllowLogonScript,双击将其值设为1。
3、新建字符串值,命名为Shell,双击编辑其数值数据为完整路径(例如:C:\Program Files\Google\Chrome\Application\chrome.exe --kiosk https://kiosk.example.com)。
4、重启电脑,使用KioskUser账户登录后,系统将跳过桌面直接启动指定程序;必须确保该账户无密码自动登录已禁用,否则Shell策略可能不生效。
三、通过组策略禁用系统热键与外壳进程
为增强锁定强度,防止用户通过Ctrl+Shift+Esc、Win键或Alt+F4退出Kiosk应用,需配合组策略关闭系统关键交互组件。
1、按Win+R输入gpedit.msc,打开本地组策略编辑器(仅Windows专业版/企业版可用)。
2、导航至计算机配置 > 管理模板 > 系统 > 登录,启用“在用户登录时运行这些程序”,添加启动脚本指向批处理文件(内容为start "" "C:\path\to\app.exe")。
3、导航至用户配置 > 管理模板 > 开始菜单和任务栏,启用“删除任务栏”和“阻止访问任务管理器”。
4、导航至用户配置 > 管理模板 > 控制面板 > 个性化,启用“阻止更改桌面背景”和“阻止访问桌面主题设置”。
5、导航至计算机配置 > 管理模板 > Windows组件 > 文件资源管理器,启用“隐藏‘我的电脑’图标”和“防止从‘开始’菜单运行命令提示符”;所有策略启用后必须执行gpupdate /force刷新策略。
四、配置自动登录并屏蔽锁屏界面
为实现开机即入Kiosk状态,需绕过登录界面,并阻止系统进入锁屏或休眠导致Kiosk中断。
1、按Win+R输入netplwiz,取消勾选“要使用本计算机,用户必须输入用户名和密码”,点击“应用”,输入KioskUser的用户名和密码两次确认。
2、按Win+R输入powercfg.cpl,进入电源选项,点击“选择电源按钮的功能”,点击“更改当前不可用的设置”,取消勾选“启用快速启动(推荐)”。
3、在相同界面点击“更改计划设置” > “更改高级电源设置”,展开“睡眠” > “唤醒定时任务”,设为“禁用”;展开“显示” > “显示关闭时间”,设为“从不”。
4、按Win+R输入regedit,定位到HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Control Panel\Desktop,新建字符串值AutoEndTasks,值设为1;此操作可强制关闭未响应程序,避免Kiosk应用卡死无法恢复。










