標籤:sid ssid shutdown 下一步 security set 檔案中 table lines
原文: 在 Windows 10 專業版、企業版或教育版上設定展台
Set up a kiosk on Windows 10 Pro, Enterprise, or Education
適用於
正在尋找 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 配置設計器,並選擇預配展台裝置。 在命名項目後,單擊下一步,然後按下表所示配置設定。
如果你要在此頁面上配置設定,請啟用裝置設定。
如果已啟用:
請輸入裝置的名稱。
(可選)選擇許可證檔案,以將 Windows 10 升級到其他版本。 請參閱允許的升級。
請關閉將裝置配置為共用使用。 此設定針對共用使用方式情節最佳化了 Windows 10,而且對於展台方案並非必需。
你還可以選擇從裝置中刪除預先安裝的軟體。 |
|
如果你要在此頁面上配置設定,請啟用網路設定。
如果已啟用:
針對無線網路串連切換開或關。 如果你選擇開,請輸入 SSID、網路類型(開放或 WPA2-個人)和(如果是 WPA2-個人)無線網路的密碼。 |
|
如果你要在此頁面上配置設定,請啟用帳戶管理。
如果已啟用:
你可以在 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 天使用設定應用更改密碼。 如果在此期限內未更改密碼,帳戶可能會被鎖定而無法登入。 |
|
你可以在添加應用程式步驟中預配展台應用。 你可以在一個預配包中安裝多個應用程式,即經典 Windows (Win32) 應用和通用 Windows 平台 (UWP) 應用。 此步驟中的設定因你選擇的應用程式而異。 有關這些設定的協助,請參閱使用應用預配電腦。
警告:如果你單擊加號按鈕以添加應用程式,則必須為預配包指定應用程式,以進行驗證。 如果你單擊加號按鈕時出錯,請在安裝程式路徑中選擇任何可執行檔,然後取消按鈕會變為可用,讓你可以在不使用應用程式的情況下完成預配包。 |
|
若要使用展台應用的認證預配裝置,請單擊添加認證。 輸入認證的名稱,然後瀏覽到要使用的認證並將其選中。 |
|
重要提示:你必須使用 Microsoft 市集中的 Windows 配置設計器應用,才能在預配包中將經典 Windows 應用程式選作展台應用。
你可以建立要用於運行展台應用的本地標準使用者帳戶。 如果你切換否,請確保你擁有運行展台應用的現有使用者帳戶。
如果你要建立帳戶,請輸入使用者名稱和密碼,然後切換是或否,以在裝置啟動時自動登入該帳戶。
在配置kiosk 模式應用中,輸入將運行kiosk 模式應用的使用者帳戶名。 選擇要在kiosk 模式下啟動並執行應用類型,然後輸入路徑或檔案名稱(對於經典 Windows 應用)或 AUMID(對於通用 Windows 應用)。 對於經典 Windows 應用,如果檔案路徑位於 PATH 環境變數中,你可以使用檔案名稱,否則需要完整路徑。 |
|
在此步驟中,選擇適用於平板電腦模式、歡迎畫面和關機螢幕的使用者體驗以及逾時設定的選項。 |
|
你可以設定密碼,以保護你的預配包。 你必須在將預配包應用到裝置時輸入此密碼。 |
|
備忘
如果你要使用 Windows 配置設計器中的進階編輯器,請在運行時設定 > AssignedAccess > AssignedAccessSettings 中指定使用者帳戶和應用(通過 AUMID)
瞭解如何應用預配包。
通用 Windows 應用的受指派的存取權方法
使用受指派的存取權,Windows 10 在鎖定畫面上運行指定的通用 Windows 應用,因此受指派的存取權帳戶無權訪問裝置上的任何其他功能。 你具有以下設定受指派的存取權的選項:
方法 |
帳戶類型 |
Windows 10 版本 |
在電腦上使用“設定” |
本地標準 |
專業版、企業版、教育版 |
應用行動裝置管理 (MDM) 策略 |
全部(域、本地標準、本地管理員等) |
企業版, 教育版 |
使用 Windows 配置設計器建立預配包 |
全部(域、本地標準、本地管理員等) |
企業版, 教育版 |
運行 PowerShell 指令碼 |
本地標準 |
專業版、企業版、教育版 |
要求
域或本機使用者帳戶。
為該帳戶安裝或配置的通用 Windows 應用,它是上述鎖定畫面應用。 有關詳細資料,請參閱選擇具有受指派的存取權的應用指南。 有關產生上述鎖定畫面應用的詳細資料,請參閱針對受指派的存取權的展台應用:最佳做法。
該應用可以是你在自己的應用市集中提供的你自己公司的應用。 若要使用 MDM 或 PowerShell 設定受指派的存取權,對於該應用,你還需要應用程式使用者模型 ID (AUMID)。 瞭解如何擷取 AUMID。
通用 Windows 應用必須能夠處理多個視圖,並且無法啟動其他應用或對話方塊。
備忘
受指派的存取權在串連到多個監視器的裝置上不起效。
在電腦設定上設定受指派的存取權。
轉到開始 > 設定 > 帳戶 > 其他使用者。
選擇設定受指派的存取權。
選擇帳戶。
選擇應用。 僅顯示可以運行上述鎖定畫面的應用。 有關詳細資料,請參閱選擇具有受指派的存取權的應用指南。
關閉設定 – 你所做的選擇會自動儲存,並將在下次使用者帳戶登入時應用。
若要刪除受指派的存取權,請選擇關閉受指派的存取權並登出所選帳戶。
在 MDM 中設定受指派的存取權
受指派的存取權只有一個設定,即 KioskModeApp。 在 KioskModeApp 設定中,你可以輸入使用者帳戶名稱和 AUMID 以使該應用在kiosk 模式下運行。
瞭解如何擷取 AUMID。
請參閱受指派的存取權佈建服務供應商的技術參考。
使用 Windows PowerShell 設定受指派的存取權
你可以使用以下任一 PowerShell cmdlet 在多台裝置上設定受指派的存取權。
若要在 Windows 10 上開啟 PowerShell,請搜尋 PowerShell,然後在結果中尋找 Windows PowerShell 案頭應用。 以管理員身份運行 PowerShell。
複製
Set-AssignedAccess -AppUserModelId <AUMID> -UserName <username>
複製
Set-AssignedAccess -AppUserModelId <AUMID> -UserSID <usersid>
複製
Set-AssignedAccess -AppName <CustomApp> -UserName <username>
複製
Set-AssignedAccess -AppName <CustomApp> -UserSID <usersid>
備忘
若要使用 -AppName
設定受指派的存取權,針對受指派的存取權指定的使用者帳戶必須至少登入過一次。
瞭解如何擷取 AUMID。
瞭解如何擷取 AppName(請參閱參數)。
瞭解如何擷取 SID。
若要使用 PowerShell 刪除受指派的存取權,請運行以下 cmdlet。
複製
Clear-AssignedAccess
設定自動登入
當你的網亭裝置重新啟動時(無論從更新還是斷電),你可以手動登入受指派的存取權帳戶或者可以將裝置配置為自動登入受指派的存取權帳戶。 請確保應用到裝置的組原則設定不會阻止自動登入。
編輯註冊表以自動登入帳戶。
開啟登錄編輯程式 (regedit.exe)。
備忘
如果你不熟悉登錄編輯程式,請瞭解如何修改 Windows 註冊表。
轉到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon
設定以下項的值。
AutoAdminLogon:將值設定為 1。
DefaultUserName:將值設定為你希望登入的帳戶。
DefaultPassword:將值設定為帳戶的密碼。
備忘
如果 DefaultUserName 和 DefaultPassword 不存在,請將其添加為建立 > 字串值。
DefaultDomainName:為網域設定值,僅適用於域帳戶。 對於本地帳戶,不要添加此項。
開啟登錄編輯程式。 電腦下次重新啟動時,將自動登入該帳戶。
登出受指派的存取權
若要退出受指派的存取權(展台)應用,請按 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。
要求
請參閱 Shell 啟動器組件的技術參考。
配置 Shell 啟動器
若要將經典 Windows 應用程式設定為 Shell,你首先開啟 Shell 啟動程式功能,然後你可以使用 PowerShell 將自訂 Shell 設定為預設值。
在 Windows 功能中開啟 Shell 啟動程式
轉到“控制台”> 程式和功能 > 開啟或關閉 Windows 功能。
展開鎖定裝置。
依次選擇 Shell 啟動程式和確定。
或者,你可以使用 SMISettings > ShellLauncher
或部署映像服務與管理 (DISM.exe) 工具,通過預配包中的 Windows 配置設計器開啟 Shell 啟動程式。
使用 DISM 開啟 Shell 啟動器
- 以管理員身份開啟命令提示字元。
輸入以下命令。
複製Dism /online /Enable-Feature /all /FeatureName:Client-EmbeddedShellLauncher
設定自訂 Shell
適當修改以下 PowerShell 指令碼。 樣本指令碼中的注釋解釋每個部分的用途,並告知你在哪裡變更指令碼以達到你的目的。 通過擴充 .ps1 儲存指令碼,以管理員身份開啟 Windows PowerShell,並在展台裝置上運行指令碼。
複製
# Check if shell launcher license is enabledfunction 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 " + $resultif (-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 組的成員,請在裝置安裝限制中,啟用允許管理員重寫裝置安裝限制策略。
在 Windows 10 專業版、企業版或教育版上設定展台