Powershell

帶有自定義外殼的 Windows 10 Kiosk 模式

  • March 22, 2018

我想設置一個使用者登錄並自動啟動瀏覽器的資訊亭模式。

Windows 自定義外殼

$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 允許您通過一個系統資料庫行或在組策略的幫助下設置自定義使用者界面。

郵政總局:

User Configuration\Administrative Templates\System\Custom User Interface

在這裡你可以設置例如

C:\Program Files\Internet Explorer\iexplore.exe -k www.google.de

這不僅會打開 Internet Explorer 而不是資源管理器作為使用者界面,IE 也會全屏顯示(-k 選項)。

系統資料庫:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System

這裡需要一個與上面內容相同的 REG_SZ Item。如果“系統”鍵不存在,則創建它。並且由於這是在“目前使用者”Hive 中完成的,這只會影響目前登錄的使用者。

我在一些只能訪問一個特定站點的資訊亭電腦上使用它,並且它工作正常(我使用域電腦,所以我使用 GPO 方法)。

引用自:https://serverfault.com/questions/762717