Windows 10 IoT Enterprise 2019 - multi-kiosk mode

Pagpapakilala

Windows 10 IoT Enterprise 2019 ay ang pangalan ng marketing para sa susunod na release ng Windows 10. Ang release ng bersyon na ito ay inihayag noong Setyembre 2018, ayon sa pagkakabanggit, mayroon itong bersyon 1809, 18 ang taon, 09 ang buwan. Maraming mga artikulo ang naisulat sa bagong release ng Windows 10 1809, ngunit karamihan sa kanila ay nakatuon sa iba't ibang "bows", "beauties" at iba't ibang pag-andar na hinihiling sa bahay.
Tatalakayin lang ng artikulong ito ang functionality na maaaring in demand sa mga manufacturer ng fixed-purpose device. Lalo na, tungkol sa mga bagong kakayahan ng mode na "Kiosk". Tatalakayin din ang paksa ng pagpapalit ng mga pangalan ng mga scheme ng serbisyo para sa mga edisyon ng Windows ng segment ng enterprise.

Lumang scheme ng serbisyo na may bagong pangalan

Hayaan akong magsimula sa isang maikling paliwanag: sa corporate segment ng Windows edition mayroong dalawang mga scheme ng serbisyo ayon sa kung saan ang Windows ay tumatanggap ng mga update. Ang mga scheme ng serbisyo ay may pagtatalaga ng liham. Sa kasalukuyan ang mga sangay ng serbisyo ay tinatawag na LTSC at SAC.

Ang ibig sabihin ng LTSC ay Pangmatagalang Channel ng Serbisyo (na may pangmatagalang pagpapanatili). Noong nakaraan, ang naturang channel ay tinatawag na LTSB - Long Term Servicing Branch. Binago lang ng Microsoft ang pangalan ng channel ng serbisyo, ang serbisyo mismo ay nanatiling pareho.

Binago din ng Microsoft ang pangalan ng sangay ng serbisyo na CBB - Kasalukuyang Sangay para sa Negosyo, ngayon ang sangay ng serbisyong ito ay tinatawag na SAC - Semi-Taunang Channel. Muli, pangalan lang ang nagbago.

Ngunit dapat itong banggitin na ang LTSC at SAC servicing branches ay gumagamit ng iba't ibang mga pamamahagi ng Windows.

Kaunti tungkol sa bagong kiosk mode sa SAC

Tulad ng sinabi ko na, ang LTSC at SAC ay may iba't ibang distribusyon. Ang LTSC ay walang karaniwang universal app o app store, ngunit mayroon ang SAC. Alinsunod dito, ang LTSC ay walang Edge browser, ngunit mayroon ang SAC. Kung pipiliin mo ang Edge browser kapag nagse-set up ng kiosk, dalawang mode ang available na ngayon:

  1. Bilang digital sign o interactive na display
  2. Tulad ng isang pampublikong browser

Hindi ako magtatagal sa pag-set up ng mga mode na ito, dahil... Ang pag-setup ay napaka-simple at ginagawa sa isang graphical na interface. Gumawa lang ng user na hindi miyembro ng Administrators group, paganahin ang kiosk mode para sa kanya gamit ang EDGE at tingnan kung paano gumagana ang mga mode na ito.

Kiosk na may maraming application

Ang ilang mga tao ay nag-iisip na may lisensyang paggamit Windows 10 IoT Enterprise nagpapahiwatig ng pagpapatakbo ng isang application lamang sa device, sa katunayan hindi ito ang kaso. Ang device ay dapat na idinisenyo upang magsagawa ng isang gawain sa negosyo at ang user ay dapat na walang access sa isang desktop. Ngayon ang Microsoft mismo ay nagbigay ng tool upang gumamit ng maraming application. Ang mode na ito ay tinatawag na "multi-app kiosk"; pagkatapos nito, para sa maikli, tatawagin ko itong "multikiosk". Sa artikulong ito titingnan natin ang pag-set up ng mode na ito gamit ang software package at ilan sa mga feature ng mode na ito.

Kaunti tungkol sa Multikiosk mode

Kapag nag-log in ka sa isang user account kung saan naka-configure ang multi-kiosk mode, gagana ang system sa tablet mode. Ang Start menu ay lalawak sa buong screen, na nagpapakita ng mga tile ng application.

Listahan ng mga pangunahing setting at kakayahan sa mode:

  1. Pagse-set up para sa maraming user o grupo
  2. Ang bawat user o grupo ay maaaring magtalaga ng mga indibidwal na setting
  3. Kakayahang gumamit ng mga universal at classic na application
  4. Ang kakayahang awtomatikong ilunsad ang isa sa mga application kapag nag-log in ang user
  5. Mga naka-whitelist na application
  6. Pag-access sa mga folder gamit ang isang puting listahan

Ito ay nagkakahalaga ng pagbibigay pansin sa punto 5. Bilang default, tanging ang mga application na kinakailangan para sa system na gumana ang papayagang gumana, ang iba pang mga application ay dapat idagdag sa listahan ng mga pinapayagan. Yung. Ngayon ay hindi mo na kailangang i-configure nang hiwalay ang AppLocker. Sa pamamagitan ng paraan, upang maiwasan ang mga salungatan sa mga setting ng AppLocker, sa multi-kiosk mode, ang lahat ng naka-configure na panuntunan ng AppLocker ay hindi malalapat.

Ang punto 6 ay nagpapahiwatig ng isang mahusay na pagpipilian, ngunit sa sandaling ito ay posible lamang na magbigay ng pahintulot sa pagsulat sa folder na "Mga Download". Binibigyang-daan ka ng mode na gumamit ng mga universal at classic na application. Ang lahat ng mga setting ng mode ay tinukoy sa isang XML file, kung saan maaari mo ring tukuyin ang mga setting para sa isang kiosk ng application.

Ngayon subukan nating i-set up ang lahat...

Ano ang ating kailangan...

  1. Una sa lahat, kailangan namin ang system mismo, na sumusuporta sa multikiosk mode. Dito maaari mong i-download demo na bersyon
  2. Mga tagubilin para sa pag-set up ng multikiosk
  3. Anumang XML editor
  4. Upang ilapat ang mga setting ng multikiosk:
    1. Para sa paraan No. 1 - ICD, na bahagi ng ADK. Posible ang ADK i-download dito
    2. Para sa paraan No. 2 - ang PsExec utility. Ang utility ay maaaring i-download dito

Sabi niya - "Tayo na!"

Gagawin ko ang lahat ng mga eksperimento sa Windows 10 IoT Enterprise 1809 LTSC x32 komersyal na bersyon, hindi isang demo na bersyon. Hindi maa-activate ang system dahil ang kakulangan ng pag-activate ay hindi nakakaapekto sa pag-andar ng system. Kumuha lang ako ng 32 bits dahil mas kaunting space ang kailangan nito at magiging mas mabilis itong gumana sa mga system image.

Hakbang 1 - pag-install

Ang pag-install ng Win 10 IoT Enterprise ay hindi naiiba sa pag-install ng Win 10 Enterprise, kaya hindi ko ilalarawan ang buong proseso ng pag-install, magsasalita lamang ako tungkol sa ilan sa mga nuances.

Kung sakali, ipaalala ko sa iyo, huwag i-install ang system sa ibabaw ng naka-install. Kapag nagtanong ang installer tungkol sa lokasyon ng pag-install ng system, tanggalin ang lahat ng mga partisyon sa hinaharap na disk ng system at tukuyin ang isang hindi nahati na disk.

Ini-install namin ang system nang walang koneksyon sa Internet upang hindi makuha ng system ang anumang hindi kailangan.

kasi Gagawa kami ng mga backup na larawan ng system at para dito ay ise-seal namin ito sa audit mode, pagkatapos ay makakatipid ka ng ilang oras sa pamamagitan ng paglo-load ng system sa audit mode kaagad pagkatapos ng pag-install. Upang gawin ito, kapag hiniling sa iyo ng system na pumili ng isang rehiyon “Magsimula tayo sa rehiyon. Tama ba ito" pindutin lamang ang "Ctrl+Shift+F3".

Hakbang 2 - lumikha ng isang imahe ng system

kasi kukutyain natin ang system at susubukan ang iba't ibang bagong setting, posibleng may magkamali at kailangan nating ibalik ang system sa orihinal nitong estado. At upang mabilis na bumalik sa orihinal nitong estado, kailangan mong lumikha ng isang imahe ng system. Ang tanging gagawin ko lang ay kopyahin ang “gentleman’s kit” - ang script at ang answer file. Ang lahat ng aking mga file ay matatagpuan sa folder na "Sysprep", na kinopya ko sa root ng system disk. At natural, ibabahagi ko sa iyo ang “gentleman’s set” na ito.

Sysprep.bat – upang i-seal ang system.

@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

Kapag inilunsad, susuriin ng script ang pagkakaroon ng "Admin" na account at gagawa ng isa kung nawawala ito. Ang account ay idaragdag sa Administrators group.

Unattend.xml – response file para sa 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>

Kapag nagse-sealing sa audit mode, magdaragdag ang script ng command sa registry upang tapusin ang proseso ng "sysprep.exe" upang hindi manu-manong isara ang sysprep window sa bawat oras. Kapag na-seal sa hello mode, aalisin ng script ang command na isara ang window mula sa registry at babaguhin mismo ang architecture value sa answer file sa kasalukuyang isa. Ang sagot na file ay naglalaman ng mga parameter para sa pag-boot ng system nang walang pakikipag-ugnayan ng user at isang command para sa pagtanggal ng "Sysprep" na folder sa root ng system drive.

Ngayon ay tatatakan ko ang system sa audit mode gamit ang "Sysprep.bat" at kukuha ng imahe ng system. Ire-image ko ang system gamit ang DISM at i-image lang ang system volume. Kung ang dami ng system lang ang ilalagay mo, at hindi ang buong disk, huwag kalimutang kopyahin ang mga nilalaman ng direktoryo ng "WindowsSystem32Recovery" sa unang volume sa folder na "RecoveryWindowsRE" pagkatapos i-deploy ang system. Ito ay kailangang gawin bago i-load ang OS. pagkatapos i-load ang OS, ang direktoryo ng "WindowsSystem32Recovery" ay magiging walang laman.

Hakbang 3 - Russification ng system

Maaaring mai-install ang language pack nang walang koneksyon sa Internet kung mayroon ka ng pack na ito. Kung hindi, ang system mismo ang magda-download nito mula sa Internet kapag idinagdag mo ang wika sa mga setting. Hindi lang kailangang kunin ang language pack mula sa mga nakaraang bersyon ng OS. Para sa Windows 10 1809 dapat mayroong isang language pack na partikular para sa Windows 10 1809.

Sinusunod ng Microsoft ang plano nito na unti-unting ilipat ang mga setting mula sa classic na menu patungo sa bago, kaya sa classic na control panel ay hindi ka na makakahanap ng mga setting para sa pagbabago ng wika at pag-install ng language pack. Ang mga setting na ito ay nasa mga parameter lamang ng system.

Sa mode ng pag-audit, maaari kang makatagpo ng problema sa pagbubukas ng mga setting ng system mula sa Start menu; upang buksan ang mga setting ng system, patakbuhin ang command - "ms-settings:", bigyang-pansin ang colon sa dulo ng command, kung wala ito ang command ay hindi trabaho. Pagkatapos buksan ang mga parameter ng system sa sandaling gamit ang command na ito, maaari itong mabuksan gamit ang graphical na menu.

Ngunit sa mga setting ng system maaari kang mag-install ng isang language pack kung ang system ay konektado sa Internet, walang pagpipilian upang piliin na mag-install ng isang language pack mula sa isang lokal na file.

Hindi ko ilalarawan ang proseso ng pag-localize ng system dahil... ito ay makabuluhang magpapalubha sa artikulo, lalo na dahil ang proseso ng lokalisasyon ay detalyado inilarawan dito. Ngunit nais kong iguhit ang iyong pansin sa kakaibang pagbabago ng wika ng system pagkatapos mag-install ng language pack gamit ang console. Ang tampok na ito ay inilarawan sa parehong wiki kung saan nagbigay ako ng link kanina, sa subsection "Pagdaragdag ng wika sa listahan ng mga wika".

I-install ko ang language pack nang walang koneksyon sa internet.

Pagkatapos ng kumpletong lokalisasyon ng system, siguraduhing lumikha ng isang imahe ng system.

Hakbang 4 - I-install ang mga kinakailangang application

kasi Dahil ang LTSB at LTSC system ay walang application store, ang pag-install ng mga application mula sa Microsoft Store ay nagdudulot ng ilang mga kahirapan, lalo na ang pag-download ng application. Upang mag-download ng mga application, ang kumpanya ng Adguard ay gumawa ng isang napaka-maginhawang serbisyo - "Tindahan ng Adguard", kung saan maaari kang makakuha ng pansamantalang mga link sa pag-download para sa mga application at mga bahagi ng mga ito.

Upang i-install ang application, kakailanganin mo ng mga file na may mga extension na "Appx" at "AppxBundle". Bago i-install ang application mismo, dapat mong i-install ang mga bahagi nito. Bilang isang patakaran, ang mga bahagi mula sa isang application ay maaaring madaling makilala sa pamamagitan ng pangalan ng file.

Upang hindi masyadong mahaba ang artikulo, hindi ko ilalarawan nang detalyado ang proseso ng pag-install ng mga application, lalo na dahil mayroong impormasyon sa pag-install detalyadong pagtuturo. Ngunit magdaragdag ako ng isa pang paraan upang mag-install ng mga application sa iyong kasalukuyang account. Maaaring mai-install ang mga application gamit ang program "App Installer", ngunit upang mag-install ng mga application kakailanganin mo ng koneksyon sa Internet, ngunit ang mga application ay maaaring mai-install sa isang dobleng pag-click at hindi mo kakailanganin ang mga bahagi nito, ang lahat ng kinakailangang mga bahagi ay magda-download at mai-install "App Installer".

At isang maliit na paalala, kapag ini-install ang application sa kasalukuyang account, hindi mo magagawang i-seal ang system. Paano mag-install ng mga application upang ma-seal mo ang system, tingnan ang mga tagubilin sa itaas. At upang suriin ang pagpapatakbo ng multikiosk, ang mga umiiral na application ay sapat na.

Hakbang 5 – paggawa ng configuration file para sa multikiosk

Ngayon ay nakarating na tayo sa pinakakawili-wiling bahagi - ang pag-set up ng kiosk mode. Tignan natin tagubilin ayon sa mga setting na nakikita natin. Una sa lahat, kakailanganin naming lumikha ng isang XML configuration file, isang buong halimbawa nito ay matatagpuan dito. tumingin dito.

Magsimula tayo sa pamamagitan ng pag-set up ng layout ng tile. Ang pinakamadaling paraan upang lumikha ng configuration ng pag-customize ng XML tile ay i-export ang kanilang kasalukuyang estado.

Una sa lahat, magdagdag tayo ng mga tile ng mga application na kailangan natin sa Start menu. Tawagan ang paghahanap na "Win+s", hanapin ang nais na application, i-right-click ito at piliin ang "Pin to Start Screen".

Nai-pin ko ang mga sumusunod na app:

  • Notepad
  • Kalkulator
  • internet Explorer
  • Pintahan
  • WordPad
  • Mga Parameter
  • Security sa Windows

Na-pin ang huling dalawang application dahil... Walang iba pang unibersal na aplikasyon sa karaniwang pakete ng LTSC. Tandaan na ang mga tile sa desktop ay nagli-link sa mga shortcut. Ngayon, sa pamamagitan ng direktang paglipat ng mga tile sa Start menu, paghihiwalayin ko ang mga naka-pin na tile sa dalawang grupo. Upang gumawa ng bagong pangkat ng mga tile, i-drag ang isang tile na mas mataas o mas mababa kaysa sa iba pang mga tile, na magha-highlight ng intuitive na divider. Maaari mong pangalanan ang mga grupo ayon sa iyong paghuhusga; upang gawin ito, ilagay ang cursor ng mouse sa itaas ng grupo, at kapag lumitaw ang inskripsyon na "Pangalanan ang grupo", i-click ang kaliwang pindutan ng mouse. Tatawagin ko ang unang pangkat na "Mga Setting", isasama nito ang mga tile na "Mga Setting" at "Seguridad ng Windows". Tatawagin ko ang pangalawang grupo na "Mga Aplikasyon sa Opisina", na isasama ang lahat ng iba pang mga tile. Siyanga pala, maaari mong ilipat ang buong grupo ng mga tile sa pamamagitan ng pag-drag sa kanila gamit ang dalawang guhit na matatagpuan sa kanang tuktok ng pangalan ng grupo.

kasi Sa tile na "Windows Security" ang pangalan ay hindi ganap na magkasya, babaguhin ko ang laki nito sa "Wide". Upang baguhin ang laki ng isang tile, mag-right click sa tile at piliin ang "Baguhin ang laki".

Pagkatapos ng configuration, ine-export namin ang kasalukuyang estado at isinasagawa ang command sa PowerShell environment – ​​​​“Export-StartLayout – path C:SysprepStartLayout.xml”.

Susunod, ang pinakamadaling paraan ay hindi ang lumikha ng mga setting ng file sa iyong sarili, ngunit kumuha ng isang halimbawang file mula dito mga setting - mag-click sa pindutan ng "Kopyahin", i-paste ang mga nilalaman sa notepad at i-save bilang "MultiAppKiosk.xml". Ngayon ay binabago namin ang mga setting sa aming sarili. Upang baguhin ang mga setting ng mga naka-attach na tile, kopyahin ang buong block na "StartLayoutCollection" mula sa "StartLayout.xml" patungo sa "MultiAppKiosk.xml". Upang magdagdag ng mga application sa mga pinapayagan, kailangan mong magpasok ng mga universal application identifier sa seksyong "AllowedApps" at sa parehong block ay idagdag ang buong path sa mga executable na file ng mga classic na application, na tinukoy sa mga katangian ng mga shortcut kung saan ang sumangguni ang mga tile. Upang mabilis na makapunta sa isang shortcut, mag-right click sa isang naka-pin na tile at pumunta sa Higit pa > Pumunta sa Lokasyon ng File. Tandaan na ang parameter na "AppUserModelId" ay ginagamit upang tukuyin ang Universal App ID, at ang "DesktopAppPath" na parameter ay ginagamit upang tukuyin ang buong path sa desktop application. At isa pang maliit na nuance, kung plano mong gamitin ang IE sa isang x64 system, pagkatapos ay sa listahan ng mga pinapayagang application dapat mong tukuyin ang dalawang path para sa executable file na "Program FilesInternet Exploreriexplore.exe" at "Program Files (x86)Internet Exploreriexplore. exe".

Hindi ako magbibigay ng access sa mga folder, kaya tinatanggal ko ang seksyong "FileExplorerNamespaceRestrictions."

Ang pagpapakita ng taskbar ay hindi nakakaabala sa akin, kaya iniiwan ko ang lahat sa seksyong "Taskbar".

Sa halimbawa, dalawang profile ang tinukoy, ngunit magkakaroon lamang ako ng isang profile, kaya ang seksyon na may pangalawang profile ay maaaring tanggalin. Bago i-uninstall, bigyang-pansin ang halimbawa ng awtomatikong pagsisimula ng isang application na may mga argumento.

Sa seksyong "Mga Config", ang mga account ay naka-link sa mga profile; pakitandaan na maraming account ang maaaring i-link sa isang profile. Pero kasi Interesado lang ako sa isang account, pagkatapos ay tatanggalin ko ang lahat ng mga binding maliban sa una - ang mga bloke ng "Config". Sa natitirang binding isusulat ko ang user name na "User".

Nakuha ko ang file na ito na may mga parameter

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>

Kapag ginawa mo ang iyong mga XML configuration file, huwag kalimutan na ang bawat profile ay dapat magkaroon ng isang natatanging ID, at hindi lamang sa loob ng isang XML file, ngunit sa loob ng isang OS. Yung. Sa isip, upang maiwasan ang pagkalito, maaari kang lumikha ng isang bagong identifier sa bawat oras; maaari itong gawin sa kapaligiran ng PowerShell gamit ang command na “[guid]::NewGuid()”. At siguraduhing i-save ang file sa "UTF-8" na pag-encode; kung ang file ay nai-save sa "ANSI" na pag-encode, pagkatapos ay kapag binuo ang paghahanda package makakatanggap ka ng isang error kung ang XML file ay naglalaman ng Cyrillic.

Hakbang 6 – paglalapat ng mga setting ng multikiosk

Tingnan natin ang dalawang paraan para ilapat ang mga setting na inilarawan sa configuration file. Ang una ay sa pamamagitan ng isang provisioning package, na dapat gawin sa ICD. Para sa ilan, marahil ang pamamaraang ito ay magiging mas pamilyar. Ang pangalawa ay ang paggamit ng "MDM Bridge WMI Provider", ang pamamaraang ito ay tila mas maginhawa para sa akin.

Paraan # 1

Sino ang walang ICD? i-download ang ADK at i-install. Ang pag-install ng ADK ay napaka-simple; ang hanay ng mga bahagi ay maaaring iwanang default.

Ilunsad ang ICD, mag-click sa tile na "Advanced na paghahanda", tukuyin ang pangalan at folder ng proyekto at i-click ang "Next". Sa susunod na window, piliin ang "Lahat ng edisyon ng Windows desktop" at i-click ang "Next". Maaari mong laktawan ang pag-import ng package ng paghahanda; i-click ang "Tapos na".

Palawakin ang drop-down na menu na "Mga Setting ng Runtime", pagkatapos ay palawakin ang submenu na "AssignedAccess" at piliin ang "MultiAppAssignedAccessSettings". Sa tuktok ng gitnang seksyon ng window ng ICD, i-click ang pindutang "Browse" at ipahiwatig ang lokasyon ng XML file kasama ang mga setting. Kung sakali, maaari mong i-save ang proyekto sa pamamagitan ng pagpindot sa “Ctrl+s”. Sa kaliwang itaas na bahagi ng ICD, piliin ang "I-export" at piliin ang "Provisioning Package" mula sa drop-down na menu. Bilang may-ari, piliin ang "IT administrator"; lahat ng iba pang tanong ay maaaring laktawan sa pamamagitan ng pag-click sa "Next" at sa dulo ay i-click ang "Build" at "Finish".

Sa naka-install na system, huwag kalimutang lumikha ng isang user na "User"; hindi siya maidaragdag sa pangkat na "Mga Administrator", kung hindi, ang multikiosk ay hindi gagana. Gumawa ako ng user sa Computer Management na may password na hindi mag-e-expire.

Ngayon ay pinapatakbo namin ang pakete ng paghahanda sa dati nang naka-install na sistema. Pagkatapos ilapat ang pakete ng paghahanda, magbabago ang Start menu at ang menu ng administrator. Sa kaliwang panimulang hanay ang mga pindutan ay dapat mawala: "Mga Dokumento", "Larawan", "Mga Opsyon". Kung hindi nagbago ang start menu, may nangyaring mali. Maaaring alisin ang isang naka-install na package sa pamamagitan ng pagbubukas ng Mga Setting > Mga Account > Pag-access sa account sa trabaho o paaralan > Magdagdag o mag-alis ng window ng provisioning package.

Kung nagbago ang start menu, ilalapat ang mga setting sa system, mag-log in bilang user kung kanino na-configure ang multikiosk at tingnan ang resulta.

Paraan # 2

Paglalapat ng mga setting gamit ang "MDM Bridge WMI Provider" inilarawan dito. Ang kaginhawahan ng pamamaraang ito ay ang kakayahang umangkop sa paggamit at ang kakayahang mapupuksa ang maraming mga manu-manong operasyon na kinakailangan upang lumikha ng isang pakete ng paghahanda. Dito lahat ay maaaring gumawa ng desisyon para sa kanilang sarili na magiging maginhawa para sa kanila. Gumawa ako ng ilang mga script para sa aking sarili.

MiltiKiosk.bat – paglunsad ng script

@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 – pangunahing script

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

Kung gusto mong gamitin ang aking solusyon, pagkatapos ay i-save ang mga script sa itaas kasama ang kanilang mga orihinal na pangalan sa isang folder at ilagay ang "PsExec.exe" na file sa parehong folder. Sa parehong folder, lumikha ng folder na "XML" at kopyahin ang mga XML file upang i-configure ang multikiosk dito. Gagamitin ko ang parehong file tulad ng sa unang paraan.

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>

Kaunti tungkol sa mga tampok ng script. Ang script ay idinisenyo upang gumamit ng mga XML file na may “UTF8” encoding; kung gusto mong gumamit ng “ANSI” encoding, pagkatapos ay alisin ang “encoding UTF8” parameter mula sa file reading option. Dapat mong ilagay ang mga XML file sa folder na "XML" nang hindi pinapalitan ang mga character; ang script mismo ay papalitan ang mga espesyal na character ng naaangkop na mga pagtatalaga. Upang hindi malito sa mga GUID ng pagli-link ng mga user sa mga profile, maaari mo lamang isaad ang numero ng user o pangalan sa mga curly braces; lahat ng content sa curly braces ay papalitan ng mga GUID.

Ang paggamit ng script ay napaka-simple, patakbuhin lamang ito at piliin ang kinakailangang item. Upang baguhin ang kasalukuyang configuration sa isang bago, hindi kinakailangang tanggalin ang kasalukuyang isa; ito ay ma-overwrite. Huwag kalimutang lumikha ng mga user na tinukoy sa configuration file.

Kapag tinitingnan ang kasalukuyang configuration ng multikiosk sa parehong session kung saan ito inilapat, sa halip na mga espesyal na character, ang mga kumbinasyon ng mga kapalit na character ay ipapakita. Pagkatapos baguhin ang session (i-restart ang script), ang lahat ng mga espesyal na character ay ipapakita sa kanilang orihinal na anyo.

Hakbang 7 - Pag-sealing ng System

Gumagana ang multikiosk, well, iyon lang, parang...

Kung ang lahat ay naaayon sa plano, kung gayon hindi mo napapansin ang isang bagay.

Huwag kalimutan na kailangan pa rin nating ilipat ang system mula sa audit mode patungo sa welcome mode. Buweno, handa na kami para dito, inilunsad namin ang "Sysprep.bat", piliin ang punto 2, ang sistema ay selyadong. Binuksan namin ang device, ang system boots, nag-log in kami sa user account kung saan naka-configure ang multikiosk, ngunit hindi kami makakapag-log in. Pagkatapos ng mensaheng "Welcome", lalabas ang mensaheng "Logout".

Noong una gusto kong ilarawan lamang ang solusyon sa problema, ngunit nang maglaon ay nagpasya akong ilarawan ang mga hakbang upang matukoy ang problema at hanapin ang pinakasimpleng solusyon dahil... Tiyak na maraming mga mambabasa ang pahihirapan ng hindi malinaw na pagdududa - "Paano kung ganito...". Sa tingin ko, ang paglalarawan sa iba't ibang mga eksperimento ay makakatipid sa iyo ng malaking halaga ng oras kung gusto mong makahanap ng isa pang solusyon. Upang gawing tumpak ang impormasyon hangga't maaari, at upang muling matiyak na walang mga error, ilalarawan ko ang mga eksperimento sa "tapos at naitala" na format. Yung. Gagawin ko muli ang inilarawan na mga eksperimento.

mga eksperimento

Anong ginawa natin? Mayroong dalawang account sa system:

"Admin" - sa pangkat na "Mga Administrator".
"User" - sa pangkat na "Mga User".
Sa audit mode, gumana ang multikiosk, ngunit kapag na-sealed, hindi ito gumana.

Eksperimento 1

Tinatanggal namin ang naka-install na package ng paghahanda, sa snap-in na "Computer Management" tinanggal namin ang user na "User" at lumikha ng isang bagong user na may pangalang "User", ilapat ang package ng paghahanda, pumunta sa "User" account - ginagawa nito hindi trabaho. Pumunta kami sa ilalim ng pangalang "Admin", alisin ang user na "User" mula sa pangkat na "Mga User", idagdag ito sa pangkat na "Mga Administrator", pumunta sa ilalim ng pangalang "User" - hindi ito gumagana. Nag-log in kami sa ilalim ng pangalang "Admin", tanggalin ang pakete ng paghahanda gamit ang multikiosk, mag-log in sa ilalim ng pangalang "User" - nagawa naming mag-log in, ngunit siyempre ang multikiosk mode ay hindi gumagana dahil Inalis ang provisioning package.

Eksperimento 2

Ina-upload namin ang imahe ng system - Russified sa audit mode.

Ang OS ay nag-load, pindutin ang "Win + r", dahil Ang aming sysprep window ay awtomatikong nagsara, patakbuhin ang "sysprep" na command, at patakbuhin ang "sysprep" sa window na bubukas. Mga setting ng Sysprep sa window: "Pumunta sa system welcome window (OOBE)", "Paghahanda para sa paggamit", "Reboot". I-click ang "OK" at hintayin ang OS greeting. Sinasagot namin ang mga tanong kapag nag-boot ang system sa unang pagkakataon: "Magpatuloy sa piniling wika?" - "Ruso"; rehiyon - Russia; layout ng keyboard - Russian; magdagdag ng pangalawang layout ng keyboard - laktawan; "Ikonekta ka natin sa network" - "Laktawan muna"; kumonekta sa Internet - hindi; kasunduan sa lisensya - tanggapin; "Sino ang gagamit ng computer na ito" - "Pagsubok"; paglikha ng isang password - iwanang blangko ang field; Maginhawang operasyon sa iba't ibang mga aparato - hindi; Mga setting ng privacy – tanggapin. Nag-load ang OS, sa snap-in na "Computer Management" lumikha kami ng isang user na may pangalang "User", idagdag ang package ng paghahanda. Ang resulta ay hindi ito gumagana.

Eksperimento 3

Ina-upload namin ang imahe ng system - Russified sa audit mode.

Nag-load ang OS, ikonekta ang system sa Internet, patakbuhin ang command na "gpedit.msc" at sa seksyong "Windows Update" paganahin ang opsyon na "Paganahin ang mga inirerekomendang update sa pamamagitan ng mga awtomatikong pag-update", at i-reboot kung sakali. Sa update center, i-click ang “Tingnan ang mga update” at i-reboot hanggang sa ma-install ang lahat ng update. Idiskonekta ang system mula sa Internet. Inilunsad namin ang "sysprep" sa graphical mode at inuulit ang lahat ng mga hakbang na inilarawan sa nakaraang hakbang mula sa pagpapatakbo ng "sysprep" na utility hanggang sa pagdaragdag ng package ng paghahanda. Ang resulta ay hindi ito gumagana.

Eksperimento 4

Ina-upload namin ang system image - English sa audit mode.

Inilunsad namin ang "sysprep" sa graphical mode, tinatakan ang OS na may parehong mga parameter tulad ng sa panahon ng eksperimento 2. Kapag ang system ay unang nag-boot, pinipili namin ang parehong mga parameter tulad ng sa eksperimento 2, maliban sa mga parameter ng rehiyon at wika dahil Walang wikang Ruso. Sa parehong paraan, gumawa ng user na "User" at magdagdag ng provisioning package. Ang resulta ay gumagana ito. Yung. Ang problema ay nauugnay sa lokalisasyon.

Eksperimento 5

Ina-upload namin ang imahe ng system - Russified sa audit mode.

Sa snap-in na "Computer Management", lumikha ng isang user na "User", magdagdag ng package ng paghahanda, pumunta sa account na "User", gumagana ang multi-kiosk.

Mag-log out sa iyong account at mag-log in sa ilalim ng "Admin" account. Inilunsad namin ang PowerShell na may mga karapatan ng administrator, isagawa ang command na "Dism /online /Get-Intl" at tingnan ang "Default na user interface na wika: en-US".

Nag-boot kami mula sa flash drive papunta sa WinPE, ang naka-deploy na OS ay nasa aking E drive. Isinasagawa namin ang command na "Dism /image:E: /Set-UILang:ru-ru". Tinitingnan namin ang resulta, i-execute ang "Dism /image:E: /Get-Intl" at tingnan ang "Default system UI language: ru-RU".

Nag-boot kami sa system, mag-log in sa account na "User", hindi gumagana ang multikiosk.

Upang malinaw na maitatag ang sanhi-at-epekto na relasyon ng problema, subukan nating muli na gawing gumagana at hindi gumagana ang multi-kiosk.

Nag-boot kami mula sa flash drive papunta sa WinPE, ang naka-deploy na OS ay nasa aking E drive. Isinasagawa namin ang command na "Dism /image:E: /Set-UILang:en-us". Tinitingnan namin ang resulta, i-execute ang “Dism /image:E: /Get-Intl” at tingnan ang “Default system UI language: en-US”.

Nag-boot kami sa system, nag-log in sa account na "User", gumagana ang multikiosk.

Nag-boot kami mula sa flash drive papunta sa WinPE, ang naka-deploy na OS ay nasa aking E drive. Isinasagawa namin ang command na "Dism /image:E: /Set-UILang:ru-ru". Tinitingnan namin ang resulta, i-execute ang "Dism /image:E: /Get-Intl" at tingnan ang "Default system UI language: ru-RU".

Nag-boot kami sa system, mag-log in sa account na "User", hindi gumagana ang multikiosk.

Yung. makakakita ka ng malinaw na pag-asa sa pagganap ng kiosk sa default na wika ng user interface. Marahil ay may ilang iba pang mga kadahilanan na nakakaapekto sa pagganap ng multikiosk?

Eksperimento 6

Para sa kadalisayan ng eksperimento, pinupuno namin ang system. Ina-upload namin ang imahe ng system - Russified sa audit mode.

Inilunsad namin ang "sysprep" sa graphical mode, tinatakan ang OS na may parehong mga parameter tulad ng sa panahon ng eksperimento 2. Hinihintay namin ang OS na batiin kami at sagutin ang mga tanong: "Magpatuloy sa napiling wika?" – “Ingles (Estados Unidos)”; rehiyon - Russia; Layout ng keyboard - Russian. Dagdag pa, ang lahat ng mga parameter ay pinili tulad ng sa eksperimento 2.

Tingnan natin ang mga default na setting ng wika ng user interface. Isinasagawa namin ang command na "Dism /online /Get-Intl" at tingnan ang "Default na wika ng UI ng system: en-US". Sa snap-in na "Computer Management", lumikha ng isang user na "User", magdagdag ng package ng paghahanda, pumunta sa account na "User", gumagana ang multi-kiosk.

Sinusubukan naming sirain ang kiosk sa pamamagitan ng pagpapalit ng default na wika ng user interface. Pumunta kami sa gumagamit na "Pagsubok", na nilikha noong unang nag-boot ang system at pinagana ang awtomatikong pag-login para dito upang ang system ay hindi mag-boot sa account na "User" kaagad. Ipatupad ang "netplwiz", piliin ang user na "Pagsubok", alisan ng tsek ang checkbox na "Kailangan ang username at password" at ilapat ang mga parameter.

Mag-boot mula sa isang flash drive papunta sa WinPE. Ipatupad ang utos na "Dism /image:E: /Set-UILang:ru-ru". Tinitingnan namin ang resulta, i-execute ang "Dism /image:E: /Get-Intl" at tingnan ang "Default system UI language: ru-RU".

Nag-boot kami sa system, subukang mag-log in sa account na "User", gumagana ang multikiosk. Yung. hindi ito masisira. Posible bang gawin itong gumana sa ganitong paraan?

Eksperimento 7

Ina-upload namin ang imahe ng system - Russified sa audit mode.

Inilunsad namin ang "Sysprep.bat", piliin ang punto 2. Nag-boot kami sa system, lumikha ng user na "User" sa snap-in na "Computer Management", idagdag ang package ng paghahanda, pumunta sa account na "User", ang multi- hindi gumagana ang kiosk.

Mag-boot mula sa isang flash drive papunta sa WinPE. Ipatupad ang utos na "Dism /image:E: /Set-UILang:en-us". Tinitingnan namin ang resulta, i-execute ang “Dism /image:E: /Get-Intl” at tingnan ang “Default system UI language: en-US”.

Nag-boot kami sa system, subukang mag-log in sa account na "User", hindi gumagana ang multikiosk.

Lumalabas na sa pamamagitan ng pagbabago ng default na setting ng wika ng user interface, maaari mong maapektuhan ang pagganap ng multikiosk lamang kapag ang system ay nasa audit mode o sa unang boot pagkatapos i-sealing ang system. Nangangahulugan ito na kakailanganin mong i-seal ang system gamit ang isang response file kung saan pipiliin ang wika ng system sa English, at pagkatapos ay baguhin ang mga setting ng system upang ang interface ay Russian. Hindi isang napakahusay na solusyon. Marahil ay malulutas ang problema sa pamamagitan ng pag-install ng language pack o pag-install ng mga karagdagang language pack?

Eksperimento 8

Ina-upload namin ang system image - English sa audit mode.

Kumonekta kami sa Internet, sa mga parameter ng system pumunta sa seksyong "Wika", piliin ang "Magdagdag ng wika", piliin ang wikang "Russian", i-click ang "Next", iwanan ang mga parameter ng pag-install bilang default, i-click ang "I-install", pagkatapos i-install ang language pack na nire-reboot namin ang system, ngayon ay nasa Russified. Idiskonekta ang system mula sa Internet, patakbuhin ang "Sysprep.bat", piliin ang punto 2.

Pagkatapos i-load ang system, sa snap-in na "Computer Management", lumikha ng user na "User", idagdag ang package ng paghahanda, pumunta sa account na "User", hindi gumagana ang multi-kiosk.

Eksperimento 9

Subukan nating Russify ang system bago i-install, sa offline mode. Kasabay nito, magkakaroon ng maikling programang pang-edukasyon sa lokalisasyon ng pamamahagi.

Kumuha ako ng flash drive na may malinis na orihinal na pamamahagi - X21-96381. Ito ay magiging drive "E". Upang mag-mount ng mga imahe, lumikha ako ng mga folder: "c:MountInstall", "c:MountWinre", "c:MountBoot". Kumuha ako ng set ng mga localization package - X21-87814. At sa folder na "c:Mount" kinopya ko ang mga pakete mula dito: "Microsoft-Windows-Client-Language-Pack_x86_ru-ru.cab", "lp.cab", "WinPE-Setup_ru-ru.cab". Inilunsad ko ang console na may mga karapatan ng administrator. Sa tingin ko ang mga karagdagang utos ay magiging malinaw nang walang komento.

Mga utos ng localization

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

Nag-boot kami mula sa flash drive, piliin ang wikang Ruso at i-install ang system sa isang blangkong disk. Kapag hiniling sa iyo ng system na pumili ng isang rehiyon, pindutin ang “Ctrl+Shift+F3”. Sa snap-in na "Computer Management", lumikha ng isang user na "User", magdagdag ng package ng paghahanda, pumunta sa account na "User", hindi gumagana ang multi-kiosk.

Mag-boot mula sa isang flash drive papunta sa WinPE. Ipatupad ang utos na "Dism /image:E: /Set-UILang:en-us".

Nag-boot kami sa system, subukang mag-log in sa account na "User", gumagana ang multikiosk.

Tila ang problema ay wala sa mga pamamaraan ng pagdaragdag ng isang pakete, subukan nating magdagdag ng mga karagdagang pakete.

Eksperimento 10

Kinukuha namin ang flash drive na inihanda namin sa nakaraang hakbang.

Kinukuha namin ang package na "Feat on Demand" - X21-87815. Kinopya ko ang mga pakete mula dito sa "c:Mount" na folder: «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».

Ilunsad ang console na may mga karapatan ng administrator at isagawa ang mga utos:

Mga Koponan

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

Nag-boot kami mula sa flash drive, piliin ang wikang Ruso at i-install ang system sa isang blangkong disk. Kapag hiniling sa iyo ng system na pumili ng isang rehiyon, pindutin ang “Ctrl+Shift+F3”. Sa snap-in na "Computer Management", likhain ang user na "User", idagdag ang provisioning package, at mag-log in sa "User" account. Nakakuha ako ng isang itim na screen na nag-hang ng mahabang panahon, kaya nag-hot boot ako ng system.

Tinatanggal namin ang pakete ng paghahanda, mag-log in bilang "User", i-reboot ang system, idagdag ang pakete ng paghahanda, hindi gumagana ang multikiosk.

Mag-boot mula sa isang flash drive papunta sa WinPE. Ipatupad ang utos na "Dism /image:E: /Set-UILang:en-us".

Nag-boot kami sa system, subukang mag-log in sa account na "User", gumagana ang multikiosk.

Workaround

Mga normal na bayani. Lagi silang lumiliko!

Ang iba't ibang paraan ng pag-install ng mga localization pack ay hindi nalutas ang problema, na nangangahulugan na kailangan mong i-install ang "en-us" na wika sa unang boot pagkatapos ng sealing, at baguhin ang mga setting ng wika pagkatapos ng unang boot.

Ina-upload namin ang imahe ng system - Russified sa audit mode.

Sa "Unattend.xml" file, ilagay ang "en-US" sa parameter, patakbuhin ang "Sysprep.bat", piliin ang point 2 at tingnan kung ano ang nakuha namin. Ang welcome screen ay nasa English, gumagana ang multi-kiosk. Nangangahulugan ito na kailangan mong magdagdag ng command sa "Unattend.xml" upang baguhin ang wika ng pagbati. At upang gawin ito, kailangan mong patakbuhin ang command na "control intl.cpl,, /f:" na nagpapahiwatig ng configuration file, na tutukuyin ang pagkopya ng kasalukuyang mga parameter sa welcome screen. Magiging ganito ang mga nilalaman ng configuration file.

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

kasi ay kokopyahin ang mga setting ng kasalukuyang user, pagkatapos ay dapat na isagawa ang utos pagkatapos mag-log in ang user, na nangangahulugang kakailanganin namin. May isang maliit na "ngunit", ang pagpapatupad ay magaganap pagkatapos mag-log in ang isang user na may mga karapatan ng administrator. At hindi ko nais na lumikha ng isang karagdagang file na kakailanganin para matagumpay na tumakbo ang command. Mas mainam na ipatupad ang buong solusyon sa isang file - "Unattend.xml". Upang gawin ito, kakailanganin mo lamang na magpatakbo ng isang command na lumilikha ng isang configuration file. Sa tingin ko ay gagawa ako ng configuration file gamit ang "echo" na utos sa "cmd" na kapaligiran, ngunit kailangan nitong makatakas sa mga anggulong bracket na may circumflex. Yung. Upang lumikha ng isang configuration file, ang sumusunod na command ay nakuha.

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

Ngunit kailangan nating ilagay ang utos na ito sa XML, na may sariling mga kinakailangan para sa paggamit ng mga espesyal na character:

Espesyal na karakter
Kapalit na halaga

>
&gt;

<
&lt;

&
&amp;

'
&apos;

"
&quot;

Bilang resulta, upang lumikha ng isang configuration file, nakuha namin ang sumusunod na command para sa "FirstLogonCommands".

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;

Susunod, isinasagawa namin ang command gamit ang configuration file.

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

Susunod, tanggalin ang naunang nilikha na file at i-reboot ang system. magkakabisa ang mga pagbabago pagkatapos ng pag-reboot.

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

Bilang isang resulta, natapos ko ang sumusunod na file ng sagot para sa sysprep.

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>

Suriin natin...

Ina-upload namin ang imahe ng system - Russified sa audit mode.

Binago namin ang Unattend.xml file sa bago, patakbuhin ang "Sysprep.bat", piliin ang punto 2 at tingnan kung ano ang nakuha namin. Sa unang pag-boot mo, ang welcome screen ay nasa English at nagre-reboot ang system. Ang welcome screen ay nasa Russian, gumagana ang multikiosk.

Kung mayroon kang anumang mga tanong tungkol sa pag-set up at paglilisensya ng Windows 10 IoT Enterprise, mangyaring makipag-ugnayan sa: [protektado ng email] o sa website quarta-embedded.ru.
Makakahanap ka ng mga sagot sa ilang tanong sa aming wiki o sa aming channel sa YouTube

May-akda ng artikulo: Vladimir Borisenkov, dalubhasa sa teknikal sa Quarta Technologies.

Pinagmulan: www.habr.com