【WIP】Linux & Windows 小技巧(4):再谈展台模式

【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 用于指定间隔多久重置展台模式,删除浏览数据。

Windows 下命令行启动公共浏览模式

Linux 下命令行启动全屏模式

通过快捷方式启动

可将以上参数加入到 msedge.exe 的快捷方式中,这样就可以实现双击快捷方式启动展台模式的 Edge。

快捷方式里的参数

Firefox 展台模式

与 Edge 类似,Firefox 也有适用于公用电脑或企业展台的展台(Kiosk)模式。

为什么?

Firefox 展台模式的特点如下:

  • Edge的展台模式并不支持扩展(Extensions),而Firefox的展台模式支持。如果你依赖某款插件的功能(且该插件兼容Firefox),则应使用Firefox。
  • Firefox相比Edge支持更多Linux发行版,甚至部分BSD。你同样可在这些设备上开启展台模式。
  • 可以选择不使用隐私模式(Private Window)开启展台模式,

怎么做?

“微调”浏览器设置

Google Chrome、Edge 与 Firefox 均提供针对企业的管理模板,可对浏览器进行用户级或系统级的、细致的设置,从而影响浏览器的功能和行为。这也意味着,通过管理模板中的设置,我们可以改变两款浏览器展台模式的效果,或是增强其安全性。

下载管理模板

Chrome的管理模板

Edge的管理模板

Firefox的管理模板

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管理模板文档

Edge管理模板文档

image-20220815091530046

构造 PowerShell 命令

根据文档中的描述构造修改 Windows 注册表的 PowerShell 命令。

  • 与“本地组策略编辑器”中的“计算机配置”(对所有用户都生效)和“用户配置”(只对当前用户生效)相对应,两个存放组策略设置项的注册表位置分别为:HKEY_LOCAL_MACHINE\SOFTWARE\PoliciesHKEY_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:键值对的数据类型,常用类型如下:

  • 其他参数及更详细解释,可参照 Working with Registry Entries - PowerShell | Microsoft DocsMicrosoft.PowerShell.Management Module - PowerShell | Microsoft Docs

以上图中 Firefox 的 DisableDeveloperTools 设置项为例,构造的命令如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 如果 Mozilla\Firefox 项不存在,则创建项
if (-Not (Get-Item -Path 'HKLM:Software\Policies\Mozilla')) {
New-Item -Path 'HKLM:Software\Policies' -Name 'Mozilla'
}

if (-Not (Get-Item -Path 'HKLM:Software\Policies\Mozilla\Firefox')) {
New-Item -Path 'HKLM:Software\Policies\Mozilla' -Name 'Firefox'
}

# 如果键值对不存在则创建,存在则修改值
if (Get-ItemProperty -Path 'HKLM:Software\Policies\Mozilla\Firefox' -Name 'DisableDeveloperTools') {
Set-ItemProperty -Path 'HKLM:Software\Policies\Mozilla\Firefox' -Name 'DisableDeveloperTools' -Value '1'
}
else {
New-ItemProperty -Path 'HKLM:Software\Policies\Mozilla\Firefox' -Name 'DisableDeveloperTools' -Value '1' -PropertyType 'DWORD'
}

使用 PowerShell 执行以上代码后启动 Firefox,开发者工具便被禁用。

Linux 下如何实现管理模板中的设置

【WIP】Linux & Windows 小技巧(4):再谈展台模式

https://www.zhouweitong.site/post/034-linux-windows-tricks-04/

作者

ObjectNotFound

发布于

2022-08-24

更新于

2022-10-02

许可协议

评论

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×