Celeste Kiosk telepítése (Windows 11 IoT)

Előkövetelmények

  • Windows 11 IoT Enterprise LTSC telepítése
  • Rendszergazdai (Admin) fiók létrehozása

Kiosk felhasználó létrehozása

Rendszergazdai fiókkal bejelentkezve létre kell hozni egy új felhasználót Celeste névvel, ami a kiosk felhasználó lesz.

  • Jelentkezzen be az Admin felhasználóval
  • Navigáljon: Gépház → Fiókok → Egyéb felhasználók
  • Válassza a Fiók hozzáadása lehetőséget

  • Hozza létre az új felhasználót az alábbi adatokkal:

    • Felhasználónév: Celeste
    • Jelszó: Üresen hagyható (opcionális)

  • A jelszó mező üresen hagyható, opcionálisan beállítható

  • Az új felhasználó jogosultságát állítsa Rendszergazda szintre.

Kiosk felhasználó alapbeállításai

Jelentkezzen be a Celeste felhasználóval.

Energiagazdálkodás

Navigáció: Gépház → Energiagazdálkodás

  • Alvó állapot kikapcsolása
  • Képernyő elsötétítés kikapcsolása

Területi és nyelvi beállítások

Szükség esetén konfigurálja a rendszer nyelvi és régiós beállításait.
A pontos konfiguráció a telepített Windows-verzió és ügyféligény szerint változhat.

Gesztusvezérlés letiltása

Egyes beállítások hardver- és driverfüggők.

Navigáció: Gépház → Bluetooth és eszközök → Érintés

  • Kapcsolja ki a beállításokat:

    • Három- és négyujjas érintéses kézmozdulatok
    • Pöccintés a képernyő bal szélétől
    • Pöccintés a képernyő jobb szélétől
    • Kétujjas nyomva tartás gesztus (opcionális)

Celeste előkövetelmények

Microsoft Store engedélyezése

A Celeste felhasználóval bejelentkezve indítsa el a PowerShell-t, majd futtassa:

WSReset.exe -i

Sikeres végrehajtás után a Microsoft Store elérhetővé válik a Start menüből.

App Installer telepítése

Telepítendő alkalmazás: Alkalmazástelepítő (App Installer)

  • Nyomja meg: Win + R
  • Illessze be az alábbi Uri-t, hogy megnyíljon az Alkalmazástelepítő áruházi oldala:

ms-windows-store://pdp/?ProductId=9NBLGGH4NNS1

  • Kattintson a Beszerzés / Telepítés gombra.

Tanúsítvány telepítése

  • Dupla kattintás a .cer fájlra.
  • Válassza: Tanúsítvány telepítése

  • Telepítési hely: Helyi számítógép
  • Tároló kiválasztása:

    • Minden tanúsítvány tárolása ebben a tárolóban
    • Tallózás →
    • Megbízható legfelsőbb szintű hitelesítésszolgáltatók

  • Ablakok jóváhagyása.

Celeste telepítése

Részletesebb útmutató a telepítés menetéről ITT. Az 1.14 verziótól a telepítőcsomag része a .Net Runtime, így azt nem kell külön telepíteni.

  • Dupla kattintás a telepítendő Celeste .msix csomagra.
  • Telepítés végrehajtása.
  • Az alkalmazás első indítása.

    • A kasszaregisztráció elvégezhető, de nem szükséges.

  • Az alkalmazás bezárása.

Mappa jogosultság beállítása

A Celeste indításával létrejött a C:\ProgramData\Celeste mappa.

  • Engedélyezze a rejtett mappák megjelenítését.
  • Navigáljon: C:\ProgramData\Celeste
  • Jobb klikk → Tulajdonságok → Biztonság
  • A Celeste felhasználónak adjon teljes hozzáférést.

A fenti lépés nélkül nem lesz a Celeste felhasználónak hozzáférése az alkalmazásmappához rendszergazdai jogosultságok nélkül.

CelesteKioskWatchdog telepítése

Az appsettings.json konfigurációs fájllal testreszabható a watchdog működése. Erről és az alkalmazásról bővebben ITT lehet olvasni. Alapesetben nem kell szerkeszteni.

AEE nyomtató telepítése

  • AEE driver telepítése
  • Nyomtató párosítása

Kiosk mód beállítása

  • Jelentkezzen be Admin felhasználóval.
  • Navigáljon: Gépház → Fiókok → Egyéb felhasználók
  • A Celeste felhasználó jogosultságát módosítsa Általános jogú felhasználóra.

Automatikus bejelentkezés konfigurálása

  • PowerShell-t indítsa rendszergazdai jogokkal, majd futtassa:
$Username = "Celeste"
$Password = ""
$RegPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
Set-ItemProperty $RegPath "AutoAdminLogon" -Value "1" -Type String
Set-ItemProperty $RegPath "DefaultUserName" -Value $Username -Type String
Set-ItemProperty $RegPath "DefaultPassword" -Value $Password -Type String

Amennyiben a felhasználó létrehozásakor beállított jelszót, úgy a változó értékét annak megfelelően kell módosítani.
Például: $Password = "123abc"

Shell Launcher engedélyezése

A Shell Launcher bekapcsolható a Windows-szolgáltatások be- és kikapcsolásánál.

Vagy PowerShell-ből:

Enable-WindowsOptionalFeature -FeatureName Client-DeviceLockdown,Client-EmbeddedShellLauncher -Online

A számítógép újraindítása szükséges lehet.

A Shell Launcher-ről bővebb információ itt elérhető: Shell Launcher Overview

PsExec letöltése

Amennyiben nincs mellékelve, le kell tölteni a PsExec eszközt. Ez a PsTools alkalmazáscsomagban megtalálható, amely letölthető innen: PsExec – Sysinternals

A PsExec.exe-t kicsomagolva, rendszergazdai jogokkal futtatni kell a parancsot:

.\psexec.exe -i -s powershell.exe

Első indításkor fogadja el a licencet, ha kéri.

Ezzel egy új PowerShell ablak nyílik a legmagasabb Windows jogosultsági szinttel (SYSTEM).

Shell Launcher konfigurálása

A szkriptet bemásolva a System PowerShell ablakba, majd futtatva beállításra kerül a kiosk mód, azaz a Celeste felhasználóba bejelentkezve letiltásra kerül az explorer.exe és automatikusan indul a Celeste kassza.

$shellLauncherConfiguration = @"
<?xml version="1.0" encoding="utf-8"?>
<ShellLauncherConfiguration xmlns="http://schemas.microsoft.com/ShellLauncher/2018/Configuration" xmlns:V2="http://schemas.microsoft.com/ShellLauncher/2019/Configuration">
	<Profiles>
		<DefaultProfile>
			<Shell Shell="%SystemRoot%\explorer.exe"/>
		</DefaultProfile>
		<Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}">
			<Shell Shell="%ProgramFiles%\CelesteKioskWatchdog\CelesteKioskWatchdog.exe" V2:AppType="Desktop" V2:AllAppsFullScreen="true" >
				<ReturnCodeActions>
					<!-- Watchdog unhandled exception -->
					<ReturnCodeAction ReturnCode="-1" Action="RestartDevice"/>
				</ReturnCodeActions>
				
				<DefaultAction Action="RestartShell"/>
			</Shell>
		</Profile>
	</Profiles>
	<Configs>
		<Config>
			<Account Name="Celeste" />
			<Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}"/>
		</Config>
	</Configs>
</ShellLauncherConfiguration>
"@

$namespaceName="root\cimv2\mdm\dmmap"
$className="MDM_AssignedAccess"
$obj = Get-CimInstance -Namespace $namespaceName -ClassName $className
$obj.ShellLauncher = [System.Net.WebUtility]::HtmlEncode($shellLauncherConfiguration)
$obj = Set-CimInstance -CimInstance $obj

Amennyiben a CelesteKioskWatchdog.exe más elérési úton található, módosítsa a Shell útvonalát (10. sor).

Amennyiben a felhasználónév eltér, módosítsa az Account Name értékét (24. sor).

Teszt

  • Rendszer újraindítása.
  • A Windows indulás után automatikusan bejelentkezik a Celeste felhasználóba.
  • Celeste alkalmazás automatikus indulásának ellenőrzése. Első indításkor viszonylag hosszabb ideig sötét képernyő.
  • Érintőképernyő gesztusok tesztelése, megfelelően le vannak tiltva a funkciók. Pl. képernyő széléről behúzás, többujjas gesztusok.
  • AEE nyomtató működésének ellenőrzése.
  • Kijelentkezési funkciók tesztelése:

    • Billentyűzet esetén: Ctrl+Alt+Del
    • A Celeste bezárásával a felhasználó kijelentkezik. Ez csak kiosk módban indítva az alkalmazást érvényes.

A kijelentkezés funkció jelenleg fejlesztés alatt van.

Hibakeresés

Szkriptek futtatásának engedélyezése

Előfordulhat, hogy a Shell Launcher config szkript bemásolása a PowerShell ablakba nem sikerül. Ebben az esetben egy .ps1 fájlba bemásolható, és az egyszerűen futtatható. Ehhez előbb engedélyezni kell a szkriptek futtatását:

Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser

A végén pedig le kell tiltani:

Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope CurrentUser

Kiosk mód kikapcsolása

SYSTEM jogosultsággal PowerShell indítása.

.\psexec.exe -i -s powershell.exe

Majd a parancsok futtatása.

$namespaceName="root\cimv2\mdm\dmmap"
$className="MDM_AssignedAccess"
$obj = Get-CimInstance -Namespace $namespaceName -ClassName $className
$obj.ShellLauncher = $null
Set-CimInstance -CimInstance $obj

Automatikus bejelentkezés kikapcsolása

$RegPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
Remove-ItemProperty $RegPath "AutoAdminLogon"
Remove-ItemProperty $RegPath "DefaultUserName"
Remove-ItemProperty $RegPath "DefaultPassword"

Celeste App Id lekérése

Get-StartApps | Where-Object { $_.Name -like "*Celeste*" }