Windows 10 IoT Enterprise 2019 – Kiosk-Modus

EinfĂŒhrung

Windows 10 IoT Enterprise 2019 – Marketingbezeichnung fĂŒr die nĂ€chste Version von Windows 10. Die Veröffentlichung dieser Version wurde im September 2018 angekĂŒndigt und hat die Version 1809, wobei 18 das Jahr und 09 den Monat darstellt. Zu der neuen Version Windows 10 1809 sind viele Artikel geschrieben worden, aber die meisten davon befassen sich mit verschiedenen „Schnickschnack“, „Ästhetik“ und verschiedenen Funktionen, die im privaten Umfeld gefragt sind.
In diesem Artikel geht es nur um die FunktionalitĂ€t, die fĂŒr Hersteller von festgelegten GerĂ€ten von Interesse sein könnte. Insbesondere um die neuen Möglichkeiten des „Kiosk“-Modus. Auch das Thema der NamensĂ€nderungen der Servicemodelle fĂŒr die Windows-Editionen im Unternehmensbereich wird angesprochen.

Das alte Servicemodell mit neuem Namen

Ich beginne mit einer kurzen ErklÀrung: Im Unternehmensbereich der Windows-Editionen gibt es zwei Servicemodelle, nach denen Windows-Updates erhÀlt. Diese Modelle haben eine Buchstabenbezeichnung. Aktuell werden die Servicelinien LTSC und SAC genannt.

LTSC – bedeutet Long Term Servicing Channel (mit langfristigem Support). Zuvor wurde dieser Kanal als LTSB – Long Term Servicing Branch bezeichnet, Microsoft hat einfach den Namen des Servicemodells geĂ€ndert, die Wartung selbst blieb jedoch unverĂ€ndert.

Auch Microsoft hat den Namen der Servicelinie CBB – Current Branch for Business geĂ€ndert, jetzt heißt diese Servicelinie SAC – Semi-Annual Channel. Wiederum wurde nur der Name geĂ€ndert.

Es sollte jedoch erwĂ€hnt werden, dass fĂŒr die Servicelinien LTSC und SAC unterschiedliche Windows-Distributionen verwendet werden.

Ein wenig ĂŒber den neuen Kiosk-Modus in SAC

Wie ich bereits erwĂ€hnt habe, haben LTSC und SAC unterschiedliche Distributionen. In LTSC gibt es keine standardmĂ€ĂŸigen universellen Anwendungen und keinen App-Store, aber in SAC gibt es diese. Dementsprechend gibt es in LTSC keinen Edge-Browser, wĂ€hrend dieser in SAC vorhanden ist. Wenn man bei der Kiosk-Einrichtung den Edge-Browser wĂ€hlt, stehen nun zwei Modi zur VerfĂŒgung:

  1. Als digitales Zeichen oder interaktives Display
  2. Als öffentlicher Browser

Ich werde nicht nĂ€her auf die Einrichtung dieser Modi eingehen, da die Einrichtung sehr einfach ist und im grafischen Interface durchgefĂŒhrt wird. Erstellen Sie einfach einen Benutzer, der nicht der Gruppe „Administratoren“ angehört, aktivieren Sie den Kiosk-Modus mit EDGE und sehen Sie sich die Funktionsweise dieser Modi an.

Kiosk mit vielen Anwendungen

Einige denken, dass die lizenzkonforme Nutzung Windows 10 IoT Enterprise unterstellt, dass auf dem GerĂ€t nur eine Anwendung arbeitet, ist tatsĂ€chlich nicht der Fall. Das GerĂ€t sollte fĂŒr die DurchfĂŒhrung einer einzelnen GeschĂ€ftsanwendung vorgesehen sein, und der Benutzer darf keinen Zugriff auf den Desktop haben. Jetzt hat Microsoft selbst ein Werkzeug bereitgestellt, um viele Anwendungen zu nutzen. Dieser Modus wird als „multi-app kiosk“ bezeichnet, und ich werde ihn der Einfachheit halber „Multikiosk“ nennen. In diesem Artikel werden wir die Einstellung dieses Modus mithilfe eines Bereitstellungspakets und einige Besonderheiten dieses Modus betrachten.

Ein wenig ĂŒber den Modus „Multikiosk“

Beim Einstieg in das Benutzerkonto, fĂŒr das der Multikiosk-Modus eingerichtet ist, wird das System im Tablet-Modus arbeiten. Das StartmenĂŒ wird im Vollbildmodus angezeigt, in dem die Kachel-Anwendungen angezeigt werden.

Liste der wichtigsten Einstellungen und Möglichkeiten des Modus:

  1. Einstellungen fĂŒr mehrere Benutzer oder Gruppen
  2. Jeden Benutzer oder jede Gruppe können individuelle Einstellungen zugewiesen werden
  3. Möglichkeit zur Nutzung von universellen und klassischen Anwendungen
  4. Möglichkeit, eine der Anwendungen automatisch zu starten, wenn der Benutzer sich im System anmeldet
  5. Betrieb von Anwendungen nach Whitelist
  6. Zugriff auf Ordner nach Whitelist

Es ist darauf hinzuweisen, dass Punkt 5. standardmĂ€ĂŸig nur Anwendungen zulĂ€sst, die fĂŒr den Betrieb des Systems erforderlich sind; alle anderen Anwendungen mĂŒssen zur Liste der zugelassenen hinzugefĂŒgt werden. Das bedeutet, dass AppLocker nicht separat konfiguriert werden muss. Übrigens, um Konflikte mit den AppLocker-Einstellungen zu vermeiden, werden im Multikiosk-Modus alle konfigurierten AppLocker-Regeln nicht wirksam sein.

In Punkt 6 wird eine gute Möglichkeit dargestellt, jedoch ist es momentan nur möglich, Schreibrechte nur fĂŒr den Ordner „Downloads“ zu gewĂ€hren. Der Modus erlaubt die Verwendung von universellen und klassischen Anwendungen. Alle Einstellungen des Modus werden in einer XML-Datei angegeben, in der auch Einstellungen fĂŒr einen Kiosk mit einer einzelnen Anwendung angegeben werden können.

Jetzt versuchen wir, das alles einzurichten...

Was wir benötigen...

  1. ZunĂ€chst benötigen wir das Betriebssystem, das den Multikiosk-Modus unterstĂŒtzt. Hier kann man herunterladen die Demoversion
  2. Anleitung zur Einrichtung des Multikiosks
  3. Einen beliebigen XML-Editor
  4. Um die Einstellungen des Multikiosks anzuwenden:
    1. FĂŒr Methode Nr. 1 – ICD, das Teil von ADK ist. ADK kann hier heruntergeladen werden
    2. FĂŒr Methode Nr. 2 – das Tool PsExec. Das Tool kann hier heruntergeladen werden

Er sagte – „Lass uns fahren!“

Alle Versuche werde ich auf Windows 10 IoT Enterprise 1809 LTSC x32, der kommerziellen Version und nicht der Demoversion, durchfĂŒhren. Das System wird ohne Aktivierung sein, da das Fehlen einer Aktivierung keine Auswirkungen auf die FunktionalitĂ€t des Systems hat. Ich habe 32 Bit gewĂ€hlt, nur weil es weniger Platz benötigt und die Arbeit mit Systemabbildern schneller geht.

Schritt 1 – Installation

Die Installation von Win 10 IoT Enterprise unterscheidet sich nicht von der Installation von Win 10 Enterprise, weshalb ich den gesamten Installationsprozess nicht beschreiben werde, sondern nur auf einige Nuancen eingehe.

Zur Sicherheit erinnere ich daran, das System nicht ĂŒber einem bestehenden zu installieren. Wenn der Installer nach dem Installationsort fragt, löschen Sie alle Partitionen auf dem zukĂŒnftigen Systemlaufwerk und geben Sie die nicht partitionierte Festplatte an.

Wir installieren das System ohne Internetverbindung, damit das System nichts Unnötiges herunterlÀdt.

Da wir Systemabbilder erstellen werden und diese im Auditsmodus versiegeln, können wir etwas Zeit sparen, indem wir das System direkt nach der Installation im Auditsmodus starten. Dazu drĂŒcken Sie einfach „Ctrl+Shift+F3“, wenn das System Sie auffordert, die Region auszuwĂ€hlen: „Lass uns mit der Region beginnen. Ist das richtig?“

Schritt 2 – Erstellen eines Systemabbilds

Da wir die Tests mit dem System durchfĂŒhren und verschiedene neue Einstellungen ausprobieren werden, kann es vorkommen, dass etwas schiefgeht und wir das System in den Ursprungszustand zurĂŒckversetzen mĂŒssen. Um schnell in den Ursprungszustand zurĂŒckzukehren, mĂŒssen wir ein Systemabbild erstellen. Das Einzige, was ich tun werde, ist, das „Gentleman-Set“ – das Skript und die Antwortdatei zu kopieren. Alle Dateien befinden sich im Ordner „Sysprep“, den ich in das Stammverzeichnis des Systemlaufwerks kopiere. Und natĂŒrlich werde ich dieses „Gentleman-Set“ mit Ihnen teilen.

Sysprep.bat – zum Versiegeln des Systems.

@echo off
chcp 1251>nul

net session>nul 2>nul
if %errorLevel% neq 0 (powershell -command "Start-Process "%~s0" -Verb RunAs"&exit)

tasklist /fi "ImageName eq sysprep.exe" | find /i "sysprep.exe"
if %errorlevel% lss 1 (taskkill /im sysprep.exe)

set AdminName=Admin
net user minName%>nul 2>nul
if %errorLevel% neq 0 (call :AddAdmin "minName%")
if %errorLevel% neq 0 (call :ShowMessage "‡‡‡Fehler beim Erstellen des neuen Administratorbenutzers "minName%"‡‡DrĂŒcken Sie eine Taste, um das Skript zu beenden"&pause>nul&exit)

pushd "%~dp0"

cls
call :ShowMessage ‡‡‡‡‡‡‡‡‡‡
echo 1 - System im Audit-Modus versiegeln
echo 2 - System im Willkommensmodus versiegeln
:Select
set /p Choice="Geben Sie die Nummer des MenĂŒpunkts ein: "
if "%Choice%"=="1" (goto Audit)
if "%Choice%"=="2" (goto OOBE)
echo.&echo UngĂŒltiger Wert ausgewĂ€hlt.&goto Select

exit

:Audit
 call :ShowMessage "‡‡‡‡‡Versiegelung des Systems im Audit-Modus"
 reg add HKLMSoftwareMicrosoftWindowsCurrentVersionRun /v KillSysprep /t REG_SZ /d "taskkill /im sysprep.exe" /f
 %SYSTEMROOT%System32Sysprepsysprep.exe /audit /generalize /shutdown /quiet
goto :eof

:OOBE
 call :ShowMessage "‡‡‡‡‡Versiegelung des Systems im Willkommensmodus"
 reg delete HKLMSoftwareMicrosoftWindowsCurrentVersionRun /v KillSysprep /f
 powershell -command "(Get-Content -path 'Unattend.xml' -Raw).Trim() -replace 'Architecture=""".+?"""','Architecture="""%PROCESSOR_ARCHITECTURE%"""' | Set-Content -path 'Unattend.xml'"
 %SYSTEMROOT%System32Sysprepsysprep.exe /oobe /generalize /shutdown /quiet /unattend:Unattend.xml
goto :eof

:AddAdmin
 setlocal
 set UserName=%~1
 if not defined UserName (echo Kein Benutzername angegeben&endlocal&exit /b 1)

 call :GetGroupName "S-1-5-32-544" AdminGroup
 if not defined AdminGroup (endlocal&exit /b 2)

 call :GetGroupName "S-1-5-32-545" UserGroup
 if not defined UserGroup (endlocal&exit /b 3)

 net user %UserName% /add
 wmic useraccount where "Name='%UserName%'" set PasswordExpires=False>nul
 net localgroup minGroup% %UserName% /add
 net localgroup %UserGroup% %UserName% /delete
 endlocal&exit /b 0
goto :eof

:GetGroupName
 if "%~1"=="" (echo Keine Gruppen-SID angegeben&goto :eof)
 set %2=
 for /f "tokens=2 delims= " %%i in ('whoami /groups /fo table^|find "%~1"') do set %2=%%i
 if not defined %2 (echo Fehler beim Bestimmen des Gruppennamens anhand der SID "%~1")
goto :eof

:ShowMessage
 setlocal enabledelayedexpansion
 set String=%~1
 if not defined String (echo.&setlocal disabledelayedexpansion&goto :eof)
 set /a ConCols=120 & set /a Num=1
 set "String[!Num!].str=%String:‡=" & set /a Num+=1 & set "String[!Num!].str=%"
 for /l %%a in (1,1,%Num%) do (
 for /l %%b in (0,1,%ConCols%) do if "!String[%%a].str:~%%b!" == "" (set "String[%%a].str= !String[%%a].str! "&set /a String[%%a].len-=1) else (set /a String[%%a].len+=0||set /a String[%%a].len=0)
 if not defined String[%%a].str (set String[%%a].str= )
 if not !String[%%a].len! equ 0 (call set String[%%a].str=%%String[%%a].str:~,!String[%%a].len!%%)
 if "!String[%%a].str: =!"=="" (echo.) else (echo !String[%%a].str!))
 setlocal disabledelayedexpansion
goto :eof

Beim Start des Skripts wird ĂŒberprĂŒft, ob ein Benutzerkonto "Admin" vorhanden ist, und es wird erstellt, wenn es nicht existiert. Das Benutzerkonto wird zur Gruppe "Administratoren" hinzugefĂŒgt.

Unattend.xml – Antwortdatei fĂŒr Sysprep.

reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v SetupDisplayedProductKey /t REG_DWORD /d 1 /f
                    1
                    Seite mit dem SchlĂŒssel nicht anzeigen
                
                
                    reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v UnattendCreatedUser /t REG_DWORD /d 1 /f
                    2
                    Kein Konto erstellen
                
                
                    cmd.exe /c rd %systemdrive%Sysprep /s /q
                    3
                    Ordner löschen
                
            
        
        
            
                true
                Admin
            
        
    
    
        
            en-US; ru-RU
            ru-RU
            ru-RU
            
            ru-RU
        
        
            
                true
                true
                true
                true
                true
                1

Beim Versiegeln im Audit-Modus wird das Skript einen Befehl zum Beenden des Prozesses „sysprep.exe“ in die Registrierung hinzufĂŒgen, um das Fenster von sysprep nicht jedes Mal manuell zu schließen. Beim Versiegeln im Willkommensmodus wird das Skript den Befehl zum Schließen des Fensters aus der Registrierung entfernen und selbst den Architekturwert in der Antwortdatei auf den aktuellen Wert Ă€ndern. In der Antwortdatei sind Parameter fĂŒr das Laden des Systems ohne Benutzereingriff und ein Befehl zum Löschen des Ordners „Sysprep“ im Wurzelverzeichnis des Systemlaufwerks enthalten.

Jetzt werde ich das System im Audit-Modus mit „Sysprep.bat“ versiegeln und ein Systemabbild erstellen. Ich werde das Systemabbild mit DISM erstellen und nur das Systemlaufwerk abbilden. Wenn Sie nur das Systemlaufwerk und nicht die gesamte Festplatte abbilden, vergessen Sie nicht, den Inhalt des Verzeichnisses „WindowsSystem32Recovery“ auf das erste Laufwerk in den Ordner „RecoveryWindowsRE“ nach der Bereitstellung des Systems zu kopieren. Dies muss vor dem Start des Betriebssystems erfolgen, da das Verzeichnis „WindowsSystem32Recovery“ nach dem Start des Betriebssystems bereits leer sein wird.

Schritt 3 – Russifizierung des Systems

Das Sprachpaket kann ohne Internetverbindung installiert werden, wenn Sie dieses Paket haben. Wenn nicht, wird das System es automatisch aus dem Internet herunterladen, wenn Sie die Sprache in den Einstellungen hinzufĂŒgen. Sie sollten nur kein Sprachpaket von vorherigen Versionen des Betriebssystems verwenden. FĂŒr Windows 10 1809 muss das Sprachpaket speziell fĂŒr Windows 10 1809 sein.

Microsoft folgt seinem Plan – einen schrittweisen Übergang der Einstellungen vom klassischen MenĂŒ in die neue OberflĂ€che, daher finden Sie in der klassischen Systemsteuerung keine Einstellungen mehr zum Ändern der Sprache und zur Installation des Sprachpakets. Diese Einstellungen befinden sich jetzt nur in den Systemeinstellungen.

Im Audit-Modus können Sie auf das Problem stoßen, die Systemeinstellungen ĂŒber das StartmenĂŒ zu öffnen. Um die Systemeinstellungen zu öffnen, fĂŒhren Sie den Befehl – „ms-settings:“ aus, beachten Sie das Doppelpunkt am Ende des Befehls, ohne ihn funktioniert der Befehl nicht. Nach einmaligem Öffnen der Systemeinstellungen mit diesem Befehl können Sie sie ĂŒber das grafische MenĂŒ öffnen.

In den Systemeinstellungen können Sie das Sprachpaket installieren, wenn das System mit dem Internet verbunden ist; dort gibt es keine Möglichkeit, das Sprachpaket aus einer lokalen Datei zu installieren.

Ich werde den Lokalisierungsprozess des Systems nicht beschreiben, da dies den Artikel erheblich verlĂ€ngern wĂŒrde, zumal der Lokalisierungsprozess detailliert hier beschrieben ist. Ich möchte jedoch Ihre Aufmerksamkeit auf eine Besonderheit der Änderung der Sprache des Systems nach der Installation des Sprachpakets ĂŒber die Konsole lenken. Diese Besonderheit ist im selben Wiki beschrieben, auf das ich zuvor verwiesen habe, im Unterabschnitt „HinzufĂŒgen einer Sprache zur Liste der Sprachen“.

Ich werde das Sprachpaket ohne Internetverbindung installieren.

Nach der vollstÀndigen Lokalisierung des Systems sollten Sie unbedingt ein System-Image erstellen.

Schritt 4 – Installation notwendiger Anwendungen

Da in den LTSB- und LTSC-Systemen kein App Store vorhanden ist, verursacht die Installation von Anwendungen aus dem „Microsoft Store“ einige Schwierigkeiten, insbesondere beim Herunterladen der Anwendung. Um das Herunterladen von Anwendungen zu erleichtern, hat das Unternehmen „Adguard“ einen sehr praktischen Dienst geschaffen – „Adguard Store“, mit dem Sie temporĂ€re Links zum Herunterladen von Anwendungen und deren Komponenten erhalten können.

FĂŒr die Installation der Anwendung benötigen Sie Dateien mit den Erweiterungen „Appx“ und „AppxBundle“. Bevor Sie die Anwendung selbst installieren, mĂŒssen Sie deren Komponenten installieren. In der Regel lassen sich die Komponenten einer Anwendung intuitiv am Dateinamen erkennen.

Um den Artikel nicht zu lang zu machen, werde ich den Installationsprozess der Anwendungen nicht im Detail beschreiben, zumal es eine detaillierte Anleitunggibt. Aber ich werde einen weiteren Installationsweg in dem aktuellen Benutzerkonto hinzufĂŒgen. Anwendungen können mit dem Programm „App Installer“installiert werden, aber fĂŒr die Installation von Anwendungen ist eine Internetverbindung erforderlich, dafĂŒr kann die Installation durch Doppelklick auf die Maus erfolgen und Sie benötigen keine Komponenten, alle notwendigen Komponenten werden heruntergeladen und installiert von „App Installer“.

Und eine kleine Erinnerung: Beim Installieren von Anwendungen im aktuellen Benutzerkonto kann das System nicht versiegelt werden. Wie Anwendungen installiert werden, damit das System versiegelt werden kann, sehen Sie in der oben erwĂ€hnten Anleitung. Um die Funktion des Multikiosk zu ĂŒberprĂŒfen, reichen die bereits vorhandenen Anwendungen völlig aus.

Schritt 5 – Erstellen einer Einstellungsdatei fĂŒr den Multikiosk

Nun sind wir beim Interessantesten angekommen – bei der Einstellung des Kioskmodus. Wir schauen in die Anleitung Einstellungen und sehen. ZunĂ€chst mĂŒssen wir eine Konfigurations-XML-Datei erstellen, ein vollstĂ€ndiges Beispiel davon können Sie hier ansehen.

Lass uns mit der Anordnung der Kacheln beginnen. Der einfachste Weg, eine XML-Konfigurationsdatei fĂŒr die Kacheln zu erstellen, ist den Export ihres aktuellen Zustands.

Zuerst fĂŒgen wir im StartmenĂŒ die Kacheln der Anwendungen hinzu, die wir benötigen. Wir öffnen die Suche mit „Win+s“, finden die benötigte Anwendung, klicken mit der rechten Maustaste darauf und wĂ€hlen die Option „An Start anheften“.

Ich habe die folgenden Anwendungen angeheftet:

  • Notepad
  • Taschenrechner
  • Internet Explorer
  • Paint
  • WordPad
  • Parameter
  • Windows-Sicherheit

Die letzten beiden Anwendungen wurden angeheftet, da in der Standardinstallation von LTSC keine weiteren universellen Anwendungen vorhanden sind. Bitte beachten Sie, dass die Kacheln klassischer Anwendungen auf VerknĂŒpfungen verweisen. Nun werde ich die angehefteten Kacheln im StartmenĂŒ in zwei Gruppen aufteilen, indem ich die Kacheln direkt im StartmenĂŒ verschiebe. Um eine neue Gruppe von Kacheln zu erstellen, ziehen Sie eine Kachel erheblich ĂŒber oder unter andere Kacheln, dabei wird ein intuitiv verstĂ€ndlicher Trenner angezeigt. Sie können die Gruppen nach Belieben benennen, indem Sie den Mauszeiger ĂŒber die Gruppe bewegen und, wenn die Aufforderung „Gruppe benennen“ erscheint, mit der linken Maustaste klicken. Die erste Gruppe werde ich „Einstellungen“ nennen, sie wird die Kacheln „Optionen“ und „Windows-Sicherheit“ enthalten. Die zweite Gruppe werde ich „BĂŒroanwendungen“ nennen, in die alle anderen Kacheln fallen. Übrigens können Sie auch ganze Gruppen von Kacheln verschieben, indem Sie sie an den zwei Streifen ziehen, die sich oben rechts vom Gruppennamen befinden.

Da der Name auf der Kachel „Windows-Sicherheit“ nicht vollstĂ€ndig passt, werde ich ihre GrĂ¶ĂŸe auf „Breit“ Ă€ndern. Um die GrĂ¶ĂŸe der Kachel zu Ă€ndern, klicken Sie mit der rechten Maustaste auf die Kachel und wĂ€hlen Sie die Option „GrĂ¶ĂŸe Ă€ndern“.

Nach der Konfiguration exportieren wir den aktuellen Zustand, indem wir den Befehl in der PowerShell-Umgebung ausfĂŒhren – „Export-StartLayout – path C:SysprepStartLayout.xml“.

Danach ist es am einfachsten, die Datei fĂŒr die Einstellungen nicht selbst zu erstellen, sondern hier ein Beispiel fĂŒr eine Datei zu nehmen Einstellungen – klicken Sie auf die SchaltflĂ€che „Copy“, fĂŒgen Sie den Inhalt in ein Notizbuch ein und speichern Sie ihn als „MultiAppKiosk.xml“. Jetzt Ă€ndern wir die Einstellungen nach Ihren WĂŒnschen. Um die Einstellungen fĂŒr die angehefteten Kacheln zu Ă€ndern, kopieren Sie den gesamten Block „StartLayoutCollection“ aus „StartLayout.xml“ in „MultiAppKiosk.xml“. Um Anwendungen zu den erlaubten hinzuzufĂŒgen, mĂŒssen die IDs der universellen Anwendungen im Abschnitt „AllowedApps“ eingefĂŒgt werden, und in denselben Block den vollstĂ€ndigen Pfad zu den ausfĂŒhrbaren Dateien klassischer Anwendungen, der in den Eigenschaften der VerknĂŒpfungen angegeben ist, auf die die Kacheln verweisen. Um schnell zur VerknĂŒpfung zu gelangen, klicken Sie mit der rechten Maustaste auf die angeheftete Kachel und navigieren Sie im MenĂŒ zu „Erweitert > Zu Dateispeicherort wechseln“. Beachten Sie, dass zur Angabe der ID der universellen Anwendung der Parameter „AppUserModelId“ verwendet wird, wĂ€hrend zur Angabe des vollstĂ€ndigen Pfades zur klassischen Anwendung der Parameter „DesktopAppPath“ verwendet wird. Und noch eine kleine Anmerkung: Wenn Sie planen, IE auf einem x64-System zu verwenden, mĂŒssen im Verzeichnis der erlaubten Anwendungen zwei Pfade fĂŒr die ausfĂŒhrbare Datei angegeben werden: „Program FilesInternet Exploreriexplore.exe“ und „Program Files (x86)Internet Exploreriexplore.exe“.

Zugriff auf die Ordner werde ich nicht gewĂ€hren, daher lösche ich den Abschnitt „FileExplorerNamespaceRestrictions“.

Die Anzeige der Taskleiste stört mich nicht, daher lasse ich im Abschnitt „Taskbar“ alles beim alten.

Im Beispiel sind zwei Profile angegeben, aber ich habe nur ein Profil, daher kann der Abschnitt mit dem zweiten Profil gelöscht werden. Achten Sie vor dem Löschen auf das Beispiel fĂŒr den automatischen Start der Anwendung mit Argumenten.

Im Abschnitt „Configs“ sind die Konten mit den Profilen verknĂŒpft; beachten Sie, dass viele Konten einem Profil zugeordnet werden können. Da ich jedoch nur an einem Konto interessiert bin, werde ich alle VerknĂŒpfungen außer der ersten entfernen – die Blöcke „Config“. In der verbleibenden VerknĂŒpfung gebe ich den Benutzernamen „User“ ein.

Ich habe eine solche Datei mit Parametern erhalten

MultiAppKiosk.xml

<![CDATA[
                    
                    
                      
                        
                          
                            
                            
                          
                          
                            
                            
                            
                            
                            
                          
                        
                      
                    
                  
              ]]>
          
          
      
  
  
      
          Benutzer

Wenn Sie Ihre XML-Dateien erstellen, vergessen Sie nicht, dass jeder Profil eine einzigartige ID haben muss, und zwar nicht nur innerhalb einer XML-Datei, sondern auch innerhalb eines Betriebssystems. Idealerweise, um keine Verwirrung zu stiften, können Sie jedes Mal eine neue Kennung erstellen; dies können Sie in PowerShell mit dem Befehl „[guid]::NewGuid()“ tun. Und speichern Sie die Datei unbedingt in der Kodierung „UTF-8“. Wenn die Datei in der Kodierung „ANSI“ gespeichert wird, erhalten Sie beim Erstellen des Vorbereitungspakets einen Fehler, wenn die XML-Datei kyrillische Schriftzeichen enthĂ€lt.

Schritt 6 – Anwendung der Multikiosk-Einstellungen

Betrachten wir zwei Möglichkeiten zur Anwendung der im Konfigurationsdatei beschriebenen Einstellungen. Die erste – ĂŒber das Vorbereitungspaket, das in ICD erstellt werden muss. FĂŒr einige mag diese Methode vertrauter sein. Die zweite – unter Verwendung des „MDM Bridge WMI Providers“, diese Methode schien mir bequemer.

Methode Nr. 1

Wer kein ICD hat, laden Sie das ADK herunter und installieren Sie es. Die Installation des ADK ist sehr einfach, die Komponenten können auf die Standardwerte belassen werden.

Starten Sie ICD, klicken Sie auf die Kachel „Erweiterte Vorbereitung“, geben Sie den Namen und den Ordner des Projekts an und klicken Sie auf „Weiter“. Im nĂ€chsten Fenster wĂ€hlen Sie „Alle Windows-Versionen fĂŒr Desktop-Computer“ aus und klicken Sie auf „Weiter“. Den Import des Vorbereitungspakets können Sie ĂŒberspringen, klicken Sie auf „Fertig“.

Erweitern Sie das Dropdown-MenĂŒ „Laufzeiteinstellungen“, erweitern Sie das UntermenĂŒ „AssignedAccess“ und wĂ€hlen Sie den Punkt „MultiAppAssignedAccessSettings“. Oben im mittleren Bereich des ICD-Fensters klicken Sie auf die SchaltflĂ€che „Durchsuchen“ und geben den Speicherort der XML-Datei mit den Einstellungen an. Zur Sicherheit können Sie das Projekt speichern, indem Sie „Strg+s“ drĂŒcken. In der oberen linken Ecke von ICD wĂ€hlen Sie „Exportieren“ und im Dropdown-MenĂŒ den Punkt „Vorbereitungspaket“. Als EigentĂŒmer wĂ€hlen Sie „IT-Administrator“, alle anderen Fragen können Sie durch Klicken auf „Weiter“ ĂŒberspringen, und schließlich klicken Sie auf „Erstellen“ und „Fertig“.

In dem installierten System vergessen Sie nicht, den Benutzer „User“ zu erstellen; diesen dĂŒrfen Sie nicht zur Gruppe „Administratoren“ hinzufĂŒgen, sonst funktioniert der Multikiosk nicht. Ich habe den Benutzer im Snap-In „Computerverwaltung“ mit einer unbegrenzten PasswortgĂŒltigkeit erstellt.

Jetzt starten wir das Vorbereitungs-Paket im zuvor installierten System. Nach der Anwendung des Vorbereitungs-Pakets wird das StartmenĂŒ und das fĂŒr den Administrator geĂ€ndert. Im linken Bereich des StartmenĂŒs sollten die SchaltflĂ€chen „Dokumente“, „Bilder“, „Einstellungen“ verschwinden. Wenn sich das StartmenĂŒ nicht geĂ€ndert hat, ist etwas schiefgelaufen. Das installierte Paket kann gelöscht werden, indem Sie das Fenster „Einstellungen > Konten > Zugriff auf das Arbeits- oder Studienkonto > HinzufĂŒgen oder Entfernen des Vorbereitungs-Pakets“ öffnen.

Wenn sich das StartmenĂŒ geĂ€ndert hat, wurden die Einstellungen auf das System angewendet. Melden Sie sich mit dem Benutzer an, fĂŒr den der MultiKiosk konfiguriert ist, und schauen Sie sich das Ergebnis an.

Methode Nr. 2

Anwendung der Einstellungen ĂŒber den „MDM Bridge WMI Provider“ hier beschrieben. Der Vorteil dieser Methode liegt in der FlexibilitĂ€t der Nutzung und der Möglichkeit, viele manuelle VorgĂ€nge zu vermeiden, die zur Erstellung eines Vorbereitungs-Pakets erforderlich sind. Hier kann jeder fĂŒr sich selbst eine Lösung finden, die ihm am besten passt. Ich habe mir eine Paar Skripte erstellt.

MiltiKiosk.bat – Skript zum Starten

@echo off
chcp 1251>nul

if not exist "%~dp0psexec.exe" call :ShowMessage "‡‡‡‡‡‡‡‡‡‡‡‡‡FĂŒr die AusfĂŒhrung des Skripts wird die Datei psexec.exe benötigt‡‡Um das Skript zu beenden, drĂŒcken Sie eine beliebige Taste"&pause>nul&exit

net session>nul 2>nul
if %errorLevel% neq 0 (powershell -command "Start-Process "%~s0" -Verb RunAs"&exit)

for /f "tokens=2 delims==" %%i in ('wmic useraccount where "Name='%UserName%'" get SID /value^|find "SID"') do set SID=%%i
reg add HKU%SID%SoftwareSysinternalsPsExec /v EulaAccepted /t REG_DWORD /d 1 /f

for /f %%i in ('dir "%~dp0%~n0*.ps1" /b /o:n') do set PSFilePath=%~dp0%%i
if not defined PSFilePath (echo PS-Dateien mit dem Anfangsnamen - "%~n0" nicht gefunden&pause&exit)
set PSFilePath=%PSFilePath: =` %
"%~dp0psexec.exe" -i -s powershell -command "Start-Process powershell.exe -ArgumentList '-ExecutionPolicy Unrestricted -Command %PSFilePath%'"

exit

:ShowMessage
    setlocal enabledelayedexpansion
    set String=%~1
    if not defined String (echo.&setlocal disabledelayedexpansion&goto :eof)
    set /a ConCols=120 & set /a Num=1
    set "String[!Num!].str=%String:‡=" & set /a Num+=1 & set "String[!Num!].str=%"
    for /l %%a in (1,1,%Num%) do (
        for /l %%b in (0,1,%ConCols%) do if "!String[%%a].str:~%%b!" == "" (set "String[%%a].str= !String[%%a].str! "&set /a String[%%a].len-=1) else (set /a String[%%a].len+=0||set /a String[%%a].len=0)
        if not defined String[%%a].str (set String[%%a].str= )
        if not !String[%%a].len! equ 0 (call set String[%%a].str=%%String[%%a].str:~,!String[%%a].len!%%)
        if "!String[%%a].str: =!"=="" (echo.) else (echo !String[%%a].str!))
    setlocal disabledelayedexpansion
goto :eof

MiltiKiosk_Ver.12.ps1 – Hauptskript

Funktion ConvertEncoding ([string]$Von, [string]$Zu) {
    Begin{$encVon = [System.Text.Encoding]::GetEncoding($Von);$encZu = [System.Text.Encoding]::GetEncoding($Zu)}
    Prozess{$bytes = $encZu.GetBytes($_);$bytes = [System.Text.Encoding]::Convert($encVon, $encZu, $bytes);$encZu.GetString($bytes) -replace [char]0, ''}
}

Funktion ZeigeNachricht ($Nachricht='', $Ausrichtung=0) {
    Versuch {$Ausrichtung = [decimal]$Ausrichtung} Fang {Return 'FĂŒr den Parameter Ausrichtung kann nur eine Zahl angegeben werden' | ConvertEncoding 'windows-1251' -To 'UTF-16'}
    wenn ($Nachricht -is [int]) {fĂŒr ($i=1; $i -le $Nachricht; $i++) {Write-Host}; RĂŒckkehr}
    wenn ([System.Text.Encoding]::Default.WindowsCodePage -eq 1252) {$Nachricht = $Nachricht | ConvertEncoding 'windows-1251' -To 'UTF-16'}
    wenn ($Nachricht -is [string]) {[array] $Nachricht = $Nachricht}
    foreach ($String in $Nachricht) {
        Versuch {$String = [int]$String} Fang {}
        wenn ($String -is [int]) {fĂŒr ($i=1; $i -le $String; $i++) {Write-Host}; weiter}
        wenn ($Host.UI.RawUI.BufferSize.Width -gt $String.Length) {
            wenn ($Ausrichtung -eq 0) {Write-Host $String
            } sonst {Write-Host ("{0}{1}" -f (' ' * (([Math]::Max(0, $Host.UI.RawUI.BufferSize.Width / $Ausrichtung) - [Math]::Floor($String.Length / $Ausrichtung)))), $String)}
        } sonst {Write-Host $String}
    } 
}

$script:NameSpace="rootcimv2mdmdmmap"
$script:ClassName="MDM_AssignedAccess"
$script:MultiAppKiosk = Get-CimInstance -Namespace $NameSpace -ClassName $ClassName
wenn (-not $MultiAppKiosk) {ZeigeNachricht -Nachricht (3, 'Fehler beim Abrufen des Einstellungsobjekts', 2, 'DrĂŒcken Sie "Enter", um die AusfĂŒhrung des Skripts zu beenden') -Ausrichtung 2; Read-Host; Exit}

Funktion HauptmenĂŒ() {
    ZeigeNachricht (13, ' 0 - Beenden', ' 1 - WÀhlen Sie die XML-Datei zur Installation aus', ' 2 - Aktuelle Konfiguration des Multikiosks anzeigen', ' 3 - Einstellungen des Multikiosks löschen', 1)
    $local:Eingabetext = 'WĂ€hlen Sie eine Aktion'
    wenn ([System.Text.Encoding]::Default.WindowsCodePage -eq 1252) {$Eingabetext = $Eingabetext | ConvertEncoding 'windows-1251' -To 'UTF-16'}

    $local:Auswahlen = 1..2
    WĂ€hrend ($true) {
        $Auswahl = Read-Host -Eingabeaufforderung $Eingabetext
        Switch ($Auswahl) {
            0 {exit}
            1 {XMLAuswahl}
            2 {ZeigeNachricht -Nachricht (1, 'Konfiguration beginnt') -Ausrichtung 2; Write-Host $MultiAppKiosk.Configuration; ZeigeNachricht -Nachricht ('Ende der Konfiguration', 1, 'DrĂŒcken Sie "Enter", um zum MenĂŒ zurĂŒckzukehren', 1) -Ausrichtung 2; Read-Host}
            3 {$MultiAppKiosk.Configuration = $Null; Set-CimInstance -CimInstance $MultiAppKiosk; ZeigeNachricht -Nachricht (1, 'Befehl zum Löschen der Einstellungen wurde ausgefĂŒhrt', 1) -Ausrichtung 2}
            STANDARD {ZeigeNachricht 'UngĂŒltiger Wert ausgewĂ€hlt'}
        }
        wenn ($Auswahlen -contains $Auswahl) {Clear-Host; ZeigeNachricht (15, ' 0 - Beenden', ' 1 - WÀhlen Sie die XML-Datei zur Installation aus', ' 2 - Aktuelle Konfiguration des Multikiosks anzeigen', ' 3 - Einstellungen des Multikiosks löschen', 1)}
    }
}

Funktion XMLAuswahl() {
    Clear-Host

    wenn (!(Test-Path -Pfad $PSScriptRoot'XML')) {ZeigeNachricht -Nachricht (13, 'Verzeichnis nicht gefunden', $('"'+$PSScriptRoot+'XML"'), 1, 'DrĂŒcken Sie "Enter", um zum vorherigen MenĂŒ zurĂŒckzukehren') -Ausrichtung 2; Read-Host; RĂŒckkehr}

    $local:XMLListe = @()
    $XMLListe += Get-ChildItem -Pfad $PSScriptRoot'XML' -name -filter '*.xml'
    wenn ($XMLListe.Count -eq  0) {ZeigeNachricht -Nachricht (13, 'Keine XML-Dateien im Verzeichnis gefunden', $('"'+$PSScriptRoot+'XML"'), 1, 'DrĂŒcken Sie "Enter", um zum vorherigen MenĂŒ zurĂŒckzukehren') -Ausrichtung 2; Read-Host; RĂŒckkehr}

    [int]$local:Einzug = 13 - $XMLListe.Count / 2; wenn ($Einzug -lt 1) {$Einzug = 1}
    ZeigeNachricht ($Einzug, ' 0 - ZurĂŒck zum vorherigen MenĂŒ')
    fĂŒr ($i=0; $i -le $XMLListe.GetUpperBound(0); $i++) {Write-Host $(' '+($i+1)+' - '+$XMLListe[$i])}
    Write-Host
    $local:Eingabetext = 'WĂ€hlen Sie die Datei zur Installation'
    wenn ([System.Text.Encoding]::Default.WindowsCodePage -eq 1252) {$Eingabetext = $Eingabetext | ConvertEncoding 'windows-1251' -To 'UTF-16'}

    $local:Auswahlen = 1..$XMLListe.Count
    $local:ZurĂŒckZumVorherigenMenĂŒ = 0
    WĂ€hrend ($ZurĂŒckZumVorherigenMenĂŒ -eq 0) {
        $Auswahl = Read-Host -Eingabeaufforderung $Eingabetext
        Switch ($Auswahl) {
            0 {$ZurĂŒckZumVorherigenMenĂŒ = 1}
            {$Auswahlen -contains $Auswahl} {ZeigeNachricht $('Dieser Befehl wendet die Einstellungen aus der Datei '+$XMLListe[$Auswahl-1]);
                $local:Konfiguration = (Get-Content -encoding UTF8 -path $($PSScriptRoot+'XML'+$XMLListe[$Auswahl-1]) -Raw).Trim()
                $local:GUIDs = [regex]::matches($Konfiguration, '{.+?}') | select -ExpandProperty Value | Get-Unique
                foreach ($GUID in $GUIDs) {$Konfiguration = $Konfiguration -replace $(''+$GUID),$('{'+[guid]::NewGuid()+'}')}
                $Konfiguration = $Konfiguration -replace '&','&' -replace '<','<' -replace '>','>' -replace "'",''' -replace '"','"'
                $MultiAppKiosk.Configuration = $Konfiguration
                Set-CimInstance -CimInstance $MultiAppKiosk
            }
            STANDARD {ZeigeNachricht ('UngĂŒltiger Wert ausgewĂ€hlt')} 
        }
    }
}

HauptmenĂŒ

Wenn Sie meine Lösung verwenden möchten, speichern Sie die oben genannten Skripte mit ihren Originalnamen in einen Ordner und legen Sie die Datei „PsExec.exe“ in denselben Ordner. In diesem Ordner erstellen Sie einen Ordner „XML“ und kopieren die XML-Dateien fĂŒr die Konfiguration des Multikiosks hinein. Ich werde dieselbe Datei verwenden wie im ersten Verfahren.

MultiAppKiosk.xml

<![CDATA[
                    
                    
                      
                        
                          
                            
                            
                          
                          
                            
                            
                            
                            
                            
                          
                        
                      
                    
                  
              ]]>
          
          
      
  
  
      
          Benutzer

Ein wenig zu den Besonderheiten des Skripts. Das Skript ist fĂŒr die Verwendung von XML-Dateien mit der Kodierung „UTF8“ vorgesehen. Wenn Sie die Kodierung „ANSI“ verwenden möchten, entfernen Sie das Parameter „encoding UTF8“ aus dem Dateileseparameter. In den Ordner „XML“ mĂŒssen XML-Dateien ohne Zeichenersetzung abgelegt werden; das Skript ersetzt die Sonderzeichen selbst durch die entsprechenden Bezeichnungen. Um nicht bei den GUIDs zur Benutzerbindung an Profile durcheinanderzukommen, können Sie einfach die Nummer oder den Namen des Benutzers in geschweifte Klammern angeben; alles, was sich in geschweiften Klammern befindet, wird durch die GUIDs ersetzt.

Die Verwendung des Skripts ist sehr einfach: Sie starten es und wĂ€hlen den gewĂŒnschten Punkt aus. Um die aktuelle Konfiguration in eine neue zu Ă€ndern, mĂŒssen Sie die aktuelle nicht unbedingt löschen, sie wird ĂŒberschrieben. Vergessen Sie nicht, die Benutzer zu erstellen, die in der Konfigurationsdatei angegeben sind.

Beim Anzeigen der aktuellen Konfiguration des Multikiosks in derselben Sitzung, in der sie angewendet wurde, werden anstelle der Sonderzeichen die Kombinationen der Ersatzzeichen angezeigt. Nach dem Wechsel der Sitzung (Neustart des Skripts) werden alle Sonderzeichen wieder in ihrer Originalform angezeigt.

Schritt 7 – Systemversiegelung

Der Multikiosk funktioniert, und das scheint alles zu sein...

Wenn alles nach Plan lÀuft, dann bemerken Sie etwas nicht.

Vergessen Sie nicht, dass wir das System auch von Audit- in den BegrĂŒĂŸungsmodus versetzen mĂŒssen. Nun sind wir bereit dafĂŒr, starten Sie „Sysprep.bat“, wĂ€hlen Sie Punkt 2, das System wird versiegelt. Schalten Sie das GerĂ€t ein, das System wird gestartet, melden Sie sich mit dem Benutzerkonto an, fĂŒr das der Multikiosk konfiguriert ist, und können sich nicht anmelden. Nach der Meldung „Willkommen“ erscheint die Meldung „Abmelden“.

ZunĂ€chst wollte ich nur die Lösung des Problems beschreiben, entschied mich aber spĂ€ter, die Schritte zur Identifizierung des Problems und zur Suche nach der einfachsten Lösung zu erlĂ€utern, da sicherlich viele Leser mit schwammigen Zweifeln kĂ€mpfen werden – "Was ist, wenn...". Ich denke, dass die Beschreibung verschiedener Experimente Ihnen erheblich Zeit sparen wird, falls Sie eine andere Lösung finden möchten. Um die Informationen so genau wie möglich zu gestalten und um sicherzustellen, dass es keine Fehler gibt, werde ich die Experimentbeschreibungen im Format "gemacht – aufgezeichnet" durchfĂŒhren. Das heißt, ich werde die beschriebenen Experimente noch einmal wiederholen.

Experimente

Was haben wir also herausgefunden. Im System gibt es zwei Benutzerkonten:

„Admin“ – in der Gruppe „Administratoren“
„User“ – in der Gruppe „Benutzer“
Im Audit-Modus funktionierte der Multitouch-Kiosk, und als wir es versiegelten – funktioniert es nicht.

Experiment 1

Wir entfernen das installierte Vorbereitungspaket, löschen im Snap-In „Computerverwaltung“ den Benutzer „User“ und erstellen einen neuen Benutzer mit dem Namen „User“, wenden das Vorbereitungspaket an, melden uns bei dem Benutzerkonto „User“ an – funktioniert nicht. Wir melden uns als „Admin“ an, löschen den Benutzer „User“ aus der Gruppe „Benutzer“, fĂŒgen ihn der Gruppe „Administratoren“ hinzu, melden uns als „User“ an – funktioniert nicht. Wir melden uns als „Admin“ an, entfernen das Vorbereitungspaket mit dem Multitouch-Kiosk, melden uns als „User“ an – der Zugriff hat funktioniert, aber der Multitouch-Modus funktioniert natĂŒrlich nicht, da das Vorbereitungspaket entfernt wurde.

Experiment 2

Wir laden das Systemimage hoch – das auf Russisch ĂŒbersetzte im Audit-Modus.

Das OS ist gestartet, wir drĂŒcken „Win+r“, da das sysprep-Fenster automatisch geschlossen wurde, fĂŒhren wir den Befehl „sysprep“ aus, im sich öffnenden Fenster starten wir „sysprep“. Die Einstellungen von sysprep im Fenster: „Wechsel zum Willkommen-Fenster des Systems (OOBE)“, „Vorbereitung zur Nutzung“, „Neustart“. Wir drĂŒcken „OK“ und warten auf die BegrĂŒĂŸung des OS. Bei der ersten Systemstart beantworten wir die Fragen: „Continue in selected language?“ – „Russisch“; Region – Russland; Tastaturlayout – Russisch; zweite Tastaturbelegung hinzufĂŒgen – ĂŒberspringen; „Lassen Sie uns Sie mit dem Netzwerk verbinden“ – „Vorerst ĂŒberspringen“; mit dem Internet verbinden – nein; Lizenzvereinbarung – akzeptieren; „Wer wird diesen Computer benutzen“ – „Test“; Passwort erstellen – ich lasse das Feld leer; bequeme Nutzung auf verschiedenen GerĂ€ten – nein; Datenschutzeinstellungen – akzeptieren. Das OS ist gestartet, im Tool „Computerverwaltung“ erstellen wir einen Benutzer mit dem Namen „User“, fĂŒgen das Vorbereitungspaket hinzu. Ergebnis – funktioniert nicht.

Experiment 3

Wir laden das Systemimage hoch – das auf Russisch ĂŒbersetzte im Audit-Modus.

Das OS ist gestartet, wir verbinden das System mit dem Internet, fĂŒhren den Befehl „gpedit.msc“ aus und aktivieren im Bereich „Windows Update“ die Einstellung „Empfohlene Updates ĂŒber die automatische Aktualisierung aktivieren“, zur Sicherheit starten wir neu. Im Update-Center drĂŒcken wir „Auf Updates prĂŒfen“ und starten neu, bis alle Updates installiert sind. Wir trennen das System vom Internet. Wir starten „sysprep“ im grafischen Modus und wiederholen alle Schritte, die im vorherigen Schritt zum Starten des „sysprep“-Tools beschrieben sind, bis zur HinzufĂŒgung des Vorbereitungspakets. Ergebnis – funktioniert nicht.

Experiment 4

Wir laden ein englischsprachiges Systemimage im Audit-Modus hoch.

Wir starten „sysprep“ im grafischen Modus, versiegeln das OS mit denselben Einstellungen wie im Experiment 2. Bei der ersten Systemstart wĂ€hlen wir dieselben Einstellungen wie im Experiment 2, mit Ausnahme der regionalen und sprachlichen Einstellungen, da die russische Sprache nicht verfĂŒgbar ist. Genauso erstellen wir den Benutzer „User“ und fĂŒgen das Vorbereitungspaket hinzu. Ergebnis – funktioniert. Das heißt, das Problem hĂ€ngt mit der Lokalisierung zusammen.

Experiment 5

Wir laden das Systemimage hoch – das auf Russisch ĂŒbersetzte im Audit-Modus.

Im Tool „Computerverwaltung“ erstellen wir den Benutzer „User“, fĂŒgen das Vorbereitungspaket hinzu, melden uns bei dem Konto „User“ an, der Multitouch funktioniert.

Melden Sie sich ab und melden Sie sich mit dem Konto „Admin“ an. Starten Sie PowerShell mit Administratorrechten, fĂŒhren Sie den Befehl „Dism /online /Get-Intl“ aus und sehen Sie „Standardsprache der BenutzeroberflĂ€che: en-US“.

Starten Sie von einem USB-Stick in WinPE, das Betriebssystem ist auf Laufwerk E. FĂŒhren Sie den Befehl „Dism /image:E: /Set-UILang:ru-ru“ aus. ÜberprĂŒfen Sie das Ergebnis, fĂŒhren Sie „Dism /image:E: /Get-Intl“ aus und sehen Sie „Standard-System-UI-Sprache: ru-RU“.

Wir melden uns im System mit dem Konto „User“ an; der Multikiosk funktioniert nicht.

Um die kausale Beziehung zur Problementstehung eindeutig festzuhalten, versuchen wir, den Multikiosk erneut sowohl in den funktionierenden als auch in den nicht funktionierenden Zustand zu versetzen.

Starten Sie von einem USB-Stick in WinPE, das Betriebssystem ist auf Laufwerk E. FĂŒhren Sie den Befehl „Dism /image:E: /Set-UILang:en-us“ aus. ÜberprĂŒfen Sie das Ergebnis, fĂŒhren Sie „Dism /image:E: /Get-Intl“ aus und sehen Sie „Standard-System-UI-Sprache: en-US“.

Wir melden uns im System mit dem Konto „User“ an; der Multikiosk funktioniert.

Starten Sie von einem USB-Stick in WinPE, das Betriebssystem ist auf Laufwerk E. FĂŒhren Sie den Befehl „Dism /image:E: /Set-UILang:ru-ru“ aus. ÜberprĂŒfen Sie das Ergebnis, fĂŒhren Sie „Dism /image:E: /Get-Intl“ aus und sehen Sie „Standard-System-UI-Sprache: ru-RU“.

Wir melden uns im System mit dem Konto „User“ an; der Multikiosk funktioniert nicht.

Das heißt, man kann eine klare AbhĂ€ngigkeit der FunktionsfĂ€higkeit des Kiosks vom Wert der Standardsprache der BenutzeroberflĂ€che erkennen. Gibt es vielleicht noch andere Faktoren, die die FunktionsfĂ€higkeit des Multikiosks beeinflussen?

Experiment 6

Zur Reinheit des Experiments installieren wir das System neu. Wir laden das System-Image – russifiziert im Audit-Modus.

Wir starten „sysprep“ im grafischen Modus, verschließen das Betriebssystem mit denselben Parametern wie wĂ€hrend Experiment 2. Wir warten auf die BegrĂŒĂŸung des Betriebssystems und beantworten die Fragen: „In ausgewĂ€hlter Sprache fortfahren?“ – „Englisch (Vereinigte Staaten)“; Region – Russland; Tastaturlayout – Russisch. Danach werden alle Parameter wie im Experiment 2 ausgewĂ€hlt.

ÜberprĂŒfen Sie die Parameter der Standardsprache der BenutzeroberflĂ€che. FĂŒhren Sie den Befehl „Dism /online /Get-Intl“ aus und sehen Sie „Standard-System-UI-Sprache: en-US“. In der Verwaltung „Computerverwaltung“ erstellen wir einen Benutzer „User“, fĂŒgen das Vorbereitungspaket hinzu, melden uns beim Konto „User“ an; der Multikiosk funktioniert.

Versuchen wir, den Kiosk zu sabotieren, indem wir die Standardsprache der BenutzeroberflĂ€che Ă€ndern. Wir melden uns beim Benutzer „Test“ an, der bei der ersten Systeminstallation erstellt wurde, und aktivieren die automatische Anmeldung, damit das System nicht sofort ins Konto „User“ startet. FĂŒhren Sie „netplwiz“ aus, wĂ€hlen Sie den Benutzer „Test“, deaktivieren Sie das KĂ€stchen „Benutzername und Passwort eingeben“ und wenden Sie die Parameter an.

Wir booten von einem USB-Stick in WinPE. Wir fĂŒhren den Befehl „Dism /image:E: /Set-UILang:de-DE“ aus. Wir schauen uns das Ergebnis an, fĂŒhren „Dism /image:E: /Get-Intl“ aus und sehen „Default system UI language: de-DE“.

Wir booten ins System und versuchen uns bei dem Konto „User“ anzumelden, der Multikiosk funktioniert. Das heißt, er lĂ€sst sich nicht hacken. Kann man ihn so zum Laufen bringen?

Experiment 7

Wir laden das Systemimage hoch – das auf Russisch ĂŒbersetzte im Audit-Modus.

Wir starten „Sysprep.bat“, wĂ€hlen Punkt 2 aus. Wir booten ins System, erstellen im Snap-In „Computerverwaltung“ den Benutzer „User“, fĂŒgen das Vorbereitungspaket hinzu, melden uns beim Konto „User“ an, der Multikiosk funktioniert nicht.

Wir booten von einem USB-Stick in WinPE. Wir fĂŒhren den Befehl „Dism /image:E: /Set-UILang:en-US“ aus. Wir schauen uns das Ergebnis an, fĂŒhren „Dism /image:E: /Get-Intl“ aus und sehen „Default system UI language: en-US“.

Wir booten ins System und versuchen uns bei dem Konto „User“ anzumelden, der Multikiosk funktioniert nicht.

Es stellt sich heraus, dass durch die Änderung der Standardeinstellung fĂŒr die BenutzeroberflĂ€chensprache der Multikiosk nur funktioniert, wenn das System im Auditmodus oder beim ersten Boot nach der Systemversiegelung ist. Das bedeutet, dass das System mit einer Antwortdatei versiegelt werden muss, in der die Systemsprache Englisch ausgewĂ€hlt ist, und anschließend mĂŒssen die Systemeinstellungen geĂ€ndert werden, damit die BenutzeroberflĂ€che Russisch ist. Keine sehr gute Lösung. Kann das Problem vielleicht durch die Installation eines Sprachpakets oder zusĂ€tzlicher Sprachpakete gelöst werden?

Experiment 8

Wir laden ein englischsprachiges Systemimage im Audit-Modus hoch.

Wir verbinden uns mit dem Internet, gehen in den Systemeinstellungen zum Abschnitt „Sprache“, wĂ€hlen „Sprache hinzufĂŒgen“, wĂ€hlen die Sprache „Russisch“, klicken auf „Weiter“, lassen die Installationsoptionen auf Standard, klicken auf „Installieren“, nach der Installation des Sprachpakets starten wir das System neu, jetzt ist es auf Russisch. Wir trennen das System vom Internet, starten „Sysprep.bat“ und wĂ€hlen Punkt 2 aus.

Nach dem Booten des Systems erstellen wir im Snap-In „Computerverwaltung“ den Benutzer „User“, fĂŒgen das Vorbereitungspaket hinzu, melden uns beim Konto „User“ an, der Multikiosk funktioniert nicht.

Experiment 9

Wir werden versuchen, das System vor der Installation im Offline-Modus zu lokalisieren. Dabei gibt es einen kurzen Einblick in die Lokalisierung des Distributionspakets.

Ich nehme einen USB-Stick mit einer sauberen Originaldistribution – X21-96381. Er wird als „E“ gemountet. FĂŒr das Mounten der Images erstelle ich Ordner: „c:MountInstall“, „c:MountWinre“, „c:MountBoot“. Ich nehme ein Set von Lokalisierungspaketen – X21-87814. Und kopiere davon in den Ordner „c:Mount“ die Pakete: „Microsoft-Windows-Client-Language-Pack_x86_ru-ru.cab“, „lp.cab“, „WinPE-Setup_ru-ru.cab“. Ich starte die Konsole mit Administratorrechten. Ich denke, dass die weiteren Befehle ohne Kommentare klar sein werden.

Lokalisierungsbefehle

cd c:mount
dism /Mount-Wim /WimFile:e:sourcesinstall.wim /index:1 /MountDir:Installcode
dism /Image:Install /Add-Package /PackagePath:Microsoft-Windows-Client-Language-Pack_x86_ru-ru.cabcode
dism /Image:Installcode /Set-AllIntl:ru-ru
dism /Image:Install /Set-TimeZone:"Russian Standard Time"code

dism /Mount-Wim /WimFile:InstallWindowsSystem32RecoveryWinre.wim /index:1 /MountDir:Winrecode
dism /Image:Winre /Add-Package /PackagePath:lp.cabcode
dism /Image:Winrecode /Set-AllIntl:ru-ru
dism /Image:Winre /Set-TimeZone:"Russian Standard Time"code
dism /Unmount-Image /MountDir:Winre /Commitcode

dism /Image:Install /Gen-LangINI /distribution:E: /Set-AllIntl:ru-RUcode
dism /image:Install /Set-SetupUILang:RU-ru /distribution:E:code
dism /Unmount-Image /MountDir:Install /Commitcode

dism /mount-wim /wimfile:e:sourcesboot.wim /index:1 /mountdir:Bootcode
dism /Image:Boot /Add-Package /PackagePath:lp.cabcode
dism /Image:Bootcode /Set-AllIntl:ru-ru
copy e:sourceslang.ini Bootsourceslang.inicode
dism /Unmount-Image /MountDir:Boot /Commitcode

dism /mount-wim /wimfile:e:sourcesboot.wim /index:2 /mountdir:Bootcode
dism /Image:Boot /Add-Package /PackagePath:lp.cabcode
dism /Image:Boot /Add-Package /PackagePath:WinPE-Setup_ru-ru.cabcode
dism /Image:Bootcode /Set-AllIntl:ru-ru
copy e:sourceslang.ini Bootsourceslang.ini /ycode
dism /Unmount-Image /MountDir:Boot /Commit

Wir starten von dem USB-Stick, wĂ€hlen die russische Sprache und installieren das System auf eine leere Festplatte. Wenn das System nach der Region fragt, drĂŒcken wir „Ctrl+Shift+F3“. Im Snap-In „Computerverwaltung“ erstellen wir den Benutzer „User“, fĂŒgen das Vorbereitungs-Paket hinzu, melden uns im Konto „User“ an, das Multitasking funktioniert nicht.

Wir booten vom USB-Stick in WinPE. Wir fĂŒhren den Befehl „Dism /image:E: /Set-UILang:en-us“ aus.

Wir starten in das System, versuchen uns im Konto „User“ anzumelden, das Multitasking funktioniert.

Es scheint, dass es nicht an den Methoden zum HinzufĂŒgen des Pakets liegt, wir versuchen, zusĂ€tzliche Pakete hinzuzufĂŒgen.

Experiment 10

Wir nehmen den USB-Stick, den wir im vorherigen Schritt vorbereitet haben.

Wir nehmen das Paket „Feat on Demand“ – X21-87815. Ich kopiere davon die Pakete in den Ordner „c:Mount“: „Microsoft-Windows-LanguageFeatures-Basic-ru-ru-Package~31bf3856ad364e35~x86~~.cab“, „Microsoft-Windows-LanguageFeatures-OCR-ru-ru-Package~31bf3856ad364e35~x86~~.cab“, „Microsoft-Windows-LanguageFeatures-Handwriting-ru-ru-Package~31bf3856ad364e35~x86~~.cab“, „Microsoft-Windows-LanguageFeatures-TextToSpeech-ru-ru-Package~31bf3856ad364e35~x86~~.cab“.

Wir nehmen das Paket „Feat on Demand RDX Updt“ – X21-99781. Aus diesem kopiere ich in den Ordner „c:Mount“ die Pakete: „Microsoft-Windows-RetailDemo-OfflineContent-Content-Package~31bf3856ad364e35~x86~~.cab“, „Microsoft-Windows-RetailDemo-OfflineContent-Content-ru-ru-Package~31bf3856ad364e35~x86~~.cab“.

Wir starten die Konsole mit Administratorrechten und fĂŒhren die Befehle aus:

Befehle

cd c:mount
dism /Mount-Wim /WimFile:e:sourcesinstall.wim /index:1 /MountDir:Install
dism /Add-Package /Image:Install /PackagePath:Microsoft-Windows-LanguageFeatures-Basic-ru-ru-Package~31bf3856ad364e35~x86~~.cab
dism /Add-Package /Image:Install /PackagePath:Microsoft-Windows-LanguageFeatures-OCR-ru-ru-Package~31bf3856ad364e35~x86~~.cab
dism /Add-Package /Image:Install /PackagePath:Microsoft-Windows-LanguageFeatures-Handwriting-ru-ru-Package~31bf3856ad364e35~x86~~.cab
dism /Add-Package /Image:Install /PackagePath:Microsoft-Windows-LanguageFeatures-TextToSpeech-ru-ru-Package~31bf3856ad364e35~x86~~.cab
dism /Add-Package /Image:Install /PackagePath:Microsoft-Windows-RetailDemo-OfflineContent-Content-Package~31bf3856ad364e35~x86~~.cab
dism /Add-Package /Image:Install /PackagePath:Microsoft-Windows-RetailDemo-OfflineContent-Content-ru-ru-Package~31bf3856ad364e35~x86~~.cab
dism /Unmount-Image /MountDir:Install /Commit

Wir booten von einem USB-Stick, wĂ€hlen die russische Sprache und installieren das System auf einer leeren Festplatte. Wenn das System nach der Region fragt, drĂŒcken wir „Ctrl+Shift+F3“. Im Snap-In „Computerverwaltung“ erstellen wir den Benutzer „User“, fĂŒgen das Vorbereitungs-Paket hinzu, melden uns bei dem Konto „User“ an. Ich erhielt einen schwarzen Bildschirm, der lange hĂ€ngen blieb, also habe ich einen Hard-Reboot des Systems durchgefĂŒhrt.

Wir entfernen das Vorbereitungspaket, melden uns als Benutzer „User“ an, starten das System neu, fĂŒgen das Vorbereitungspaket hinzu, Multikiosk funktioniert nicht.

Wir booten vom USB-Stick in WinPE. Wir fĂŒhren den Befehl „Dism /image:E: /Set-UILang:en-us“ aus.

Wir starten in das System, versuchen uns im Konto „User“ anzumelden, das Multitasking funktioniert.

Umgehung des Problems

Normale Helden. Gehen immer einen Umweg!

Verschiedene Methoden zur Installation von Lokalisierungspaketen haben das Problem nicht behoben, daher mĂŒssen wir beim ersten Start nach der Versiegelung die Sprache „en-us“ einstellen und die Spracheinstellungen nach dem ersten Start Ă€ndern.

Wir laden das Systemimage hoch – das auf Russisch ĂŒbersetzte im Audit-Modus.

In der Datei „Unattend.xml“ geben wir den Parameter „en-US“ ein, fĂŒhren „Sysprep.bat“ aus, wĂ€hlen Punkt 2 und schauen, was wir erreicht haben. Der BegrĂŒĂŸungsbildschirm ist auf Englisch, Multikiosk – funktioniert. Daher mĂŒssen wir in „Unattend.xml“ einen Befehl zur Änderung der BegrĂŒĂŸungssprache hinzufĂŒgen. DafĂŒr ist es notwendig, den Befehl „control intl.cpl,,/f:“ mit dem Verweis auf die Konfigurationsdatei auszufĂŒhren, in der festgelegt ist, dass die aktuellen Parameter in den BegrĂŒĂŸungsbildschirm kopiert werden. Der Inhalt der Konfigurationsdatei wird so aussehen.

Da die Einstellungen des aktuellen Benutzers kopiert werden, muss der Befehl nach dem Einloggen des Benutzers in das System ausgefĂŒhrt werden, was bedeutet, dass wir diese benötigen. Es gibt jedoch ein kleines „Aber“ – die AusfĂŒhrung erfolgt nach dem Einloggen des Benutzers mit Administratorrechten. Ich möchte keine zusĂ€tzliche Datei erstellen, die fĂŒr die erfolgreiche AusfĂŒhrung des Befehls erforderlich wĂ€re. Es ist besser, die gesamte Lösung in einer einzigen Datei – „Unattend.xml“ – umzusetzen. Dazu muss einfach der Befehl ausgefĂŒhrt werden, der die Konfigurationsdatei erstellt. Ich denke, ich werde die Konfigurationsdatei mit dem Befehl „echo“ in der Umgebung „cmd“ erstellen, aber dabei mĂŒssen die spitzen Klammern mit einem Zirkumflex maskiert werden. Das heißt, fĂŒr die Erstellung der Konfigurationsdatei ergibt sich folgender Befehl.

echo ^^^^^"Config.xml

Aber wir mĂŒssen diesen Befehl in eine XML einfĂŒgen, die ihre eigenen Anforderungen an die Verwendung von speziellen Zeichen hat:

Sonderzeichen
Ersatzwert

>
>)

<
(<

&
(&

‘
'

“
"

Um die Konfigurationsdatei zu erstellen, benötigten wir folgendermaßen den Befehl fĂŒr „FirstLogonCommands“.

cmd.exe /c echo ^^^^^>"%TMP%Config.xml"

Als nĂ€chstes fĂŒhren wir den Befehl mit der verwendeten Konfigurationsdatei aus.

control intl.cpl,,/f:"%TMP%Config.xml"

Danach löschen wir die zuvor erstellte Datei und starten das System neu, da die Änderungen nach dem Neustart wirksam werden.

cmd.exe /c del "%TMP%Config.xml" /q&shutdown /r /f /t 00

Das Ergebnis ist somit folgende Antwortdatei fĂŒr sysprep.

Unattend.xml

reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v SetupDisplayedProductKey /t REG_DWORD /d 1 /f
                    1
                    FĂŒgen Sie die SchlĂŒssel-Seite nicht hinzu
                
                
                    reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v UnattendCreatedUser /t REG_DWORD /d 1 /f
                    2
                    Kein Konto erstellen
                
                
                    cmd.exe /c rd %systemdrive%Sysprep /s /q
                    3
                    Ordner löschen
                
            
        
        
            
                true
                Admin
            
        
    
    
        
            en-US; ru-RU
            ru-RU
            en-US
            
            ru-RU
        
        
            
                true
                true
                true
                true
                true
                1
            
            
                
                    cmd.exe /c echo ^^^^^"%TMP%Config.xml"
                    Konfiguration erstellen
                    1
                
                
                    control intl.cpl,,/f:"%TMP%Config.xml"
                    Konfiguration verwenden
                    2
                
                
                    cmd.exe /c del "%TMP%Config.xml" /q&shutdown /r /f /t 00
                    Konfiguration löschen
                    3

ÜberprĂŒfen


Wir laden das Systemimage hoch – das auf Russisch ĂŒbersetzte im Audit-Modus.

Wir ersetzen die Datei Unattend.xml durch eine neue, fĂŒhren „Sysprep.bat“ aus, wĂ€hlen Punkt 2 und sehen, was wir erhalten haben. Beim ersten Booten wird der BegrĂŒĂŸungsbildschirm in englischer Sprache angezeigt, das System wird neu gestartet. Der BegrĂŒĂŸungsbildschirm ist in russischer Sprache, der Multitouch-Kiosk funktioniert.

Wenn Sie Fragen zur Konfiguration und Lizenzierung von Windows 10 IoT Enterprise haben, wenden Sie sich bitte an mse@quarta.ru oder auf die Website quarta-embedded.ru.
Antworten auf einige Fragen finden Sie in unserem Wiki oder auf unserem dem YouTube-Kanal

Autor des Beitrags: Wladimir Borisenkov, technischer Experte der Firma Kvarte Technologie.

Quelle: habr.com

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster