【WIP】Linux & Windows 小技巧(4):再谈展台模式
图源:《失われた深淵・宵宫》 @void_0 100377150
Microsoft Edge 展台模式
在 《小技巧(3)》 中,我以 Microsoft Edge 为例简单描述了 Windows 展台模式的使用场景和设置方法。
展台模式适用于以下情况:
- 商场电子展柜或企业宣传展板等;
- 数据可视化大屏、监控大屏、比赛情况大屏等;
- 图书馆用于书籍查询的公用电脑、机构办事处用于自助办理手续的公用电脑等;
即需要保持全屏情况下限定用户(管理员或使用者)访问某站点内的页面并使用户能正常与页面交互的情况下均可以考虑展台模式。
而 Windows 展台模式为操作系统级功能,配置流程较复杂、可能影响操作系统稳定性,且直接使用设置 App 配置的展台模式同时只能运行 1 个程序(Single-app kiosk mode)。如果只是想临时启动 Edge 的展台模式,或是在运行 Edge 的同时运行其他程序,再或者是在 Linux 或 macOS 下启动展台模式,最简便的办法是直接使用命令行。
启动命令
Edge 是基于 Chromium 二次开发的浏览器。因此,与 Chromium 启动展台模式的命令类似。以百度为例启动展台模式:
1 | .\chrome.exe --kiosk 'https://www.baidu.com' |
定位到 msedge.exe 所在路径,一般为:
1 | C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe |
在该路径下启动 PowerShell,启动展台模式:
1 | .\msedge.exe --kiosk 'https://www.baidu.com' --edge-kiosk-type=fullscreen |
参数
各命令行参数的用途如下1:
- 参数
--kiosk
指定了启动展台模式时默认打开的URL。URL中含有&
等特殊字符时需用单 / 双引号包裹。 - 参数
--edge-kiosk-type
指定了展台模式的类型,共有两种:fullscreen
:全屏模式,网页将以全屏方式显示,标签栏和地址栏将被隐藏。public-browsing
:公共浏览模式,效果同 Windows 展台模式下的 Edge。该模式仅在 Windows 上可用。- 以上两种模式均会自动使用隐私模式(InPrivate),并屏蔽鼠标右键菜单。
- 参数
--no-first-run
:当 Edge 没有初始化就进入展台模式时,使其不显示配置向导。 - 参数
--kiosk-idle-timeout-minutes
用于指定间隔多久重置展台模式,删除浏览数据。
通过快捷方式启动
可将以上参数加入到 msedge.exe
的快捷方式中,这样就可以实现双击快捷方式启动展台模式的 Edge。
Firefox 展台模式
与 Edge 类似,Firefox 也有适用于公用电脑或企业展台的展台(Kiosk)模式。
为什么?
Firefox 展台模式的特点如下:
- Edge的展台模式并不支持扩展(Extensions),而 Firefox 的展台模式支持。如果你依赖某款插件的功能(且该插件兼容 Firefox),则应使用 Firefox。
- Firefox 相比 Edge 支持更多 Linux 发行版,甚至部分 BSD。你同样可在这些设备上开启展台模式。
- 可以在不使用隐私模式(Private Window)的情况下开启展台模式,适用于在预先登录账号(本地已储存 Cookie)情况下通过展台模式访问大屏网页。
但 Firefox 与 Google Chrome、Edge相比存在如下缺点:
-
[[TODO]]
怎么做?
直接使用命令行参数 -kiosk
启动 Firefox 展台模式,并使用 -private-window
参数指示 Firefox 使用隐私模式。以打开百度为例,命令如下:
定位到 Firefox 安装文件夹,一般为:
1 | C:\Program Files\Mozilla Firefox\firefox.exe |
1 | .\firefox.exe -kiosk -private-window https://www.baidu.com |
“微调”浏览器设置
Google Chrome、Edge 与 Firefox 均提供针对企业的管理模板,可对浏览器进行用户级或系统级的、细致的设置,从而影响浏览器的功能和行为。这也意味着,通过管理模板中的设置,我们可以改变两款浏览器展台模式的效果,或是增强其安全性。
下载管理模板
- Chrome 的管理模板在“Chrome Enterprise”网站中:Download Chrome Browser for Your Business - Chrome Enterprise
- Edge 的管理模板在“Microsoft Edge for business”网站中:Download Edge for Business | Microsoft
- Firefox 的管理模板在 Github 上托管:Releases · mozilla/policy-templates
Windows 下的使用:组策略编辑器
下载的压缩包中包含许多文件,实际使用只需要其中的 ADMX 文件和 HTML 文档。ADMX 的安装需要管理员权限:
- Edge:打开
MicrosoftEdgePolicyTemplates.cab\MicrosoftEdgePolicyTemplates.zip\windows\admx
,将其中的三个 ADMX 文件和 zh_CN 文件夹(如果操作系统是其他语言,则选择对应语言的文件夹)解压到C:\Windows\PolicyDefinitions
中。 - Chrome:打开
policy_templates.zip\windows\admx
,同上所述解压两个 ADMX 文件和对应语言的文件夹。 - Firefox:打开
policy_templates_v4.1.zip\windows
,同上所述解压两个 ADMX 文件和对应语言的文件夹。
随后打开本地组策略编辑器 - 管理模板,即可看到设置:
随后依据需求修改设置。以 Firefox 为例:默认状态下,Firefox 在启动展台模式后不会禁止用户使用 F12 键打开开发者工具。在组策略中找到 管理模板\Mozilla\Firefox\禁用开发者工具
,修改为“已启用”即可禁止 F12 键打开开发者工具。
Windows 下的使用:直接修改注册表
查文档
首先需要从压缩包中的文档中获取设置项名称。以中文为例:
- Chrome:打开
policy_templates.zip\common\html\zh-CN\chrome_policy_list.html
,找到需要修改的设置项,即可看到它对应的注册表键的位置和合法的键值(图中红框所示)。
- 在线查看 Chrome 管理模板文档:Chrome Enterprise Policy List & Management | Documentation
- Edge:打开
MicrosoftEdgePolicyTemplates.cab\MicrosoftEdgePolicyTemplates.zip\html\zh-CN\msedgepolicylist.html
,即可看到键位置和合法键值(图中红框所示)。
- 在线查看 Edge 管理模板文档:Microsoft Edge Browser Policy Documentation | Microsoft Docs
- Firefox:打开
policy_templates_v4.1.zip\README.md
,即可看到键位置和合法键值(图中红框所示)。
- 在线查看 Firefox 管理模板文档:policy-templates/README.md at master · mozilla/policy-templates
构造 PowerShell 命令
根据文档中的描述构造修改 Windows 注册表的 PowerShell 命令。
- 与“本地组策略编辑器”中的“计算机配置”(对所有用户都生效)和“用户配置”(只对当前用户生效)相对应,两个存放组策略设置项的注册表位置分别为:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies
和HKEY_CURRENT_USER\Software\Policies
。HKEY_LOCAL_MACHINE\
在命令中简写为HKLM:
HKEY_CURRENT_USER\
在命令中简写为HKCU:
- 构造命令时使用到的 PowerShell 命令为:
- 创建注册表项:
New-Item
- 重命名注册表项:
Rename-Item
- 删除注册表项:
Remove-Item
- 查询注册表项:
Get-Item
- 创建注册表键值对:
New-ItemProperty
- 修改注册表键值对的值:
Set-ItemProperty
- 重命名注册表键值对:
Rename-ItemProperty
- 删除注册表键值对:
Remove-ItemProperty
- 查询注册表键值对的值:
Get-ItemProperty
- 创建注册表项:
- PowerShell 命令的参数主要有:
-Path
:项或键值对的位置-Name
:项或键值对的名称-Value
:键值对的值-PropertyType
:键值对的数据类型,常用类型如下String
:字符串,对应注册表中的 REG_SZ 类型;DWord
:32位整数(双字节整数),对应注册表中的 REG_DWORD 类型;Qword
:64位整数(四字节整数),对应注册表中的 REG_QWORD 类型;Binary
:二进制数据,对应注册表中的 REG_BINARY 类型;
- 其他参数及更详细解释,可参照 Working with Registry Entries - PowerShell | Microsoft Docs 和 Microsoft.PowerShell.Management Module - PowerShell | Microsoft Docs
以上图中 Firefox 的 DisableDeveloperTools 设置项为例,构造的命令如下:
1 | # 如果 Mozilla\Firefox 项不存在,则创建项 |
使用 PowerShell 执行以上代码后启动 Firefox,开发者工具便被禁用。
Linux 下如何实现管理模板中的设置
[[TODO]]
基于 Firefox 的修改版:OpenKiosk
[[TODO]]
Android
[[TODO]]
【WIP】Linux & Windows 小技巧(4):再谈展台模式
https://www.zhouweitong.site/post/034-linux-windows-tricks-04/