我想设置一个用户登录并自动启动浏览器的信息亭模式。
$COMPUTER = "localhost"
$NAMESPACE = "root\standardcimv2\embedded"
# Create a handle to the class instance so we can call the static methods.
$ShellLauncherClass = [wmiclass]"\\$COMPUTER\${NAMESPACE}:WESL_UserSetting"
# 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.
$Kiosk_SID = Get-UsernameSID("Kiosk")
# Define actions to take when the shell program exits.
$restart_shell = 0
$restart_device = 1
$shutdown_device = 2
# Set Internet Explorer as the shell for "Cashier", and restart the machine if it's closed.
$ShellLauncherClass.SetCustomShell($Kiosk_SID, "c:\program files\internet explorer\iexplore.exe www.google.com", ($null), ($null), $restart_shell)
# Enable Shell Launcher
$ShellLauncherClass.SetEnabled($TRUE)
当我执行这个 powershell 脚本并使用 kiosk 登录时,我只看到一个黑屏。
为什么这么复杂?
Windows 允许您通过一个注册表行或在组策略的帮助下设置自定义用户界面。
邮政总局:
在这里你可以设置例如
这不仅会打开 Internet Explorer 而不是资源管理器作为用户界面,IE 也会全屏显示(-k 选项)。
注册表:
这里需要一个与上面内容相同的 REG_SZ Item。如果“系统”键不存在,则创建它。并且由于这是在“当前用户”Hive 中完成的,这只会影响当前登录的用户。
我在一些只能访问一个特定站点的信息亭计算机上使用它,它工作正常(我使用域计算机,所以我使用 GPO 方法)。
GPO 选项仍然存在于 Windows 10 中,至少是企业版和专业版。@Tobias 列出的路径仍然正确。它在系统的主页中,而不是在子文件夹中。
这已在 Windows 10 中被称为 的功能所取代
Shell Launcher
,使用它您可以配置 Win32 应用程序以启动而不是资源管理器。更重要的是,Windows 甚至可以配置为在关闭时自动重新启动应用程序,或者如果应用程序以某种方式无法打开,甚至可以重新启动 PC!
这是有关该主题的更多信息。我将在今天晚些时候逐步更新。