Я использую Windows 10 Enterprise, сборка 10586, на виртуальной машине Virtual Box, чтобы попробовать создать киоск с помощью Windows 10.
Приложение режима киоска - "cmd.exe", пока что в качестве теста. Это для традиционного приложения .Net, не универсального приложения Windows.
Я нашел статьи на SO, в которых уже указано, как это сделать, и я считаю, что правильно следовал «хлебным крошкам», но у меня появляется черный экран всякий раз, когда я загружаю виртуальную машину после запуска сценария ниже:
$COMPUTER = "localhost"
$NAMESPACE = "root\standardcimv2\embedded"
$ACCOUNT_NAME = "Fred"
$ShellLauncherClass = [wmiclass]"\\$COMPUTER\${NAMESPACE}:WESL_UserSetting"
$NTUserObject = New-Object System.Security.Principal.NTAccount($ACCOUNT_NAME)
$NTUserSID = $NTUserObject.Translate([System.Security.Principal.SecurityIdentifier]).Value
$NTUser_Shell = Get-WmiObject -namespace $NAMESPACE -computer $COMPUTER -class WESL_UserSetting |
where {$_.Sid -eq $NTUserSID}
if ($NTUser_Shell) {
"`Custom shell already set for [$ACCOUNT_NAME] removing it"
$ShellLauncherClass.RemoveCustomShell($NTUserSID)
}
$restart_shell = 0
$restart_device = 1
$shutdown_device = 2
$ShellLauncherClass.SetCustomShell($NTUserSID, "cmd.exe", ($null), ($null), $restart_device)
"`nCurrent settings for custom shells:"
Get-WmiObject -namespace $NAMESPACE -computer $COMPUTER -class WESL_UserSetting | Select Sid, Shell, DefaultAction
$ShellLauncherClass.SetEnabled($TRUE)
#$ShellLauncherClass.SetEnabled($FALSE)
""
"Enabled is set to " + $ShellLauncherClass.IsEnabled().Enabled
Когда я запускаю скрипт в Power Shell (как администратор), все выглядит правильно (см. ниже).
Когда я перезагружаюсь и вхожу под любой учетной записью (администратор или не администратор), я получаю неинтерактивный черный экран (то есть просто черный экран, а не командную строку).
Любая помощь будет принята с благодарностью.