Windows 10 IoT Enterprise 2019 – Multikiosk-Modus

Einführung

Windows 10 IoT Enterprise 2019 – der Marketingname der nächsten Version von Windows 10. Die Veröffentlichung dieser Version wurde im September 2018 angekündigt, bzw. hat Version 1809, 18 – Jahr, 09 – Monat. Über die neue Version von Windows 10 1809 wurden viele Artikel geschrieben, die meisten widmen sich jedoch verschiedenen „Bögen“, „Schönheiten“ und verschiedenen Funktionen, die zu Hause gefragt sind.
Dieser Artikel konzentriert sich nur auf die Funktionalität, die bei Herstellern von Festzweckgeräten möglicherweise nachgefragt wird. Nämlich zu den Neuerungen des „Kiosk“-Modus. Das Thema der Namensänderung von Wartungsplänen für Unternehmens-Windows-Editionen wird ebenfalls angesprochen.

Altes Servicekonzept mit neuem Namen

Zunächst eine kleine Klarstellung: Im Enterprise-Segment der Windows-Editionen gibt es zwei Wartungsschemata, über die Windows Updates erhält. Servicepläne haben eine Buchstabenbezeichnung. Jetzt heißen die Servicezweige LTSC und SAC.

LTSC steht für Langzeitwartungskanal (mit Langzeitdienst). Zuvor hieß ein solcher Kanal LTSB – Long Term Servicing Branch, Microsoft änderte lediglich den Namen des Servicekanals, der Dienst selbst blieb derselbe.

Microsoft hat auch den Namen der CBB-Serviceniederlassung geändert – Current Branch for Business, jetzt heißt diese Serviceniederlassung SAC – Halbjahreskanal. Auch hier hat sich nur der Name geändert.

Es sollte jedoch erwähnt werden, dass die LTSC- und SAC-Wartungszweige unterschiedliche Windows-Distributionen verwenden.

Ein wenig über den neuen Kioskmodus in SAC

Wie gesagt, LTSC und SAC haben unterschiedliche Distributionen. LTSC verfügt nicht über standardmäßige universelle Apps und einen App Store, SAC jedoch schon. Dementsprechend verfügt LTSC nicht über einen Edge-Browser, SAC jedoch schon. Wenn Sie beim Einrichten des Kiosks den Edge-Browser auswählen, stehen Ihnen nun zwei Modi zur Verfügung:

  1. Wie ein digitales Schild oder ein interaktives Display
  2. Als öffentlicher Browser

Ich werde nicht näher auf die Einstellung dieser Modi eingehen, weil. Die Einrichtung ist sehr einfach und erfolgt über eine grafische Oberfläche. Erstellen Sie einfach einen Benutzer, der kein Mitglied der Administratorengruppe ist, aktivieren Sie für ihn den Kioskmodus mit EDGE und sehen Sie, wie diese Modi funktionieren.

Kiosk mit vielen Anwendungen

Manche Leute denken, dass dies eine lizenzierte Nutzung ist Windows 10 IoT-Unternehmen impliziert den Betrieb nur einer Anwendung auf dem Gerät, tatsächlich ist dies jedoch nicht der Fall. Das Gerät muss für eine einzelne Geschäftsaufgabe bestimmt sein und der Benutzer darf keinen Desktop-Zugriff haben. Jetzt hat Microsoft selbst ein Tool zur Verfügung gestellt, mit dem sich viele Anwendungen nutzen lassen. Dieser Modus wird „Multi-App-Kiosk“ genannt, im Folgenden werde ich ihn der Kürze halber „Multi-Kiosk“ nennen. In diesem Artikel betrachten wir die Einrichtung dieses Modus mithilfe des Softwarepakets und einiger Funktionen dieses Modus.

Ein wenig über den Multikiosk-Modus

Wenn Sie sich mit einem Benutzerkonto anmelden, das im Multikiosk-Modus konfiguriert ist, arbeitet das System im Tablet-Modus. Das Startmenü wird auf den Vollbildmodus erweitert und zeigt Anwendungskacheln an.

Die Liste der Grundeinstellungen und Funktionen des Modus:

  1. Einstellung für mehrere Benutzer oder Gruppen
  2. Jedem Benutzer oder jeder Gruppe können individuelle Einstellungen zugewiesen werden
  3. Möglichkeit zur Nutzung universeller und klassischer Apps
  4. Möglichkeit, eine der Anwendungen automatisch zu starten, wenn sich ein Benutzer anmeldet
  5. Arbeit der Anwendungen auf der Whitelist
  6. Zugriff auf Ordner auf der Whitelist

Es lohnt sich, Punkt 5 zu beachten. Standardmäßig dürfen nur die Anwendungen funktionieren, die für den Betrieb des Systems erforderlich sind. Die restlichen Anwendungen müssen zur Liste der zulässigen Anwendungen hinzugefügt werden. Diese. Jetzt müssen Sie AppLocker nicht mehr separat konfigurieren. Um widersprüchliche AppLocker-Einstellungen zu vermeiden, funktionieren im Multikiosk-Modus übrigens nicht alle konfigurierten AppLocker-Regeln.

Punkt 6 weist auf eine gute Möglichkeit hin, derzeit ist es jedoch möglich, Schreibrechte nur für den Ordner „Downloads“ zu erteilen. Der Modus ermöglicht die Nutzung von Universal- und Desktop-Apps. Alle Moduseinstellungen werden in einer XML-Datei angegeben, in der Sie auch Einstellungen für einen einzelnen App-Kiosk festlegen können.

Und jetzt versuchen wir, alles einzurichten ...

Was brauchen wir...

  1. Zunächst benötigen wir das System selbst, das den Multikiosk-Modus unterstützt. Hier können Sie es herunterladen Demoversion
  2. Anleitung zum Einrichten eines Multikiosks
  3. Jeder XML-Editor
  4. So wenden Sie Multikiosk-Einstellungen an:
    1. Für Methode Nummer 1 - ICD, die Teil des ADK ist. ADK kann скачать здесь
    2. Für Methode Nummer 2 – das Dienstprogramm PsExec. Das Dienstprogramm kann скачать здесь

Er sagte: „Lass uns gehen!“

Ich werde alle Experimente mit der kommerziellen Version von Windows 10 IoT Enterprise 1809 LTSC x32 durchführen, nicht mit der Demoversion. Das System wird ohne Aktivierung sein. die fehlende Aktivierung hat keinen Einfluss auf die Funktionalität des Systems. Ich habe nur 32 Bit verwendet, weil es weniger Platz beansprucht und mit Systemabbildern schneller funktioniert.

Schritt 1 – Installation

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

Für alle Fälle möchte ich Sie daran erinnern, das System nicht auf das installierte zu stellen. Wenn das Installationsprogramm nach dem Installationsort des Systems fragt, löschen Sie alle Partitionen auf der zukünftigen Systemfestplatte und geben Sie eine nicht partitionierte Festplatte an.

Wir stellen das System ohne Internetverbindung auf, damit das System nichts extra abruft.

Weil Da wir Backup-Images des Systems erstellen und es dafür im Audit-Modus versiegeln, können Sie etwas Zeit sparen, indem Sie das System direkt nach der Installation im Audit-Modus starten. Wenn Sie dazu vom System aufgefordert werden, eine Region auszuwählen: „Beginnen wir mit der Region. Ist das richtig? Drücken Sie einfach „Strg+Umschalt+F3“.

Schritt 2 – Erstellen Sie ein Systemabbild

Weil Wir werden das System verspotten, indem wir verschiedene neue Einstellungen ausprobieren. Dann ist es möglich, dass etwas schief geht und das System in seinen ursprünglichen Zustand zurückversetzt werden muss. Und für eine schnelle Rückkehr in den ursprünglichen Zustand müssen Sie ein Abbild des Systems erstellen. Das Einzige, was ich tun werde, ist, das „Gentleman-Set“ zu kopieren – das Skript und die Antwortdatei. Alle Dateien, die ich habe, befinden sich im Ordner „Sysprep“, den ich in das Stammverzeichnis des Systemlaufwerks kopieren werde. Und natürlich werde ich dieses „Gentleman-Set“ mit Ihnen teilen.

Sysprep.bat – um das System abzudichten.

@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 %AdminName%>nul 2>nul
if %errorLevel% neq 0 (call :AddAdmin "%AdminName%")
if %errorLevel% neq 0 (call :ShowMessage "‡‡‡Ошибка создания новой учетной записи администратора "%AdminName%"‡‡Нажмите любую клавишу для завершения работы скрипта"&pause>nul&exit)

pushd "%~dp0"

cls
call :ShowMessage ‡‡‡‡‡‡‡‡‡‡
echo  1 - Запечатать систему в режиме аудита
echo  2 - Запечатать систему в режиме приветствия
:Select
set /p Choice="Введите номер пункта меню: "
if "%Choice%"=="1" (goto Audit)
if "%Choice%"=="2" (goto OOBE)
echo.&echo Выбрано недопустимое значение.&goto Select

exit

:Audit
    call :ShowMessage "‡‡‡‡‡Запечатывание системы в режиме аудита"
    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 "‡‡‡‡‡Запечатывание системы в режиме приветствия"
    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 Не указано имя пользователя&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 %AdminGroup% %UserName% /add
    net localgroup %UserGroup% %UserName% /delete
    endlocal&exit /b 0
goto :eof

:GetGroupName
    if "%~1"=="" (echo Не указан SID группы&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 Ошибка определения имени группы по 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

Bei der Ausführung prüft das Skript, ob das Konto „Admin“ vorhanden ist, und erstellt es, falls es nicht vorhanden ist. Das Konto wird der Administratorengruppe hinzugefügt.

Unattend.xml ist die Antwortdatei für Sysprep.

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="specialize">
        <component name="Microsoft-Windows-Deployment" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <RunSynchronous>
                <RunSynchronousCommand wcm:action="add">
                    <Path>reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v SetupDisplayedProductKey /t REG_DWORD /d 1 /f</Path>
                    <Order>1</Order>
                    <Description>Dont show key page</Description>
                </RunSynchronousCommand>
                <RunSynchronousCommand wcm:action="add">
                    <Path>reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v UnattendCreatedUser /t REG_DWORD /d 1 /f</Path>
                    <Order>2</Order>
                    <Description>Dont make account</Description>
                </RunSynchronousCommand>
                <RunSynchronousCommand wcm:action="add">
                    <Path>cmd.exe /c rd %systemdrive%Sysprep /s /q</Path>
                    <Order>3</Order>
                    <Description>Del Folder</Description>
                </RunSynchronousCommand>
            </RunSynchronous>
        </component>
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <AutoLogon>
                <Enabled>true</Enabled>
                <Username>Admin</Username>
            </AutoLogon>
        </component>
    </settings>
    <settings pass="oobeSystem">
        <component name="Microsoft-Windows-International-Core" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <InputLocale>en-US; ru-RU</InputLocale>
            <SystemLocale>ru-RU</SystemLocale>
            <UILanguage>ru-RU</UILanguage>
            <UILanguageFallback></UILanguageFallback>
            <UserLocale>ru-RU</UserLocale>
        </component>
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <OOBE>
                <HideEULAPage>true</HideEULAPage>
                <HideLocalAccountScreen>true</HideLocalAccountScreen>
                <HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
                <HideOnlineAccountScreens>true</HideOnlineAccountScreens>
                <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
                <ProtectYourPC>1</ProtectYourPC>
            </OOBE>
        </component>
    </settings>
</unattend>

Wenn das Skript im Überwachungsmodus versiegelt ist, fügt es der Registrierung einen Befehl hinzu, um den Prozess „sysprep.exe“ zu beenden, damit das Sysprep-Fenster nicht jedes Mal manuell geschlossen werden muss. Beim Versiegeln im Hallo-Modus entfernt das Skript den Befehl zum Schließen des Fensters aus der Registrierung und ändert den Architekturwert in der Antwortdatei auf den aktuellen. Die Antwortdatei enthält Optionen zum Booten des Systems ohne Benutzerinteraktion und einen Befehl zum Löschen des Ordners „Sysprep“ im Stammverzeichnis des Systemlaufwerks.

Jetzt werde ich das System im Audit-Modus mit „Sysprep.bat“ versiegeln und ein Image des Systems erstellen. Ich werde das Systemabbild mit DISM erfassen und nur das Systemvolume erfassen. Wenn Sie nur ein Image des Systemvolumes und nicht der gesamten Festplatte erstellen möchten, vergessen Sie nicht, den Inhalt des Verzeichnisses „WindowsSystem32Recovery“ auf dem ersten Volume nach der Bereitstellung des Systems in den Ordner „RecoveryWindowsRE“ zu kopieren. Dies muss vor dem Laden des Betriebssystems erfolgen. Nach dem Laden des Betriebssystems ist das Verzeichnis „WindowsSystem32Recovery“ bereits leer.

Schritt 3 – Russifizierung des Systems

Das Sprachpaket kann ohne Internetverbindung installiert werden, wenn Sie über dieses Paket verfügen. Wenn nicht, lädt das System es selbst aus dem Internet herunter, wenn Sie die Sprache in den Einstellungen hinzufügen. Es ist lediglich nicht erforderlich, ein Sprachpaket von früheren Versionen des Betriebssystems zu übernehmen. Für Windows 10 1809 muss ein Sprachpaket speziell für Windows 10 1809 vorhanden sein.

Microsoft folgt seinem Plan, die Einstellungen schrittweise vom klassischen Menü auf das neue zu übertragen, so dass man in der klassischen Systemsteuerung keine Einstellungen mehr zum Ändern der Sprache und zum Installieren eines Sprachpakets finden wird. Diese Einstellungen gibt es jetzt nur noch in den Systemeinstellungen.

Im Überwachungsmodus kann es beim Öffnen der Systemeinstellungen über das Startmenü zu Problemen kommen. Um die Systemeinstellungen zu öffnen, führen Sie den Befehl „ms-settings:“ aus. Achten Sie auf den Doppelpunkt am Ende des Befehls. Ohne ihn wird der Befehl ausgeführt nicht arbeiten. Nach einmaligem Öffnen der Systemparameter mit diesem Befehl können diese über das grafische Menü geöffnet werden.

In den Systemeinstellungen können Sie jedoch ein Sprachpaket installieren. Wenn das System mit dem Internet verbunden ist, gibt es keine Option, ein Sprachpaket aus einer lokalen Datei zu installieren.

Ich werde den Prozess der Systemlokalisierung nicht beschreiben. Dies wird den Artikel erheblich verkomplizieren, insbesondere da der Lokalisierungsprozess detailliert ist hier beschrieben. Ich möchte Sie jedoch auf die Besonderheit aufmerksam machen, die Systemsprache nach der Installation des Sprachpakets über die Konsole zu ändern. Diese Funktion wird im gleichen Wiki beschrieben, zu dem ich zuvor im Unterabschnitt einen Link angegeben habe „Hinzufügen einer Sprache zur Liste der Sprachen“.

Ich werde das Sprachpaket ohne Internetverbindung installieren.

Nachdem das System vollständig lokalisiert wurde, erstellen Sie unbedingt ein Image des Systems.

Schritt 4 – Installieren der erforderlichen Anwendungen

Weil Da LTSB- und LTSC-Systeme über keinen App Store verfügen, bereitet die Installation von Apps aus dem „Microsoft Store“ einige Schwierigkeiten, nämlich das Herunterladen der App. Um Anwendungen herunterzuladen, hat die Firma Adguard einen sehr praktischen Dienst geschaffen – „Adguard Store“, mit dem Sie temporäre Download-Links für Anwendungen und deren Komponenten erhalten können.

Zur Installation der Anwendung benötigen Sie Dateien mit den Erweiterungen „Appx“ und „AppxBundle“. Bevor Sie die Anwendung selbst installieren, müssen Sie ihre Komponenten installieren. Komponenten einer Anwendung lassen sich in der Regel anhand des Dateinamens intuitiv unterscheiden.

Um den Artikel nicht zu lang zu machen, werde ich den Prozess der Installation von Anwendungen nicht im Detail beschreiben, zumal es einen gibt ausführliche Anleitung. Aber ich werde eine weitere Möglichkeit hinzufügen, Anwendungen auf dem aktuellen Konto zu installieren. Mit dem Programm können Anwendungen installiert werden App-Installer, aber um Anwendungen zu installieren, benötigen Sie eine Internetverbindung, Anwendungen können jedoch durch Doppelklick installiert werden und Sie benötigen keine Komponenten, alle erforderlichen Komponenten werden heruntergeladen und installiert App-Installer.

Und eine kleine Erinnerung: Wenn Sie die Anwendung auf dem Girokonto installieren, können Sie das System nicht versiegeln. Wie Sie Anwendungen installieren, damit Sie das System abdichten können, finden Sie in der obigen Anleitung. Und um die Funktion des Multikiosks zu überprüfen, reichen die vorhandenen Anwendungen aus.

Schritt 5 – Erstellen einer Konfigurationsdatei für den Multikiosk

Damit kamen wir zum Interessantesten – dem Einrichten des Kioskmodus. Wir schauen hinein Anweisung durch Einstellen und Sehen. Zunächst müssen wir eine XML-Konfigurationsdatei erstellen, ein vollständiges Beispiel dafür kann sein schau hier.

Beginnen wir mit der Einrichtung des Kachellayouts. Der einfachste Weg, eine XML-Konfiguration für die Kachelanpassung zu erstellen, ist Exportieren ihres aktuellen Zustands.

Fügen wir zunächst Kacheln der benötigten Anwendungen zum Startmenü hinzu. Rufen Sie die Suche „Win + s“ auf, suchen Sie die gewünschte Anwendung, klicken Sie mit der rechten Maustaste darauf und wählen Sie „An Startbildschirm anheften“.

Ich habe die folgenden Apps angepinnt:

  • Notizblock
  • Rechner
  • Internet Explorer
  • Lackieren
  • WordPad
  • Parameter
  • езопасность Windows

Die letzten beiden Anhänge wurden angepinnt. Es gibt einfach keine anderen universellen Anwendungen in der Standard-LTSC-Distribution. Beachten Sie, dass sich Desktop-App-Kacheln auf Verknüpfungen beziehen. Indem ich nun die Kacheln direkt in das Startmenü ziehe, teile ich die angehefteten Kacheln in zwei Gruppen auf. Um eine neue Gruppe von Kacheln zu erstellen, ziehen Sie eine Kachel deutlich über oder unter andere Kacheln. Die intuitive Trennlinie wird dann hervorgehoben. Sie können die Gruppen nach Belieben benennen. Platzieren Sie dazu den Mauszeiger über der Gruppe und klicken Sie mit der linken Maustaste, wenn die Aufschrift „Gruppe benennen“ erscheint. Ich nenne die erste Gruppe „Einstellungen“, sie enthält die Kacheln „Einstellungen“ und „Windows-Sicherheit“. Die zweite Gruppe werde ich „Office-Anwendungen“ nennen und alle anderen Kacheln umfassen. Übrigens können Sie ganze Gruppen von Kacheln verschieben, indem Sie sie an den beiden Balken ziehen, die sich oben rechts neben dem Gruppennamen befinden.

Weil Da die Kachel „Windows-Sicherheit“ nicht den gesamten Titel ausfüllt, ändere ich ihre Größe auf „Breit“. Um die Größe einer Kachel zu ändern, klicken Sie mit der rechten Maustaste auf die Kachel und wählen Sie „Größe ändern“.

Nach dem Festlegen exportieren wir den aktuellen Status und führen den Befehl in der PowerShell-Umgebung aus – „Export-StartLayout – Pfad C: SysprepStartLayout.xml“.

Darüber hinaus ist es am einfachsten, die Einstellungsdatei nicht selbst zu erstellen, sondern Nehmen Sie hier eine Beispieldatei Einstellungen – klicken Sie auf die Schaltfläche „Kopieren“, fügen Sie den Inhalt in den Editor ein und speichern Sie ihn als „MultiAppKiosk.xml“. Jetzt ändern wir die Einstellungen auf unsere eigenen. Um die Einstellungen der angehängten Kacheln zu ändern, kopieren Sie den gesamten Block „StartLayoutCollection“ von „StartLayout.xml“ nach „MultiAppKiosk.xml“. Um Anwendungen zu den zulässigen Anwendungen hinzuzufügen, müssen Sie die universellen Anwendungskennungen in den Abschnitt „AllowedApps“ einfügen und dort den vollständigen Pfad zu den ausführbaren Dateien der Desktop-Anwendung hinzufügen, der in den Eigenschaften der Verknüpfungen angegeben ist, auf die durch die Kacheln verwiesen wird Block. Um schnell zu einer Verknüpfung zu navigieren, klicken Sie mit der rechten Maustaste auf eine angeheftete Kachel und gehen Sie zum Menü „Mehr > Zum Dateispeicherort“. Beachten Sie, dass der Parameter „AppUserModelId“ zur Angabe der generischen App-ID und der Parameter „DesktopAppPath“ zur Angabe des vollständigen Pfads zur Desktop-App verwendet wird. Und noch eine kleine Nuance: Wenn Sie IE auf einem x64-System verwenden möchten, müssen Sie in der Liste der zulässigen Anwendungen zwei Pfade für die ausführbare Datei „ProgrammeInternet Exploreriexplore.exe“ und „Programme (x86)Internet Exploreriexplore“ angeben. exe".

Ich gebe keinen Zugriff auf Ordner und lösche daher den Abschnitt „FileExplorerNamespaceRestrictions“.

Die Anzeige der Taskleiste stört mich nicht, daher lasse ich im Bereich „Taskleiste“ alles so wie es ist.

Das Beispiel enthält zwei Profile, aber ich werde nur ein Profil haben, sodass der Abschnitt mit dem zweiten Profil gelöscht werden kann. Beachten Sie vor dem Löschen das Beispiel des automatischen Startens einer Anwendung mit Argumenten.

Im Abschnitt „Konfigurationen“ werden Konten mit Profilen verknüpft. Bitte beachten Sie, dass viele Konten mit einem Profil verknüpft werden können. Aber seit Mich interessiert nur ein Account, dann entferne ich alle Bindungen bis auf die erste – die „Config“-Blöcke. In die verbleibende Bindung schreibe ich den Benutzernamen „Benutzer“.

Ich habe diese Datei mit Parametern erhalten

MultiAppKiosk.xml

<?xml version="1.0" encoding="utf-8" ?>
<AssignedAccessConfiguration 
  xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config"
  xmlns:rs5="http://schemas.microsoft.com/AssignedAccess/201810/config"
  >
  <Profiles>
      <Profile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}">
          <AllAppsList>
              <AllowedApps>
                  <App AppUserModelId="WINDOWS.IMMERSIVECONTROLPANEL_CW5N1H2TXYEWY!MICROSOFT.WINDOWS.IMMERSIVECONTROLPANEL" />
                  <App AppUserModelId="Microsoft.Windows.SecHealthUI_cw5n1h2txyewy!SecHealthUI" />
                  <App DesktopAppPath="%windir%system32notepad.exe" />
                  <App DesktopAppPath="C:Program FilesInternet Exploreriexplore.exe" />
                  <App DesktopAppPath="%windir%system32win32calc.exe" />
                  <App DesktopAppPath="%windir%system32mspaint.exe" />
                  <App DesktopAppPath="%ProgramFiles%Windows NTAccessorieswordpad.exe" />
              </AllowedApps>
          </AllAppsList>
          <StartLayout>
              <![CDATA[<LayoutModificationTemplate xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout" Version="1" xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification">
                    <LayoutOptions StartTileGroupCellWidth="6" />
                    <DefaultLayoutOverride>
                      <StartLayoutCollection>
                        <defaultlayout:StartLayout GroupCellWidth="6">
                          <start:Group Name="Настройки">
                            <start:Tile Size="2x2" Column="0" Row="0" AppUserModelID="WINDOWS.IMMERSIVECONTROLPANEL_CW5N1H2TXYEWY!MICROSOFT.WINDOWS.IMMERSIVECONTROLPANEL" />
                            <start:Tile Size="4x2" Column="2" Row="0" AppUserModelID="Microsoft.Windows.SecHealthUI_cw5n1h2txyewy!SecHealthUI" />
                          </start:Group>
                          <start:Group Name="Офисные приложения">
                            <start:DesktopApplicationTile Size="2x2" Column="2" Row="2" DesktopApplicationLinkPath="%ALLUSERSPROFILE%MicrosoftWindowsStart MenuProgramsAccessoriesWordpad.lnk" />
                            <start:DesktopApplicationTile Size="2x2" Column="0" Row="0" DesktopApplicationLinkPath="%APPDATA%MicrosoftWindowsStart MenuProgramsAccessoriesNotepad.lnk" />
                            <start:DesktopApplicationTile Size="2x2" Column="2" Row="0" DesktopApplicationLinkPath="%ALLUSERSPROFILE%MicrosoftWindowsStart MenuProgramsAccessoriesCalculator.lnk" />
                            <start:DesktopApplicationTile Size="2x2" Column="0" Row="2" DesktopApplicationLinkPath="%ALLUSERSPROFILE%MicrosoftWindowsStart MenuProgramsAccessoriesPaint.lnk" />
                            <start:DesktopApplicationTile Size="2x2" Column="4" Row="0" DesktopApplicationLinkPath="%APPDATA%MicrosoftWindowsStart MenuProgramsAccessoriesInternet Explorer.lnk" />
                          </start:Group>
                        </defaultlayout:StartLayout>
                      </StartLayoutCollection>
                    </DefaultLayoutOverride>
                  </LayoutModificationTemplate>
              ]]>
          </StartLayout>
          <Taskbar ShowTaskbar="true"/>
      </Profile>
  </Profiles>
  <Configs>
      <Config>
          <Account>User</Account>
          <DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
      </Config>
  </Configs>
</AssignedAccessConfiguration>

Vergessen Sie beim Erstellen Ihrer Anpassungs-XML-Dateien nicht, dass jedes Profil eine eindeutige ID haben muss, und zwar nicht nur innerhalb einer XML-Datei, sondern innerhalb eines Betriebssystems. Diese. Um Verwirrung zu vermeiden, können Sie im Idealfall jedes Mal einen neuen Bezeichner erstellen. Dies kann in der PowerShell-Umgebung mit dem Befehl „[guid]::NewGuid()“ erfolgen. Und stellen Sie sicher, dass Sie die Datei in UTF-8-Kodierung speichern. Wenn die Datei in ANSI-Kodierung gespeichert ist, erhalten Sie beim Erstellen des Vorbereitungspakets eine Fehlermeldung, wenn die XML-Datei Kyrillisch enthält.

Schritt 6 – Multikiosk-Einstellungen anwenden

Betrachten wir zwei Möglichkeiten, die in der Konfigurationsdatei beschriebenen Einstellungen anzuwenden. Die erste Möglichkeit besteht in einem Bereitstellungspaket, das im ICD erstellt werden muss. Für jemanden wird diese Methode vielleicht vertrauter sein. Zweitens erschien mir diese Methode mit dem „MDM Bridge WMI Provider“ bequemer.

Methode # 1

Wer hat keinen ICD? Laden Sie ADK herunter und installieren. Die Installation des ADK ist sehr einfach, Sie können den Komponentensatz standardmäßig beibehalten.

Wir starten ICD, klicken auf die Kachel „Zusätzliche Vorbereitung“, geben den Namen und Ordner des Projekts an und klicken auf „Weiter“. Wählen Sie im nächsten Fenster „Alle Editionen von Windows für Desktop-Computer“ aus und klicken Sie auf „Weiter“. Sie können den Import des Vorbereitungspakets überspringen und auf „Fertig stellen“ klicken.

Erweitern Sie das Dropdown-Menü „Laufzeiteinstellungen“, erweitern Sie dann das Untermenü „AssignedAccess“ und wählen Sie das Element „MultiAppAssignedAccessSettings“ aus. Klicken Sie im oberen Teil des mittleren Bereichs des ICD-Fensters auf die Schaltfläche „Durchsuchen“ und geben Sie den Speicherort der XML-Datei mit den Einstellungen an. Für alle Fälle können Sie das Projekt speichern, indem Sie „Strg + s“ drücken. Wählen Sie im oberen linken Teil des ICD im Dropdown-Menü „Exportieren“ und dann den Punkt „Bereitstellungspaket“. Wählen Sie als Eigentümer „IT-Administrator“ aus. Alle anderen Fragen können übersprungen werden, indem Sie auf „Weiter“ klicken und am Ende auf „Erstellen“ und „Fertig stellen“ klicken.

Vergessen Sie nicht, im installierten System den Benutzer „Benutzer“ zu erstellen. Er kann nicht zur Gruppe „Administratoren“ hinzugefügt werden, da der Multikiosk sonst nicht funktioniert. Ich habe in der Computerverwaltung einen Benutzer mit einem unbegrenzten Passwort erstellt.

Nun führen wir das Vorbereitungspaket auf dem zuvor installierten System aus. Nach der Anwendung des Bereitstellungspakets ändern sich auch das Startmenü und der Administrator. In der linken Startspalte sollten die Schaltflächen verschwinden: „Dokumente“, „Bild“, „Optionen“. Wenn sich das Startmenü nicht geändert hat, ist ein Fehler aufgetreten. Ein installiertes Paket kann entfernt werden, indem Sie das Fenster „Einstellungen > Konten > Zugriff auf Geschäfts- oder Schulkonten > Bereitstellungspaket hinzufügen oder entfernen“ öffnen.

Wenn sich das Startmenü geändert hat, wurden die Einstellungen auf das System angewendet. Melden Sie sich als der Benutzer an, für den der Multikiosk konfiguriert ist, und sehen Sie sich das Ergebnis an.

Methode # 2

Anwenden von Einstellungen mit „MDM Bridge WMI Provider“ hier beschrieben. Der Vorteil dieser Methode liegt in der Flexibilität der Anwendung und der Möglichkeit, viele manuelle Vorgänge zu vermeiden, die zum Erstellen eines Vorbereitungspakets erforderlich sind. Hier kann jeder für sich selbst eine Entscheidung treffen, die für ihn bequem ist. Ich habe ein paar Skripte für mich selbst erstellt.

MiltiKiosk.bat – Skript zum Ausführen

@echo off
chcp 1251>nul

if not exist "%~dp0psexec.exe" call :ShowMessage "‡‡‡‡‡‡‡‡‡‡‡‡‡Для работы скрипта необходим файл psexec.exe‡‡Для завершения работы скрипта нажмите любую клавишу"&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 файлов с началом названия - "%~n0"&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

Function ConvertEncoding ([string]$From, [string]$To) {
    Begin{$encFrom = [System.Text.Encoding]::GetEncoding($From);$encTo = [System.Text.Encoding]::GetEncoding($To)}
    Process{$bytes = $encTo.GetBytes($_);$bytes = [System.Text.Encoding]::Convert($encFrom, $encTo, $bytes);$encTo.GetString($bytes) -replace [char]0, ''}
}

Function ShowMessage ($Message='', $Align=0) {
    Try {$Align = [decimal]$Align} Catch {Return 'Для параметра Align может быть указано только число' | ConvertEncoding 'windows-1251' -To 'UTF-16'}
    if ($Message -is [int]) {for ($i=1; $i -le $Message; $i++) {Write-Host}; Return}
    if ([System.Text.Encoding]::Default.WindowsCodePage -eq 1252) {$Message = $Message | ConvertEncoding 'windows-1251' -To 'UTF-16'}
    if ($Message -is [string]) {[array] $Message = $Message}
    foreach ($String in $Message) {
        Try {$String = [int]$String} Catch {}
        if ($String -is [int]) {for ($i=1; $i -le $String; $i++) {Write-Host}; continue}
        if ($Host.UI.RawUI.BufferSize.Width -gt $String.Length) {
            if ($Align -eq 0) {Write-Host $String
            } else {Write-Host ("{0}{1}" -f (' ' * (([Math]::Max(0, $Host.UI.RawUI.BufferSize.Width / $Align) - [Math]::Floor($String.Length / $Align)))), $String)}
        } else {Write-Host $String}
    } 
}

$script:NameSpace="rootcimv2mdmdmmap"
$script:ClassName="MDM_AssignedAccess"
$script:MultiAppKiosk = Get-CimInstance -Namespace $NameSpace -ClassName $ClassName
if (-not $MultiAppKiosk) {ShowMessage -Message (3, 'Ошибка получения объекта настроек', 2, 'Нажмите "Enter" для завершения рабты скрипта') -Align 2; Read-Host; Exit}

Function MainMenu() {
    ShowMessage (13, ' 0 - Выход', ' 1 - Выбрать XML-файл для установки', ' 2 - Показать текущую конфигурацию мультикиоска', ' 3 - Удалить настройки мультикиоска', 1)
    $local:PromptText = 'Выберите действие'
    if ([System.Text.Encoding]::Default.WindowsCodePage -eq 1252) {$PromptText = $PromptText | ConvertEncoding 'windows-1251' -To 'UTF-16'}

    $local:Selections = 1..2
    While ($true) {
        $Select = Read-Host -Prompt $PromptText
        Switch ($Select) {
            0 {exit}
            1 {XMLSelection}
            2 {ShowMessage -Message (1, 'Начало конфигурации') -Align 2; Write-Host $MultiAppKiosk.Configuration; ShowMessage -Message ('Конец конфигурации', 1, 'Для возврата в меню нажмите "Enter"', 1) -Align 2; Read-Host}
            3 {$MultiAppKiosk.Configuration = $Null; Set-CimInstance -CimInstance $MultiAppKiosk; ShowMessage -Message (1, 'Выполнена команда удаления настроек', 1) -Align 2}
            DEFAULT {ShowMessage 'Выбрано недопустимое значение'}
        }
        if ($Selections -contains $Select) {Clear-Host; ShowMessage (15, ' 0 - Выход', ' 1 - Выбрать XML-файл для установки', ' 2 - Показать текущую конфигурацию мультикиоска', ' 3 - Удалить настройки мультикиоска', 1)}
    }
}

Function XMLSelection() {
    Clear-Host

    if (!(Test-Path -Path $PSScriptRoot'XML')) {ShowMessage -Message (13, 'Не найден каталог', $('"'+$PSScriptRoot+'XML"'), 1, 'Нажмите "Enter" для возврвта в предыдущее меню') -Align 2; Read-Host; Return}

    $local:XMLList = @()
    $XMLList += Get-ChildItem -Path $PSScriptRoot'XML' -name -filter '*.xml'
    if ($XMLList.Count -eq  0) {ShowMessage -Message (13, 'Не найдено XML-файлов в каталоге', $('"'+$PSScriptRoot+'XML"'), 1, 'Нажмите "Enter" для возврвта в предыдущее меню') -Align 2; Read-Host; Return}

    [int]$local:Indent = 13 - $XMLList.Count / 2; if ($Indent -lt 1) {$Indent = 1}
    ShowMessage ($Indent, ' 0 - Вернуться в предыдущее меню')
    for ($i=0; $i -le $XMLList.GetUpperBound(0); $i++) {Write-Host $(' '+($i+1)+' - '+$XMLList[$i])}
    Write-Host
    $local:PromptText = 'Выберите файл для установки'
    if ([System.Text.Encoding]::Default.WindowsCodePage -eq 1252) {$PromptText = $PromptText | ConvertEncoding 'windows-1251' -To 'UTF-16'}

    $local:Selections = 1..$XMLList.Count
    $local:BackToPrevMenu = 0
    While ($BackToPrevMenu -eq 0) {
        $Select = Read-Host -Prompt $PromptText
        Switch ($Select) {
            0 {$BackToPrevMenu = 1}
            {$Selections -contains $Select} {ShowMessage $('Дана команда на применение настроек из файла '+$XMLList[$Select-1]);
                $local:Config = (Get-Content -encoding UTF8 -path $($PSScriptRoot+'XML'+$XMLList[$Select-1]) -Raw).Trim()
                $local:GUIDs = [regex]::matches($Config, '{.+?}') | select -ExpandProperty Value | Get-Unique
                foreach ($GUID in $GUIDs) {$Config = $Config -replace $(''+$GUID),$('{'+[guid]::NewGuid()+'}')}
                $Config = $Config -replace '&','&' -replace '<','<' -replace '>','>' -replace "'",''' -replace '"','"'
                $MultiAppKiosk.Configuration = $Config
                Set-CimInstance -CimInstance $MultiAppKiosk
            }
            DEFAULT {ShowMessage ('Выбрано недопустимое значение')} 
        }
    }
}

MainMenu

Wenn Sie meine Lösung verwenden möchten, speichern Sie die oben genannten Skripte mit ihren ursprünglichen Namen in einem Ordner und legen Sie die Datei PsExec.exe im selben Ordner ab. Erstellen Sie im selben Ordner einen „XML“-Ordner und kopieren Sie die XML-Dateien dorthin, um den Multikiosk zu konfigurieren. Ich werde dieselbe Datei wie bei der ersten Methode verwenden.

MultiAppKiosk.xml

<?xml version="1.0" encoding="utf-8" ?>
<AssignedAccessConfiguration 
  xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config"
  xmlns:rs5="http://schemas.microsoft.com/AssignedAccess/201810/config"
  >
  <Profiles>
      <Profile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}">
          <AllAppsList>
              <AllowedApps>
                  <App AppUserModelId="WINDOWS.IMMERSIVECONTROLPANEL_CW5N1H2TXYEWY!MICROSOFT.WINDOWS.IMMERSIVECONTROLPANEL" />
                  <App AppUserModelId="Microsoft.Windows.SecHealthUI_cw5n1h2txyewy!SecHealthUI" />
                  <App DesktopAppPath="%windir%system32notepad.exe" />
                  <App DesktopAppPath="C:Program FilesInternet Exploreriexplore.exe" />
                  <App DesktopAppPath="%windir%system32win32calc.exe" />
                  <App DesktopAppPath="%windir%system32mspaint.exe" />
                  <App DesktopAppPath="%ProgramFiles%Windows NTAccessorieswordpad.exe" />
              </AllowedApps>
          </AllAppsList>
          <StartLayout>
              <![CDATA[<LayoutModificationTemplate xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout" Version="1" xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification">
                    <LayoutOptions StartTileGroupCellWidth="6" />
                    <DefaultLayoutOverride>
                      <StartLayoutCollection>
                        <defaultlayout:StartLayout GroupCellWidth="6">
                          <start:Group Name="Настройки">
                            <start:Tile Size="2x2" Column="0" Row="0" AppUserModelID="WINDOWS.IMMERSIVECONTROLPANEL_CW5N1H2TXYEWY!MICROSOFT.WINDOWS.IMMERSIVECONTROLPANEL" />
                            <start:Tile Size="4x2" Column="2" Row="0" AppUserModelID="Microsoft.Windows.SecHealthUI_cw5n1h2txyewy!SecHealthUI" />
                          </start:Group>
                          <start:Group Name="Офисные приложения">
                            <start:DesktopApplicationTile Size="2x2" Column="2" Row="2" DesktopApplicationLinkPath="%ALLUSERSPROFILE%MicrosoftWindowsStart MenuProgramsAccessoriesWordpad.lnk" />
                            <start:DesktopApplicationTile Size="2x2" Column="0" Row="0" DesktopApplicationLinkPath="%APPDATA%MicrosoftWindowsStart MenuProgramsAccessoriesNotepad.lnk" />
                            <start:DesktopApplicationTile Size="2x2" Column="2" Row="0" DesktopApplicationLinkPath="%ALLUSERSPROFILE%MicrosoftWindowsStart MenuProgramsAccessoriesCalculator.lnk" />
                            <start:DesktopApplicationTile Size="2x2" Column="0" Row="2" DesktopApplicationLinkPath="%ALLUSERSPROFILE%MicrosoftWindowsStart MenuProgramsAccessoriesPaint.lnk" />
                            <start:DesktopApplicationTile Size="2x2" Column="4" Row="0" DesktopApplicationLinkPath="%APPDATA%MicrosoftWindowsStart MenuProgramsAccessoriesInternet Explorer.lnk" />
                          </start:Group>
                        </defaultlayout:StartLayout>
                      </StartLayoutCollection>
                    </DefaultLayoutOverride>
                  </LayoutModificationTemplate>
              ]]>
          </StartLayout>
          <Taskbar ShowTaskbar="true"/>
      </Profile>
  </Profiles>
  <Configs>
      <Config>
          <Account>User</Account>
          <DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
      </Config>
  </Configs>
</AssignedAccessConfiguration>

Ein wenig über die Funktionen des Skripts. Das Skript ist für die Verwendung von XML-Dateien mit „UTF8“-Kodierung konzipiert. Wenn Sie die „ANSI“-Kodierung verwenden möchten, entfernen Sie den Parameter „encoding UTF8“ aus dem Dateileseparameter. Es ist notwendig, XML-Dateien im Ordner „XML“ abzulegen, ohne Zeichen zu ersetzen, das Skript selbst ersetzt die Sonderzeichen durch die entsprechenden Bezeichnungen. Um bei der Verknüpfung von Benutzern mit Profilen nicht durcheinander zu geraten, können Sie einfach die Nummer oder den Benutzernamen in geschweiften Klammern angeben, alle Inhalte in geschweiften Klammern werden durch GUIDs ersetzt.

Die Verwendung des Skripts ist sehr einfach: Führen Sie es aus und wählen Sie das gewünschte Element aus. Um die aktuelle Konfiguration in eine neue zu ändern, ist es nicht notwendig, die aktuelle zu löschen, sie wird überschrieben. Vergessen Sie nicht, Benutzer zu erstellen, die in der Konfigurationsdatei angegeben sind.

Wenn Sie die aktuelle Multikiosk-Konfiguration in derselben Sitzung anzeigen, in der sie angewendet wurde, werden anstelle von Sonderzeichen Kombinationen von Ersatzzeichen angezeigt. Nach einem Sitzungswechsel (Neustart des Skripts) werden alle Sonderzeichen in ihrer ursprünglichen Form angezeigt.

Schritt 7 – Versiegeln des Systems

Der Multikiosk funktioniert, das ist alles, wie es scheint ...

Wenn alles nach Plan läuft, dann fehlt Ihnen etwas.

Vergessen Sie nicht, dass wir das System noch vom Audit-Modus in den Willkommensmodus versetzen müssen. Nun, wir sind dafür bereit, wir starten „Sysprep.bat“, wählen Punkt 2, das System ist versiegelt. Wir schalten das Gerät ein, das System fährt hoch, wir geben das Benutzerkonto ein, für das der Multikiosk konfiguriert ist, und wir können uns nicht anmelden. Nach der Aufschrift „Willkommen“ erscheint die Aufschrift „Abmelden“.

Zuerst wollte ich nur die Lösung des Problems beschreiben, aber später beschloss ich, die Schritte zu beschreiben, um das Problem zu identifizieren und die einfachste Lösung zu finden. Sicherlich werden viele Leser von vagen Zweifeln gequält – „Und wenn so ...“. Ich denke, dass die Beschreibung verschiedener Experimente Ihnen einen erheblichen Teil der Zeit ersparen wird, wenn Sie eine andere Lösung finden möchten. Damit die Informationen möglichst genau sind und um noch einmal sicherzustellen, dass keine Fehler vorliegen, beschreibe ich die Experimente im Format „erledigt – aufgezeichnet“. Diese. Ich werde die beschriebenen Experimente noch einmal durchführen.

Experimente

Was haben wir bekommen. Das System verfügt über zwei Konten:

„Admin“ – in der Gruppe „Administratoren“.
„Benutzer“ – in der Gruppe „Benutzer“.
Im Audit-Modus funktionierte der Multikiosk, versiegelt - er funktioniert nicht.

Experiment 1

Wir löschen das installierte Vorbereitungspaket, löschen im Snap-In „Computerverwaltung“ den Benutzer „Benutzer“ und erstellen einen neuen Benutzer mit dem Namen „Benutzer“, wenden das Vorbereitungspaket an, gehen zum Konto „Benutzer“ – das tut es nicht arbeiten. Wir gehen unter den Namen „Admin“, löschen den Benutzer „Benutzer“ aus der Gruppe „Benutzer“, fügen ihn der Gruppe „Administratoren“ hinzu, gehen unter den Namen „Benutzer“ – es funktioniert nicht. Wir gehen unter den Namen „Admin“, löschen das Multikiosk-Vorbereitungspaket, gehen unter den Namen „Benutzer“ – wir haben es geschafft, einzutreten, aber der Multikiosk-Modus funktioniert natürlich nicht. Das Bereitstellungspaket wurde entfernt.

Experiment 2

Wir füllen das Bild des Systems aus – russifiziert im Prüfmodus.

Das Betriebssystem ist geladen, drücken Sie „Win + r“, denn. Nachdem sich das Sysprep-Fenster geschlossen hat, führen wir automatisch den Befehl „sysprep“ aus. Führen Sie im sich öffnenden Fenster „sysprep“ aus. sysprep'a-Einstellungen im Fenster: „Gehe zum System-Willkommensfenster (OOBE)“, „Vorbereitung für die Verwendung“, „Neustart“. Klicken Sie auf „OK“ und warten Sie auf die Begrüßung des Betriebssystems. Wir beantworten Fragen beim ersten Systemstart: „In ausgewählter Sprache fortfahren?“ - "Russisch"; Region - Russland; Tastaturlayout - Russisch; ein zweites Tastaturlayout hinzufügen – überspringen; „Wir verbinden Sie mit dem Netzwerk“ – „Vorerst überspringen“; mit dem Internet verbinden – nein; Lizenzvereinbarung - akzeptieren; „Wer wird diesen Computer benutzen“ – „Test“; Erstellen Sie ein Passwort – lassen Sie das Feld leer; bequemes Arbeiten auf verschiedenen Geräten - nein; Datenschutzeinstellungen - akzeptieren. Das Betriebssystem wurde geladen. Erstellen Sie im Snap-In „Computerverwaltung“ einen Benutzer mit dem Namen „Benutzer“ und fügen Sie das Vorbereitungspaket hinzu. Das Ergebnis funktioniert nicht.

Experiment 3

Wir füllen das Bild des Systems aus – russifiziert im Prüfmodus.

Das Betriebssystem ist hochgefahren, wir verbinden das System mit dem Internet, führen den Befehl „gpedit.msc“ aus und aktivieren im Abschnitt „Windows Update“ die Option „Empfohlene Updates durch automatische Updates aktivieren“, für den Fall eines Neustarts . Klicken Sie im Update Center auf „Nach Updates suchen“ und starten Sie neu, bis alle Updates installiert sind. Wir trennen das System vom Internet. Wir führen „sysprep“ im grafischen Modus aus und wiederholen alle Schritte, die im vorherigen Schritt beschrieben wurden, von der Ausführung des Dienstprogramms „sysprep“ bis zum Hinzufügen des Bereitstellungspakets. Das Ergebnis funktioniert nicht.

Experiment 4

Wir füllen das Bild des Systems aus – Englisch im Audit-Modus.

Wir führen „sysprep“ im grafischen Modus aus und versiegeln das Betriebssystem mit denselben Parametern wie bei Experiment 2. Beim ersten Start des Systems wählen wir dieselben Parameter wie bei Experiment 2, mit Ausnahme der Regions- und Sprachparameter. es gibt keine russische Sprache. Auf die gleiche Weise erstellen wir den Benutzer „User“ und fügen das Bereitstellungspaket hinzu. Ergebnis – es funktioniert. Diese. Das Problem liegt in der Lokalisierung.

Experiment 5

Wir füllen das Bild des Systems aus – russifiziert im Prüfmodus.

Im Snap-In „Computerverwaltung“ erstellen wir den Benutzer „Benutzer“, fügen das Vorbereitungspaket hinzu, gehen zum Konto „Benutzer“, der Multikiosk funktioniert.

Wir melden uns vom Konto ab und gehen zum Konto „Admin“. Wir starten PowerShell mit Administratorrechten, führen den Befehl „Dism /online /Get-Intl“ aus und sehen „Standard-Benutzeroberflächensprache: en-US“.

Wir booten vom Flash-Laufwerk in WinPE, das bereitgestellte Betriebssystem befindet sich auf meinem E-Laufwerk. Wir führen den Befehl „Dism / image: E: / Set-UILang: ru-ru“ aus. Wir schauen uns das Ergebnis an, führen „Dism /image:E: /Get-Intl“ aus und sehen „Standardsystem-UI-Sprache: ru-RU“.

Wir booten das System, melden uns beim „Benutzer“-Konto an, der Multikiosk funktioniert nicht.

Um den Ursache-Wirkungs-Zusammenhang des Auftretens des Problems klar zu klären, versuchen wir noch einmal, den Multikiosk funktionsfähig und nicht funktionsfähig zu machen.

Wir booten vom Flash-Laufwerk in WinPE, das bereitgestellte Betriebssystem befindet sich auf meinem E-Laufwerk. 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 „Standardsystem-UI-Sprache: en-US“.

Wir booten das System, melden uns beim „Benutzer“-Konto an, der Multikiosk funktioniert.

Wir booten vom Flash-Laufwerk in WinPE, das bereitgestellte Betriebssystem befindet sich auf meinem E-Laufwerk. Wir führen den Befehl „Dism / image: E: / Set-UILang: ru-ru“ aus. Wir schauen uns das Ergebnis an, führen „Dism /image:E: /Get-Intl“ aus und sehen „Standardsystem-UI-Sprache: ru-RU“.

Wir booten das System, melden uns beim „Benutzer“-Konto an, der Multikiosk funktioniert nicht.

Diese. Sie können eine deutliche Abhängigkeit des Kioskzustands von der Standardeinstellung der UI-Sprache erkennen. Vielleicht gibt es noch andere Faktoren, die die Leistung des Multikiosks beeinflussen?

Experiment 6

Für die Reinheit des Experiments laden wir das System neu. Wir füllen das Bild des Systems aus – russifiziert im Prüfmodus.

Wir führen „sysprep“ im grafischen Modus aus, versiegeln das Betriebssystem mit den gleichen Parametern wie bei Experiment 2. Wir warten auf die Begrüßung des Betriebssystems und die Beantwortung der Fragen: „Weiter in ausgewählter Sprache?“ - "Englisch (USA)"; Region - Russland; Tastaturlayout - Russisch. Darüber hinaus werden alle Parameter wie in Experiment 2 gewählt.

Wir betrachten die Parameter des Standardwerts für die Sprache der Benutzeroberfläche. Wir führen den Befehl „Dism / online / Get-Intl“ aus und sehen „Standard-System-UI-Sprache: en-US“. Im Snap-In „Computerverwaltung“ erstellen wir den Benutzer „Benutzer“, fügen das Vorbereitungspaket hinzu, gehen zum Konto „Benutzer“, der Multikiosk funktioniert.

Es wird versucht, den Kiosk durch Ändern der Standardsprache der Benutzeroberfläche zu zerstören. Wir gehen in den „Test“-Benutzer, der beim ersten Booten des Systems erstellt wurde, und aktivieren für ihn die automatische Anmeldung, damit das System nicht sofort mit dem „Benutzer“-Konto bootet. Wir führen „netplwiz“ aus, wählen den Benutzer „Test“ aus, deaktivieren das Kontrollkästchen „Benutzername und Passwort erforderlich“ und übernehmen die Parameter.

Booten von einem Flash-Laufwerk in WinPE. Wir führen den Befehl „Dism / image: E: / Set-UILang: ru-ru“ aus. Wir schauen uns das Ergebnis an, führen „Dism /image:E: /Get-Intl“ aus und sehen „Standardsystem-UI-Sprache: ru-RU“.

Wir booten das System, versuchen uns beim „Benutzer“-Konto anzumelden, der Multikiosk funktioniert. Diese. es kann nicht gebrochen werden. Ist es möglich, dass es so funktioniert?

Experiment 7

Wir füllen das Bild des Systems aus – russifiziert im Prüfmodus.

Wir starten „Sysprep.bat“, wählen Punkt 2. Wir booten in das System, erstellen im Snap-In „Computerverwaltung“ den Benutzer „Benutzer“, fügen das Vorbereitungspaket hinzu, gehen zum Konto „Benutzer“, dem Multikiosk funktioniert nicht.

Booten von einem Flash-Laufwerk 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 „Standardsystem-UI-Sprache: en-US“.

Wir booten das System, wir versuchen, das „Benutzer“-Konto einzugeben, der Multikiosk funktioniert nicht.

Es stellt sich heraus, dass Sie durch Ändern der Standardeinstellung für die Sprache der Benutzeroberfläche die Leistung des Multikiosks nur dann beeinflussen können, wenn sich das System im Überwachungsmodus befindet oder beim ersten Start, nachdem das System versiegelt wurde. Und das bedeutet, dass Sie das System mit einer Antwortdatei versiegeln müssen, in der die Systemsprache Englisch ist, und dann die Systemeinstellungen so ändern müssen, dass die Schnittstelle Russisch ist. Keine sehr gute Lösung. Kann das Problem durch die Installation eines Sprachpakets oder die Installation zusätzlicher Sprachpakete gelöst werden?

Experiment 8

Wir füllen das Bild des Systems aus – Englisch im Audit-Modus.

Wir stellen eine Verbindung zum Internet her, gehen in den Systemparametern zum Abschnitt „Sprache“, wählen „Sprache hinzufügen“, wählen die Sprache „Russisch“, klicken auf „Weiter“, belassen die Installationsoptionen standardmäßig und klicken anschließend auf „Installieren“. Installieren Sie das Sprachpaket, starten Sie das System neu, jetzt auf Russified. Wir trennen das System vom Internet, führen „Sysprep.bat“ aus und wählen Punkt 2 aus.

Nachdem wir das System im Snap-In „Computerverwaltung“ geladen haben, erstellen wir den Benutzer „Benutzer“, fügen das Vorbereitungspaket hinzu, gehen zum Konto „Benutzer“, der Multikiosk funktioniert nicht.

Experiment 9

Versuchen wir, das System vor der Installation im Offline-Modus zu russifizieren. Gleichzeitig wird es ein kurzes Aufklärungsprogramm zur Lokalisierung der Verbreitung geben.

Ich nehme ein Flash-Laufwerk mit einem sauberen Original-Verteilungskit - X21-96381. Es wird das Laufwerk „E“ sein. Um Bilder zu mounten, erstelle ich Ordner: „c: MountInstall“, „c: MountWinre“, „c: MountBoot“. Ich nehme eine Reihe von Lokalisierungspaketen – X21-87814. Und ich kopiere Pakete daraus in den Ordner „c: Mount“: „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 weitere 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 booten vom Flash-Laufwerk, wählen die russische Sprache aus und legen das System auf eine leere Festplatte. Wenn das System Sie auffordert, eine Region auszuwählen, drücken Sie „Strg + Umschalt + F3“. Im Snap-In „Computerverwaltung“ erstellen wir den Benutzer „Benutzer“, fügen das Vorbereitungspaket hinzu, gehen zum Konto „Benutzer“, der Multikiosk funktioniert nicht.

Booten von einem Flash-Laufwerk in WinPE. Wir führen den Befehl „Dism/image:E:/Set-UILang:en-us“ aus.

Wir booten das System, versuchen uns beim „Benutzer“-Konto anzumelden, der Multikiosk funktioniert.

Anscheinend geht es nicht um die Methoden zum Hinzufügen des Pakets. Versuchen wir, zusätzliche Pakete hinzuzufügen.

Experiment 10

Wir nehmen das Flash-Laufwerk, das wir im vorherigen Schritt vorbereitet haben.

Wir nehmen das Paket „Feat on Demand“ – X21-87815. Ich kopiere Pakete daraus 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».

Берем пакет «Feat on Demand RDX Updt» – X21-99781. В папку «c:Mount» копирую из него пакеты: «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 vom Flash-Laufwerk, wählen die russische Sprache aus und legen das System auf eine leere Festplatte. Wenn das System Sie auffordert, eine Region auszuwählen, drücken Sie „Strg + Umschalt + F3“. Erstellen Sie im Snap-In „Computerverwaltung“ den Benutzer „Benutzer“, fügen Sie das Vorbereitungspaket hinzu und gehen Sie zum Konto „Benutzer“. Ich bekam einen schwarzen Bildschirm, der lange Zeit hängen blieb, also habe ich einen Warmstart des Systems durchgeführt.

Wir löschen das Vorbereitungspaket, gehen unter den Benutzer „Benutzer“, starten das System neu, fügen das Vorbereitungspaket hinzu, der Multikiosk funktioniert nicht.

Booten von einem Flash-Laufwerk in WinPE. Wir führen den Befehl „Dism/image:E:/Set-UILang:en-us“ aus.

Wir booten das System, versuchen uns beim „Benutzer“-Konto anzumelden, der Multikiosk funktioniert.

Problemumgehung

normale Helden. Gehen Sie immer herum!

Verschiedene Methoden zur Installation von Lokalisierungspaketen haben das Problem nicht gelöst, was bedeutet, dass Sie beim ersten Start nach dem Versiegeln die Sprache „en-us“ installieren und nach dem ersten Start die Spracheinstellungen ändern müssen.

Wir füllen das Bild des Systems aus – russifiziert im Prüfmodus.

Geben Sie in der Datei „Unattend.xml“ „en-US“ als Parameter ein, führen Sie „Sysprep.bat“ aus, wählen Sie Punkt 2 aus und sehen Sie, was wir erhalten haben. Begrüßungsbildschirm auf Englisch, Multikiosk – funktioniert. Sie müssen also einen Befehl hinzufügen, um die Begrüßungssprache in „Unattend.xml“ zu ändern. Dazu müssen Sie den Befehl „control intl.cpl,, /f:“ unter Angabe der Konfigurationsdatei ausführen, der die aktuellen Einstellungen in den Begrüßungsbildschirm kopiert. Der Inhalt der Konfigurationsdatei sieht folgendermaßen aus.

<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend">
      <gs:UserList>
        <gs:User UserID="Current" CopySettingsToSystemAcct="true"/> 
    </gs:UserList>
</gs:GlobalizationServices>

Weil kopiert die Einstellungen des aktuellen Benutzers, dann müssen Sie den Befehl ausführen, nachdem sich der Benutzer beim System angemeldet hat, was bedeutet, dass wir ihn benötigen. Es gibt ein kleines „Aber“, die Ausführung erfolgt nach der Anmeldung eines Benutzers mit Administratorrechten. Und ich möchte keine zusätzliche Datei erstellen, die für die erfolgreiche Ausführung des Befehls erforderlich ist. Es ist besser, die gesamte Lösung in einer einzigen Datei zu implementieren – „Unattend.xml“. Dazu müssen Sie lediglich einen Befehl ausführen, der eine Konfigurationsdatei erstellt. Ich denke, ich werde eine Konfigurationsdatei mit dem Befehl „echo“ in der Umgebung „cmd“ erstellen, aber darin müssen Sie die spitzen Klammern mit einem Zirkumflex maskieren. Diese. Um eine Konfigurationsdatei zu erstellen, wird der folgende Befehl abgerufen.

echo ^<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend"^>^<gs:UserList^>^<gs:User UserID="Current" CopySettingsToSystemAcct="true"/^>^</gs:UserList^>^</gs:GlobalizationServices^>>Config.xml

Aber wir müssen diesen Befehl in XML einfügen, das seine eigenen Anforderungen für die Verwendung von Sonderzeichen hat:

Sonderzeichen
Wiederbeschaffungswert

>
&gt;

<
&lt;

&
&amp;

'
&apos;

"
&quot;

Als Ergebnis haben wir zum Erstellen einer Konfigurationsdatei den folgenden Befehl für „FirstLogonCommands“ erhalten.

cmd.exe /c echo ^&lt;gs:GlobalizationServices xmlns:gs=&quot;urn:longhornGlobalizationUnattend&quot;^&gt;^&lt;gs:UserList^&gt;^&lt;gs:User UserID=&quot;Current&quot; CopySettingsToSystemAcct=&quot;true&quot;/^&gt;^&lt;/gs:UserList^&gt;^&lt;/gs:GlobalizationServices^&gt;&gt;&quot;%TMP%Config.xml&quot;

Als nächstes führen wir den Befehl mithilfe der Konfigurationsdatei aus.

control intl.cpl,,/f:&quot;%TMP%Config.xml&quot;

Als nächstes löschen Sie die zuvor erstellte Datei und starten das System neu. Die Änderungen werden nach einem Neustart wirksam.

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

Als Ergebnis habe ich die folgende Antwortdatei für Sysprep erhalten.

unattend.xml

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="specialize">
        <component name="Microsoft-Windows-Deployment" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <RunSynchronous>
                <RunSynchronousCommand wcm:action="add">
                    <Path>reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v SetupDisplayedProductKey /t REG_DWORD /d 1 /f</Path>
                    <Order>1</Order>
                    <Description>Dont show key page</Description>
                </RunSynchronousCommand>
                <RunSynchronousCommand wcm:action="add">
                    <Path>reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v UnattendCreatedUser /t REG_DWORD /d 1 /f</Path>
                    <Order>2</Order>
                    <Description>Dont make account</Description>
                </RunSynchronousCommand>
                <RunSynchronousCommand wcm:action="add">
                    <Path>cmd.exe /c rd %systemdrive%Sysprep /s /q</Path>
                    <Order>3</Order>
                    <Description>Del Folder</Description>
                </RunSynchronousCommand>
            </RunSynchronous>
        </component>
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <AutoLogon>
                <Enabled>true</Enabled>
                <Username>Admin</Username>
            </AutoLogon>
        </component>
    </settings>
    <settings pass="oobeSystem">
        <component name="Microsoft-Windows-International-Core" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <InputLocale>en-US; ru-RU</InputLocale>
            <SystemLocale>ru-RU</SystemLocale>
            <UILanguage>en-US</UILanguage>
            <UILanguageFallback></UILanguageFallback>
            <UserLocale>ru-RU</UserLocale>
        </component>
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <OOBE>
                <HideEULAPage>true</HideEULAPage>
                <HideLocalAccountScreen>true</HideLocalAccountScreen>
                <HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
                <HideOnlineAccountScreens>true</HideOnlineAccountScreens>
                <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
                <ProtectYourPC>1</ProtectYourPC>
            </OOBE>
            <FirstLogonCommands>
                <SynchronousCommand wcm:action="add">
                    <CommandLine>cmd.exe /c echo ^&lt;gs:GlobalizationServices xmlns:gs=&quot;urn:longhornGlobalizationUnattend&quot;^&gt;^&lt;gs:UserList^&gt;^&lt;gs:User UserID=&quot;Current&quot; CopySettingsToSystemAcct=&quot;true&quot;/^&gt;^&lt;/gs:UserList^&gt;^&lt;/gs:GlobalizationServices^&gt;&gt;&quot;%TMP%Config.xml&quot;</CommandLine>
                    <Description>CreateConfig</Description>
                    <Order>1</Order>
                </SynchronousCommand>
                <SynchronousCommand wcm:action="add">
                    <CommandLine>control intl.cpl,,/f:&quot;%TMP%Config.xml&quot;</CommandLine>
                    <Description>UseConfig</Description>
                    <Order>2</Order>
                </SynchronousCommand>
                <SynchronousCommand wcm:action="add">
                    <CommandLine>cmd.exe /c del &quot;%TMP%Config.xml&quot; /q&amp;shutdown /r /f /t 00</CommandLine>
                    <Description>DelConfig</Description>
                    <Order>3</Order>
                </SynchronousCommand>
            </FirstLogonCommands>
        </component>
    </settings>

Überprüfung...

Wir füllen das Bild des Systems aus – russifiziert im Prüfmodus.

Wir ändern die Datei Unattend.xml in eine neue, führen „Sysprep.bat“ aus, wählen Punkt 2 aus und sehen, was wir bekommen haben. Wenn Sie zum ersten Mal den Begrüßungsbildschirm auf Englisch starten, wird das System neu gestartet. Begrüßungsbildschirm auf Russisch, Multikiosk funktioniert.

Bei Fragen zur Einrichtung und Lizenzierung von Windows 10 IoT Enterprise wenden Sie sich bitte an [E-Mail geschützt] oder zur Website quarta-embedded.ru.
Antworten auf einige Fragen finden Sie in unser Wiki oder auf unserem YouTube-Kanal

Autor des Artikels: Borisenkov Vladimir, technischer Experte der Firma Quarta Technologies.

Source: habr.com