在 Windows 10 专业版、企业版或教育版上设置展台

简介: 原文: 在 Windows 10 专业版、企业版或教育版上设置展台 Set up a kiosk on Windows 10 Pro, Enterprise, or Education 适用于 Windows 10 正在查找 Windows Embedded 8.1 工业版信息? 请参阅分配的访问权限 一次性设备或展台设备易于在 Windows 10 桌面版中设置。

原文: 在 Windows 10 专业版、企业版或教育版上设置展台

Set up a kiosk on Windows 10 Pro, Enterprise, or Education

适用于

  • Windows 10

正在查找 Windows Embedded 8.1 工业版信息? 请参阅分配的访问权限

一次性设备或展台设备易于在 Windows 10 桌面版中设置。

  • 使用 Windows 配置设计器(Windows 10 版本 1607 或更高版本)中的预配展台设备向导,可以创建预配包,以配置运行通用 Windows 应用或经典 Windows 应用程序(仅限 Windows 10 企业版或教育版)的展台设备。

  • 若要使展台设备运行通用 Windows 应用,请使用分配的访问权限功能(Windows 10 专业版、企业版或教育版)。

  • 若要使展台设备运行经典 Windows 应用程序,请使用 Shell 启动程序将自定义用户界面设置为 Shell(仅限 Windows 10 企业版或教育版)。

若要将设备返回到常规 Shell,请参阅注销分配的访问权限

备注

通用 Windows 应用基于通用 Windows 平台 (UWP) 生成,在 Windows 8 中作为 Windows 运行时首次引入。 经典 Windows 应用程序使用经典 Windows 平台 (CWP)(例如 COM、Win32、WPF、WinForms 等),并且通常使用 .EXE 或 .DLL 文件进行启动。

 

使用 Windows 配置设计器设置展台

当你使用 Windows 配置设计器中的预配展台设备向导时,你可以将展台配置为运行通用 Windows 应用或经典 Windows 应用程序。

重要

生成预配包时,可能会在项目文件和预配包 (.ppkg) 文件中包含敏感信息。 尽管你可以选择加密 .ppkg 文件,但项目文件不会加密。 应将项目文件存储在安全位置,并在不再需要它们时删除项目文件。

安装 Windows 配置设计器,然后打开 Windows 配置设计器,并选择预配展台设备。 在命名项目后,单击下一步,然后按下表所示配置设置。

第 1 步设置设备
如果你要在此页面上配置设置,请启用设备设置。

如果已启用:

请输入设备的名称。

(可选)选择许可证文件,以将 Windows 10 升级到其他版本。 请参阅允许的升级。

请关闭将设备配置为共享使用。 此设置针对共享使用方案优化了 Windows 10,而且对于展台方案并非必需。

你还可以选择从设备中删除预安装的软件。
设备名称, 升级到企业版, 共享使用, 删除预安装的软件
第 2 步 设置网络
如果你要在此页面上配置设置,请启用网络设置。

如果已启用:

针对无线网络连接切换。 如果你选择,请输入 SSID、网络类型(开放或 WPA2-个人)和(如果是 WPA2-个人)无线网络的密码。
输入网络 SSID 和类型
第 3 步 帐户管理
如果你要在此页面上配置设置,请启用帐户管理。 

如果已启用:

你可以在 Active Directory 中注册设备,在 Azure Active Directory 中注册,或在设备上创建本地管理员帐户

若要在 Active Directory 中注册设备,请输入最低特权用户帐户的凭据,以将该设备加入域。

使用 Windows 配置设计器向导配置 Azure AD 批量注册之前,请在贵组织中设置 Azure AD 加入。 Azure AD 租户中的每个用户的最大设备数设置用于确定你在该向导中获取的批量令牌可使用的次数。 若要在 Azure AD 中注册设备,请选择该选项,并输入你要使用向导获取的批量令牌的友好名称。 设置令牌的到期日期(从获取该令牌之日算起最多 30 天)。 单击获取批量令牌。 在让我们帮你登录窗口中,输入有权限将设备加入 Azure AD 的帐户,然后再输入密码。 单击接受以向 Windows 配置设计器提供所需的权限。

警告:你必须在 Windows 10 上运行 Windows 配置设计器,才能使用任何向导配置 Azure Active Directory 注册。

若要创建本地管理员帐户,请选择该选项,然后输入用户名和密码。 

重要提示:如果在预配包中创建本地帐户,则必须每 42 天使用设置应用更改密码。 如果在此期限内未更改密码,帐户可能会被锁定而无法登录。
加入 Active Directory、Azure AD,或创建本地管理员帐户
第 4 步添加应用程序
你可以在添加应用程序步骤中预配展台应用。 你可以在一个预配包中安装多个应用程序,即经典 Windows (Win32) 应用和通用 Windows 平台 (UWP) 应用。 此步骤中的设置因你选择的应用程序而异。 有关这些设置的帮助,请参阅使用应用预配电脑

警告:如果你单击加号按钮以添加应用程序,则必须为预配包指定应用程序,以进行验证。 如果你单击加号按钮时出错,请在安装程序路径中选择任何可执行文件,然后取消按钮会变为可用,让你可以在不使用应用程序的情况下完成预配包。
添加应用程序
第 5 步添加证书
若要使用展台应用的证书预配设备,请单击添加证书。 输入证书的名称,然后浏览到要使用的证书并将其选中。
添加证书
第 6 步配置展台帐户和应用
重要提示:你必须使用 Microsoft 应用商店中的 Windows 配置设计器应用,才能在预配包中将经典 Windows 应用程序选作展台应用。

你可以创建要用于运行展台应用的本地标准用户帐户。 如果你切换,请确保你拥有运行展台应用的现有用户帐户。

如果你要创建帐户,请输入用户名和密码,然后切换,以在设备启动时自动登录该帐户。

配置展台模式应用中,输入将运行展台模式应用的用户帐户名。 选择要在展台模式下运行的应用类型,然后输入路径或文件名(对于经典 Windows 应用)或 AUMID(对于通用 Windows 应用)。 对于经典 Windows 应用,如果文件路径位于 PATH 环境变量中,你可以使用文件名,否则需要完整路径。
配置展台帐户和应用
第 7 步配置展台通用设置
在此步骤中,选择适用于平板电脑模式、欢迎屏幕和关机屏幕的用户体验以及超时设置的选项。
设置平板电脑模式,配置欢迎和关机屏幕,并关闭超时设置
完成
你可以设置密码,以保护你的预配包。 你必须在将预配包应用到设备时输入此密码。
保护你的程序包

备注

如果你要使用 Windows 配置设计器中的高级编辑器,请在运行时设置 > AssignedAccess > AssignedAccessSettings 中指定用户帐户和应用(通过 AUMID)

了解如何应用预配包。

 

通用 Windows 应用的分配的访问权限方法

使用分配的访问权限,Windows 10 在锁屏界面上运行指定的通用 Windows 应用,因此分配的访问权限帐户无权访问设备上的任何其他功能。 你具有以下设置分配的访问权限的选项:

方法 帐户类型 Windows 10 版本
在电脑上使用“设置” 本地标准 专业版、企业版、教育版
应用移动设备管理 (MDM) 策略 全部(域、本地标准、本地管理员等) 企业版, 教育版
使用 Windows 配置设计器创建预配包 全部(域、本地标准、本地管理员等) 企业版, 教育版
运行 PowerShell 脚本 本地标准 专业版、企业版、教育版

要求

  • 域或本地用户帐户。

  • 为该帐户安装或配置的通用 Windows 应用,它是上述锁屏界面应用。 有关详细信息,请参阅选择具有分配的访问权限的应用指南。 有关生成上述锁屏界面应用的详细信息,请参阅针对分配的访问权限的展台应用:最佳做法

    该应用可以是你在自己的应用应用商店中提供的你自己公司的应用。 若要使用 MDM 或 PowerShell 设置分配的访问权限,对于该应用,你还需要应用程序用户模型 ID (AUMID)。 了解如何获取 AUMID

    通用 Windows 应用必须能够处理多个视图,并且无法启动其他应用或对话框。

备注

分配的访问权限在连接到多个监视器的设备上不起效。

在电脑设置上设置分配的访问权限。

  1. 转到开始 > 设置 > 帐户 > 其他用户

  2. 选择设置分配的访问权限

  3. 选择帐户。

  4. 选择应用。 仅显示可以运行上述锁屏界面的应用。 有关详细信息,请参阅选择具有分配的访问权限的应用指南

  5. 关闭设置 – 你所做的选择会自动保存,并将在下次用户帐户登录时应用。

若要删除分配的访问权限,请选择关闭分配的访问权限并注销所选帐户

在 MDM 中设置分配的访问权限

分配的访问权限只有一个设置,即 KioskModeApp。 在 KioskModeApp 设置中,你可以输入用户帐户名称和 AUMID 以使该应用在展台模式下运行。

了解如何获取 AUMID

请参阅分配的访问权限配置服务提供商的技术参考。

使用 Windows PowerShell 设置分配的访问权限

你可以使用以下任一 PowerShell cmdlet 在多台设备上设置分配的访问权限。

若要在 Windows 10 上打开 PowerShell,请搜索 PowerShell,然后在结果中查找 Windows PowerShell 桌面应用。 以管理员身份运行 PowerShell。

Set-AssignedAccess -AppUserModelId  -UserName 
Set-AssignedAccess -AppUserModelId  -UserSID 
Set-AssignedAccess -AppName  -UserName 
Set-AssignedAccess -AppName  -UserSID 

备注

若要使用 -AppName 设置分配的访问权限,针对分配的访问权限指定的用户帐户必须至少登录过一次。

了解如何获取 AUMID

了解如何获取 AppName(请参阅参数)。

若要使用 PowerShell 删除分配的访问权限,请运行以下 cmdlet。

Clear-AssignedAccess

设置自动登录

当你的网亭设备重新启动时(无论从更新还是断电),你可以手动登录分配的访问权限帐户或者可以将设备配置为自动登录分配的访问权限帐户。 请确保应用到设备的组策略设置不会阻止自动登录。

编辑注册表以自动登录帐户。

  1. 打开注册表编辑器 (regedit.exe)。

    备注

    如果你不熟悉注册表编辑器,请了解如何修改 Windows 注册表

  2. 转到

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon

  3. 设置以下项的值。

    • AutoAdminLogon:将值设置为 1

    • DefaultUserName:将值设置为你希望登录的帐户。

    • DefaultPassword:将值设置为帐户的密码。

      备注

      如果 DefaultUserName 和 DefaultPassword 不存在,请将其添加为新建 > 字符串值

    • DefaultDomainName:为域设置值,仅适用于域帐户。 对于本地帐户,不要添加此项。

  4. 打开注册表编辑器。 计算机下次重新启动时,将自动登录该帐户。

注销分配的访问权限

若要退出分配的访问权限(展台)应用,请按 Ctrl + Alt + Del,然后使用其他帐户登录。 当你按下 Ctrl + Alt + Del 以注销分配的访问权限时,展台应用将自动退出。 如果你使用分配的访问权限帐户重新登录或者等待登录屏幕超时,展台应用将重启。 分配的访问权限用户将保持登录状态,直到管理员帐户打开任务管理器 > 用户,并注销用户帐户。

如果你按下 Ctrl + Alt + Del 并且不登录其他帐户,则在设定的时间后,分配的访问权限将恢复。 默认时间为 30 秒,但是你可以在以下注册表项中更改该设置:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI

若要更改分配的访问权限恢复的默认时间,请添加 IdleTimeOut (DWORD),并输入十六进制形式的值数据(以毫秒为单位)。

 

经典 Windows 应用程序的 Shell 启动程序

使用 Shell 启动器,你可以配置运行经典 Windows 应用程序作为用户界面的网亭。 你指定的应用程序将替换通常在用户登录时运行的默认 Shell (explorer.exe)。

备注

你还可以通过使用预配展台设备向导配置展台设备,以运行经典 Windows 应用程序。

警告

Shell 启动程序不支持具有启动不同进程然后退出的应用程序的自定义 shell。 例如,你不能在 Shell 启动程序中指定 write.exe。 Shell 启动程序启动自定义 shell 并监视进程以识别自定义 shell 何时退出。 Write.exe 创建 32 位 wordpad.exe 进程并退出。 由于 Shell 启动程序无法识别新创建的 wordpad.exe 进程,因此 Shell 启动程序将基于 Write.exe 的退出代码采取行动,如重启自定义 shell。

要求

  • 域或本地用户帐户。

  • 为该帐户安装的经典 Windows 应用程序。 该应用可以是你自己的公司应用程序或常见应用(如 Internet Explorer)。

请参阅 Shell 启动器组件的技术参考。

配置 Shell 启动器

若要将经典 Windows 应用程序设置为 Shell,你首先打开 Shell 启动程序功能,然后你可以使用 PowerShell 将自定义 Shell 设置为默认值。

在 Windows 功能中打开 Shell 启动程序

  1. 转到“控制面板”> 程序和功能 > 打开或关闭 Windows 功能

  2. 展开设备锁定

  3. 依次选择 Shell 启动程序确定

或者,你可以使用 SMISettings > ShellLauncher 或部署映像服务和管理 (DISM.exe) 工具,通过预配包中的 Windows 配置设计器打开 Shell 启动程序。

使用 DISM 打开 Shell 启动器

  1. 以管理员身份打开命令提示符。
  2. 输入以下命令。

    Dism /online /Enable-Feature /all /FeatureName:Client-EmbeddedShellLauncher
    

设置自定义 Shell

适当修改以下 PowerShell 脚本。 示例脚本中的注释解释每个部分的用途,并告知你在哪里更改脚本以达到你的目的。 通过扩展 .ps1 保存脚本,以管理员身份打开 Windows PowerShell,并在展台设备上运行脚本。

# Check if shell launcher license is enabled
function Check-ShellLauncherLicenseEnabled
{
    [string]$source = @"
using System;
using System.Runtime.InteropServices;

static class CheckShellLauncherLicense
{
    const int S_OK = 0;

    public static bool IsShellLauncherLicenseEnabled()
    {
        int enabled = 0;

        if (NativeMethods.SLGetWindowsInformationDWORD("EmbeddedFeature-ShellLauncher-Enabled", out enabled) != S_OK) {
            enabled = 0;
        }

        return (enabled != 0);
    }

    static class NativeMethods
    {
        [DllImport("Slc.dll")]
        internal static extern int SLGetWindowsInformationDWORD([MarshalAs(UnmanagedType.LPWStr)]string valueName, out int value);
    }

}
"@

    $type = Add-Type -TypeDefinition $source -PassThru

    return $type[0]::IsShellLauncherLicenseEnabled()
}

[bool]$result = $false

$result = Check-ShellLauncherLicenseEnabled
"`nShell Launcher license enabled is set to " + $result
if (-not($result))
{
    "`nThis device doesn't have required license to use Shell Launcher"
    exit
}

$COMPUTER = "localhost"
$NAMESPACE = "root\standardcimv2\embedded"

# Create a handle to the class instance so we can call the static methods.
try {
    $ShellLauncherClass = [wmiclass]"\\$COMPUTER\${NAMESPACE}:WESL_UserSetting"
    } catch [Exception] {
    write-host $_.Exception.Message; 
    write-host "Make sure Shell Launcher feature is enabled"
    exit
    }


# This well-known security identifier (SID) corresponds to the BUILTIN\Administrators group.

$Admins_SID = "S-1-5-32-544"

# Create a function to retrieve the SID for a user account on a machine.

function Get-UsernameSID($AccountName) {

    $NTUserObject = New-Object System.Security.Principal.NTAccount($AccountName)
    $NTUserSID = $NTUserObject.Translate([System.Security.Principal.SecurityIdentifier])

    return $NTUserSID.Value

}

# Get the SID for a user account named "Cashier". Rename "Cashier" to an existing account on your system to test this script.

$Cashier_SID = Get-UsernameSID("Cashier")

# Define actions to take when the shell program exits.

$restart_shell = 0
$restart_device = 1
$shutdown_device = 2

# Examples. You can change these examples to use the program that you want to use as the shell.

# This example sets the command prompt as the default shell, and restarts the device if the command prompt is closed. 

$ShellLauncherClass.SetDefaultShell("cmd.exe", $restart_device)

# Display the default shell to verify that it was added correctly.

$DefaultShellObject = $ShellLauncherClass.GetDefaultShell()

"`nDefault Shell is set to " + $DefaultShellObject.Shell + " and the default action is set to " + $DefaultShellObject.defaultaction

# Set Internet Explorer as the shell for "Cashier", and restart the machine if Internet Explorer is closed.

$ShellLauncherClass.SetCustomShell($Cashier_SID, "c:\program files\internet explorer\iexplore.exe www.microsoft.com", ($null), ($null), $restart_shell)

# Set Explorer as the shell for administrators.

$ShellLauncherClass.SetCustomShell($Admins_SID, "explorer.exe")

# View all the custom shells defined.

"`nCurrent settings for custom shells:"
Get-WmiObject -namespace $NAMESPACE -computer $COMPUTER -class WESL_UserSetting | Select Sid, Shell, DefaultAction

# Enable Shell Launcher

$ShellLauncherClass.SetEnabled($TRUE)

$IsShellLauncherEnabled = $ShellLauncherClass.IsEnabled()

"`nEnabled is set to " + $IsShellLauncherEnabled.Enabled

# Remove the new custom shells.

$ShellLauncherClass.RemoveCustomShell($Admins_SID)

$ShellLauncherClass.RemoveCustomShell($Cashier_SID)

# Disable Shell Launcher

$ShellLauncherClass.SetEnabled($FALSE)

$IsShellLauncherEnabled = $ShellLauncherClass.IsEnabled()

"`nEnabled is set to " + $IsShellLauncherEnabled.Enabled

要锁定的其他设置

若要实现更安全的展台体验,我们建议你对设备进行以下配置更改:

  • 将设备置于平板电脑模式

    如果你希望用户能够使用触摸(屏幕)键盘,请转到设置 > 系统 > 平板电脑模式,然后选中

  • 在登录屏幕上隐藏轻松使用功能。

    转到控制面板 > 轻松使用 > 轻松使用设置中心,并关闭所有辅助工具。

  • 禁用硬件电源按钮。

    转到电源选项 > 选择电源按钮的功能、将设置更改为不执行任何操作,然后保存更改

  • 从登录屏幕中删除电源按钮。

    转到计算机配置 > Windows 设置 > 安全设置 > 本地策略 > 安全选项 > 关机: 允许系统在未登录的情况下关闭,然后选择已禁用

  • 禁用相机。

    转到设置 > 隐私 > 相机,然后关闭允许应用使用我的相机

  • 关闭锁屏界面上的应用通知。

    转到组策略编辑器 > 计算机配置 > 管理模板\系统\登录\关闭锁屏界面上的应用通知

  • 禁用可移动媒体。

    转到组策略编辑器 > 计算机配置 > 管理模板\系统\设备安装\设备安装限制。 查看设备安装限制中提供的策略设置,以确保这些设置适用于你的情况。

    备注

    若要防止此策略影响 Administrators 组的成员,请在设备安装限制中,启用允许管理员重写设备安装限制策略

目录
相关文章
|
Cloud Native Go Windows
Windows 11 电脑如何设置自动开机 (Windows 11 2022H2)
Windows 11 电脑如何设置自动开机 (Windows 11 2022H2)
2196 0
|
3月前
|
存储 开发者 Windows
WINDOWS 环境变量设置方法
本文旨在帮助使用Windows电脑的开发者们为其设备配置环境变量,以更好地支持大模型应用的开发工作。文中详细介绍了三种配置方法:一是将环境变量设置为系统级变量;二是在命令行界面通过`SET`命令或`PowerShell`临时设置变量;三是借鉴MAC的方式,创建全局环境变量文件`.zshrc`进行配置。这些方法简单实用,便于根据实际需求选择适合的方式进行配置。
|
4月前
|
安全 Windows
【Azure云服务 Cloud Service】Cloud Service的实例(VM)中的服务描述Software Protection 与 Windows Defender, 如何设置Windows Defender Antivirus服务
【Azure云服务 Cloud Service】Cloud Service的实例(VM)中的服务描述Software Protection 与 Windows Defender, 如何设置Windows Defender Antivirus服务
|
3月前
|
关系型数据库 数据库 PostgreSQL
在C#中获取与设置Windows的字符编码方式
通过以上步骤,你可以在Docker环境下有效地重启PostgreSQL服务。这对于维护数据库健康、应用更新或环境配置更改后确保数据库服务正常运行至关重要。根据你的具体需求和环境设置,选择合适的方法来执行重启操作。
20 0
|
4月前
|
Python Windows 内存技术
【Azure 应用服务】Azure App Service (Windows) 使用Flask框架部署Python应用,如何在代码中访问静态文件呢?如何设置文件路径?是相对路径还是绝对路径呢?
【Azure 应用服务】Azure App Service (Windows) 使用Flask框架部署Python应用,如何在代码中访问静态文件呢?如何设置文件路径?是相对路径还是绝对路径呢?
|
4月前
|
网络协议 应用服务中间件 nginx
性能提升-如何设置Windows操作系统TIME_WAIT状态的TCP连接快速回收时间?
性能提升-如何设置Windows操作系统TIME_WAIT状态的TCP连接快速回收时间?
128 0
|
5月前
|
Windows
【Windows】 Win10下报错:该文件没有与之关联的应用来执行该操作。请安装应用,若已经安装应用,请在“默认应用设置”页面中创建关联
【Windows】 Win10下报错:该文件没有与之关联的应用来执行该操作。请安装应用,若已经安装应用,请在“默认应用设置”页面中创建关联
669 1
|
6月前
|
Windows
windows系统bat批处理 网络设置大全 设置静态、动态IP地址
windows系统bat批处理 网络设置大全 设置静态、动态IP地址
1385 2
|
5月前
|
NoSQL Redis Windows
Windows设置Redis服务使其开机自启
Windows设置Redis服务使其开机自启
132 0
|
6月前
|
应用服务中间件 Windows
Windows下CMD和Tomcat设置编码为UTF-8
解决CMD和Tomcat中文乱码问题:通过修改注册表永久设置CMD编码为UTF-8,路径 `\HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe`,修改CodePage为65001。Tomcat日志乱码时,在 `\HKEY_CURRENT_USER\Console` 下新建Tomcat项,添加DWORD值PageCode,值设为65001。
245 2