Windows 10 IoT Enterprise 2019 - Modi ya Multikiosk

Utangulizi

Windows 10 IoT Enterprise 2019 ni jina la uuzaji la toleo linalofuata la Windows 10. Kutolewa kwa toleo hili kulitangazwa mnamo Septemba 2018, kwa mtiririko huo, ina toleo la 1809, 18 ni mwaka, 09 ni mwezi. Nakala nyingi zimeandikwa juu ya kutolewa mpya kwa Windows 10 1809, lakini wengi wao wamejitolea kwa "pinde" mbalimbali, "uzuri" na utendaji mbalimbali unaohitajika nyumbani.
Nakala hii itajadili tu utendakazi ambao unaweza kuhitajika kati ya watengenezaji wa vifaa vya kusudi maalum. Yaani, kuhusu uwezo mpya wa modi ya "Kiosk". Mada ya kubadilisha majina ya miradi ya huduma kwa matoleo ya Windows ya sehemu ya biashara pia itaguswa.

Mpango wa huduma ya zamani na jina jipya

Hebu nianze na maelezo mafupi: katika sehemu ya ushirika ya matoleo ya Windows kuna mipango miwili ya huduma kulingana na ambayo Windows hupokea sasisho. Michoro ya huduma ina jina la barua. Hivi sasa matawi ya huduma yanaitwa LTSC na SAC.

LTSC inasimama kwa Kituo cha Huduma cha Muda Mrefu (pamoja na matengenezo ya muda mrefu). Hapo awali, kituo kama hicho kiliitwa LTSB - Tawi la Huduma ya Muda Mrefu. Microsoft ilibadilisha tu jina la kituo cha huduma, huduma yenyewe ilibaki sawa.

Microsoft pia ilibadilisha jina la tawi la huduma CBB - Tawi la Sasa la Biashara, sasa tawi hili la huduma linaitwa SAC - Kituo cha Semi-cha Mwaka. Tena, jina pekee limebadilika.

Lakini inapaswa kutajwa kuwa matawi ya huduma ya LTSC na SAC hutumia usambazaji tofauti wa Windows.

Kidogo kuhusu modi mpya ya kioski kwenye SAC

Kama nilivyosema tayari, LTSC na SAC zina usambazaji tofauti. LTSC haina programu za kawaida za wote au duka la programu, lakini SAC inayo. Ipasavyo, LTSC haina kivinjari cha Edge, lakini SAC inayo. Ukichagua kivinjari cha Edge wakati wa kusanidi kioski, basi njia mbili zinapatikana sasa:

  1. Kama ishara ya dijiti au onyesho shirikishi
  2. Kama kivinjari cha umma

Sitakaa katika kusanidi aina hizi, kwa sababu ... Usanidi ni rahisi sana na unafanywa katika kiolesura cha picha. Unda tu mtumiaji ambaye si mshiriki wa kikundi cha Wasimamizi, washe modi ya kioski kwa ajili yake kwa kutumia EDGE na uone jinsi njia hizi zinavyofanya kazi.

Kioski chenye programu nyingi

Baadhi ya watu wanafikiri kwamba matumizi ya leseni Biashara ya Windows 10 IoT ina maana ya uendeshaji wa programu moja tu kwenye kifaa, kwa kweli hii sivyo. Kifaa lazima kiwe kimeundwa kutekeleza kazi moja ya biashara na mtumiaji lazima asiwe na ufikiaji wa kompyuta ya mezani. Sasa Microsoft yenyewe imetoa zana ya kutumia programu nyingi. Njia hii inaitwa "kiosk cha programu nyingi"; baadaye, kwa ufupi, nitaiita "multikiosk". Katika makala hii tutaangalia kuanzisha hali hii kwa kutumia mfuko wa programu na baadhi ya vipengele vya hali hii.

Kidogo kuhusu hali ya Multikiosk

Unapoingia kwenye akaunti ya mtumiaji ambayo modi ya vioski vingi imesanidiwa, mfumo utafanya kazi katika hali ya kompyuta kibao. Menyu ya Anza itapanuka hadi skrini nzima, ikionyesha vigae vya programu.

Orodha ya mipangilio ya msingi na uwezo wa hali:

  1. Inaweka mipangilio ya watumiaji au vikundi vingi
  2. Kila mtumiaji au kikundi kinaweza kupewa mipangilio ya mtu binafsi
  3. Uwezo wa kutumia maombi ya kawaida na ya kawaida
  4. Uwezo wa kuzindua kiotomatiki moja ya programu mtumiaji anapoingia
  5. Programu zilizoidhinishwa
  6. Kufikia folda kwa kutumia orodha nyeupe

Inastahili kuzingatia hatua ya 5. Kwa chaguo-msingi, ni maombi tu ambayo ni muhimu kwa mfumo kufanya kazi yataruhusiwa kufanya kazi; maombi mengine lazima yaongezwe kwenye orodha ya wale wanaoruhusiwa. Wale. Sasa hauitaji kusanidi AppLocker kando. Kwa njia, ili kuepuka migogoro na mipangilio ya AppLocker, katika hali ya vioski vingi, sheria zote zilizowekwa za AppLocker hazitatumika.

Hatua ya 6 inaonyesha chaguo nzuri, lakini kwa sasa inawezekana tu kutoa ruhusa ya kuandika kwenye folda ya "Vipakuliwa". Hali hukuruhusu kutumia matumizi ya kawaida na ya kawaida. Mipangilio yote ya hali imebainishwa katika faili ya XML, ambayo unaweza pia kubainisha mipangilio ya kioski kimoja cha programu.

Sasa hebu tujaribu kuweka yote ...

Tunahitaji nini...

  1. Kwanza kabisa, tunahitaji mfumo yenyewe, unaounga mkono hali ya multikiosk. Hapa unaweza kupakua toleo la demo
  2. Maagizo ya kuanzisha multikiosk
  3. Mhariri wowote wa XML
  4. Ili kutumia mipangilio ya multikiosk:
    1. Kwa njia ya 1 - ICD, ambayo ni sehemu ya ADK. ADK inawezekana shusha hapa
    2. Kwa njia ya 2 - matumizi ya PsExec. Huduma inaweza kuwa shusha hapa

Alisema - "Twende!"

Nitafanya majaribio yote kwenye Windows 10 IoT Enterprise 1809 LTSC x32 toleo la kibiashara, si toleo la onyesho. Mfumo hautaamilishwa kwa sababu ukosefu wa uanzishaji hauathiri utendaji wa mfumo. Nilichukua biti 32 tu kwa sababu inachukua nafasi kidogo na itakuwa haraka kufanya kazi na picha za mfumo.

Hatua ya 1 - ufungaji

Kufunga Win 10 IoT Enterprise sio tofauti na kusakinisha Win 10 Enterprise, kwa hivyo sitaelezea mchakato mzima wa usakinishaji, nitazungumza tu kuhusu baadhi ya nuances.

Ikiwezekana, nikukumbushe, usisakinishe mfumo juu ya ile iliyowekwa. Wakati kisakinishi kinauliza juu ya eneo la usakinishaji wa mfumo, futa sehemu zote kwenye diski ya mfumo wa baadaye na ueleze diski isiyogawanywa.

Tunasakinisha mfumo bila muunganisho wa Mtandao ili mfumo usiondoe chochote kisichohitajika.

Kwa sababu Tutaunda picha za chelezo za mfumo na kwa hili tutaifunga kwa hali ya ukaguzi, basi unaweza kuokoa muda kwa kupakia mfumo katika hali ya ukaguzi mara baada ya ufungaji. Ili kufanya hivyo, wakati mfumo unakuuliza uchague eneo "Wacha tuanze na mkoa. Je, hii ni sawa" bonyeza tu "Ctrl+Shift+F3".

Hatua ya 2 - tengeneza picha ya mfumo

Kwa sababu tutadhihaki mfumo na kujaribu mipangilio mipya mbalimbali, inawezekana kwamba kitu kitaenda vibaya na tutahitaji kurejesha mfumo kwa hali yake ya awali. Na kurudi haraka kwenye hali yake ya awali, unahitaji kuunda picha ya mfumo. Kitu pekee nitakachofanya ni kunakili "seti ya muungwana" - hati na faili ya jibu. Faili zangu zote ziko kwenye folda ya "Sysprep", ambayo ninakili kwenye mzizi wa diski ya mfumo. Na kwa kawaida, nitashiriki "seti ya muungwana" hii na wewe.

Sysprep.bat - kufunga mfumo.

@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

Inapozinduliwa, hati itaangalia uwepo wa akaunti ya "Msimamizi" na kuunda ikiwa haipo. Akaunti itaongezwa kwa kikundi cha Wasimamizi.

Unattend.xml - faili ya majibu kwa 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>

Wakati wa kuziba katika hali ya ukaguzi, hati itaongeza amri kwenye Usajili ili kukomesha mchakato wa "sysprep.exe" ili usifunge dirisha la sysprep kwa mikono kila wakati. Wakati imefungwa katika hali ya hello, script itaondoa amri ya kufunga dirisha kutoka kwa Usajili na yenyewe itabadilisha thamani ya usanifu katika faili ya jibu hadi sasa. Faili ya jibu ina vigezo vya kuanzisha mfumo bila mwingiliano wa mtumiaji na amri ya kufuta folda ya "Sysprep" kwenye mzizi wa kiendeshi cha mfumo.

Sasa nitafunga mfumo katika hali ya ukaguzi kwa kutumia "Sysprep.bat" na kukamata picha ya mfumo. Nitaweka picha ya mfumo kwa kutumia DISM na nitapiga picha tu kiasi cha mfumo. Ikiwa utaweka picha ya kiasi cha mfumo tu, na sio diski nzima, basi usisahau kunakili yaliyomo kwenye saraka ya "WindowsSystem32Recovery" kwa kiasi cha kwanza kwenye folda ya "RecoveryWindowsRE" baada ya kupeleka mfumo. Hii itahitaji kufanywa kabla ya kupakia OS. baada ya kupakia OS, saraka ya "WindowsSystem32Recovery" itakuwa tayari tupu.

Hatua ya 3 - Russification ya mfumo

Kifurushi cha lugha kinaweza kusakinishwa bila muunganisho wa Mtandao ikiwa una kifurushi hiki. Ikiwa sivyo, mfumo yenyewe utaipakua kutoka kwa Mtandao unapoongeza lugha katika mipangilio. Sio tu haja ya kuchukua pakiti ya lugha kutoka kwa matoleo ya awali ya OS. Kwa Windows 10 1809 lazima kuwe na pakiti ya lugha mahsusi kwa Windows 10 1809.

Microsoft inafuata mpango wake wa kuhamisha hatua kwa hatua mipangilio kutoka kwa menyu ya kawaida hadi mpya, kwa hivyo katika jopo la kudhibiti la kawaida hutapata tena mipangilio ya kubadilisha lugha na kusakinisha pakiti ya lugha. Mipangilio hii sasa iko katika vigezo vya mfumo pekee.

Katika hali ya ukaguzi, unaweza kukutana na shida ya kufungua mipangilio ya mfumo kutoka kwa menyu ya Mwanzo; kufungua mipangilio ya mfumo, endesha amri - "ms-settings:", makini na koloni mwishoni mwa amri, bila hiyo amri itafanya. haifanyi kazi. Baada ya kufungua vigezo vya mfumo mara moja kwa kutumia amri hii, inaweza kufunguliwa kwa kutumia orodha ya graphical.

Lakini katika mipangilio ya mfumo unaweza kufunga pakiti ya lugha ikiwa mfumo umeunganishwa kwenye mtandao, hakuna chaguo la kuchagua kufunga pakiti ya lugha kutoka kwa faili ya ndani.

Sitaelezea mchakato wa ujanibishaji wa mfumo kwa sababu ... hii itakuwa ngumu sana kwa kifungu, haswa kwani mchakato wa ujanibishaji umeelezewa kwa kina ilivyoelezwa hapa. Lakini ningependa kuteka mawazo yako kwa upekee wa kubadilisha lugha ya mfumo baada ya kusakinisha pakiti ya lugha kwa kutumia koni. Kipengele hiki kimeelezewa katika wiki ile ile ambayo nilitoa kiungo hapo awali, katika kifungu kidogo "Kuongeza lugha kwenye orodha ya lugha".

Nitasakinisha kifurushi cha lugha bila muunganisho wa intaneti.

Baada ya ujanibishaji kamili wa mfumo, hakikisha kuunda picha ya mfumo.

Hatua ya 4 - Sakinisha programu zinazohitajika

Kwa sababu Kwa kuwa mifumo ya LTSB na LTSC haina duka la programu, kusakinisha programu kutoka kwa Duka la Microsoft husababisha matatizo fulani, yaani kupakua programu. Ili kupakua programu, kampuni ya Adguard imefanya huduma rahisi sana - "Duka la Adguard", ambayo unaweza kupata viungo vya kupakua vya muda vya programu na vipengele vyake.

Ili kusakinisha programu, utahitaji faili zilizo na viendelezi "Appx" na "AppxBundle". Kabla ya kufunga programu yenyewe, lazima usakinishe vipengele vyake. Kama sheria, vifaa kutoka kwa programu vinaweza kutofautishwa kwa njia ya asili na jina la faili.

Ili si kufanya makala kuwa ndefu sana, sitaelezea kwa undani mchakato wa kufunga programu, hasa kwa kuwa kuna habari juu ya ufungaji. maelekezo ya kina. Lakini nitaongeza njia moja zaidi ya kusakinisha programu kwenye akaunti yako ya sasa. Maombi yanaweza kusakinishwa kwa kutumia programu "Kisakinishaji cha Programu", lakini ili kusanikisha programu utahitaji muunganisho wa Mtandao, lakini programu zinaweza kusanikishwa kwa kubofya mara mbili na hutahitaji vipengele vyake, vipengele vyote muhimu vitapakua na kusakinisha. "Kisakinishaji cha Programu".

Na ukumbusho mdogo, wakati wa kufunga programu kwenye akaunti ya sasa, hutaweza kuifunga mfumo. Jinsi ya kufunga programu ili uweze kuziba mfumo, angalia maagizo hapo juu. Na kuangalia uendeshaji wa multikiosk, maombi yaliyopo yanatosha kabisa.

Hatua ya 5 - kuunda faili ya usanidi kwa multikiosk

Sasa tunafika kwenye sehemu ya kuvutia zaidi - kuanzisha hali ya kiosk. Hebu tuangalie maelekezo kulingana na mipangilio tunayoona. Kwanza kabisa, tutahitaji kuunda faili ya usanidi wa XML, mfano kamili ambao unaweza kupatikana hapa. tazama hapa.

Hebu tuanze kwa kuanzisha mpangilio wa tile. Njia rahisi zaidi ya kuunda usanidi wa ubinafsishaji wa tiles za XML ni kuuza nje hali yao ya sasa.

Kwanza kabisa, hebu tuongeze tiles za programu ambazo tunahitaji kwenye menyu ya Mwanzo. Piga utafutaji "Win +s", pata programu inayotakiwa, bonyeza-click juu yake na uchague "Bandika ili Kuanza Skrini".

Nimebandika programu zifuatazo:

  • Kipeperushi
  • Calculator
  • internet Explorer
  • Rangi
  • WordPad
  • Vigezo
  • Usalama wa Windows

Maombi mawili ya mwisho yalibandikwa kwa sababu... Hakuna programu zingine za ulimwengu wote kwenye kifurushi cha kawaida cha LTSC. Kumbuka kuwa vigae vya eneo-kazi vinaunganishwa na njia za mkato. Sasa, kwa kusonga tiles moja kwa moja kwenye menyu ya Mwanzo, nitatenganisha tiles zilizopigwa kwa vikundi viwili. Ili kuunda kikundi kipya cha vigae, buruta kigae juu zaidi au chini zaidi kuliko vigae vingine, ambavyo vitaangazia kigawanyaji angavu. Unaweza kutaja vikundi kwa hiari yako; kwa kufanya hivyo, weka mshale wa panya juu ya kikundi, na wakati uandishi "Taja kikundi" unaonekana, bonyeza kitufe cha kushoto cha panya. Nitaita kikundi cha kwanza "Mipangilio", itajumuisha "Mipangilio" na "Usalama wa Windows" tiles. Nitaita kikundi cha pili "Maombi ya Ofisi", ambayo itajumuisha tiles nyingine zote. Kwa njia, unaweza kuhamisha vikundi vizima vya vigae kwa kuviburuta kwa kutumia mistari miwili ambayo iko upande wa juu kulia wa jina la kikundi.

Kwa sababu Kwenye tile ya "Usalama wa Windows" jina haifai kabisa, nitabadilisha ukubwa wake kwa "Wide". Ili kubadilisha ukubwa wa tile, bonyeza-click kwenye tile na uchague "Resize".

Baada ya kusanidi, tunahamisha hali ya sasa na kutekeleza amri katika mazingira ya PowerShell - "Export-StartLayout - njia C:SysprepStartLayout.xml".

Ifuatayo, njia rahisi sio kuunda faili ya mipangilio mwenyewe, lakini chukua faili ya mfano kutoka hapa mipangilio - bofya kitufe cha "Nakili", ubandike yaliyomo kwenye notepad na uhifadhi kama "MultiAppKiosk.xml". Sasa tunabadilisha mipangilio kuwa yetu wenyewe. Ili kubadilisha mipangilio ya vigae vilivyoambatishwa, nakili kizuizi kizima cha β€œStartLayoutCollection” kutoka β€œStartLayout.xml” hadi β€œMultiAppKiosk.xml”. Ili kuongeza programu kwa zinazoruhusiwa, unahitaji kuingiza vitambulishi vya programu zima katika sehemu ya "Programu Zinazoruhusiwa" na katika kizuizi hicho hicho uongeze njia kamili ya faili zinazoweza kutekelezeka za programu za zamani, ambazo zimebainishwa katika sifa za njia za mkato ambazo tiles rejea. Ili kupata njia ya mkato kwa haraka, bofya kulia kwenye kigae kilichobandikwa na uende kwenye Zaidi > Nenda kwenye Eneo la Faili. Kumbuka kuwa kigezo cha "AppUserModelId" kinatumika kubainisha Kitambulisho cha Programu ya Wote, na kigezo cha "DesktopAppPath" kinatumika kubainisha njia kamili ya programu ya eneo-kazi. Na nuance moja ndogo zaidi, ikiwa unapanga kutumia IE kwenye mfumo wa x64, basi katika orodha ya programu zinazoruhusiwa lazima ueleze njia mbili za faili inayoweza kutekelezwa "Program FilesInternet Exploreriexplore.exe" na "Program Files (x86)Internet Exploreriexplore. exe”.

Sitatoa ufikiaji wa folda, kwa hivyo ninafuta sehemu ya "FileExplorerNamespaceRestrictions".

Kuonyesha upau wa kazi hakunisumbui, kwa hivyo ninaacha kila kitu kama kilivyo kwenye sehemu ya "Taskbar".

Katika mfano, maelezo mawili yanatajwa, lakini nitakuwa na wasifu mmoja tu, hivyo sehemu yenye wasifu wa pili inaweza kufutwa. Kabla ya kusanidua, makini na mfano wa kuanzisha programu kiotomatiki kwa hoja.

Katika sehemu ya "Mipangilio", akaunti zimeunganishwa kwa wasifu; tafadhali kumbuka kuwa akaunti nyingi zinaweza kuunganishwa kwa wasifu mmoja. Lakini kwa sababu Ninavutiwa na akaunti moja tu, basi nitafuta vifungo vyote isipokuwa ya kwanza - vizuizi vya "Config". Katika kifungo kilichobaki nitaandika jina la mtumiaji "Mtumiaji".

Nilipata faili hii na vigezo

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>

Unapotengeneza faili zako za usanidi wa XML, usisahau kwamba kila wasifu lazima uwe na kitambulisho cha kipekee, na si tu ndani ya faili moja ya XML, lakini ndani ya OS moja. Wale. Kwa hakika, ili kuepuka mkanganyiko, unaweza kuunda kitambulisho kipya kila wakati; hii inaweza kufanywa katika mazingira ya PowerShell kwa kutumia [mwongozo]::NewGuid()" amri. Na hakikisha kuhifadhi faili katika usimbuaji wa "UTF-8"; ikiwa faili imehifadhiwa katika usimbuaji wa "ANSI", basi wakati wa kuunda kifurushi cha utayarishaji utapokea hitilafu ikiwa faili ya XML ina Cyrillic.

Hatua ya 6 - kutumia mipangilio ya multikiosk

Hebu tuangalie njia mbili za kutumia mipangilio iliyoelezwa kwenye faili ya usanidi. Ya kwanza ni kupitia mfuko wa utoaji, ambao lazima uundwe katika ICD. Kwa wengine, labda njia hii itajulikana zaidi. Ya pili ni kutumia "Mtoa huduma wa MDM Bridge WMI", njia hii ilionekana kuwa rahisi zaidi kwangu.

Mbinu # 1

Nani hana ICD? pakua ADK na kufunga. Kusakinisha ADK ni rahisi sana; seti ya vipengele inaweza kuachwa kama chaguo-msingi.

Zindua ICD, bofya kwenye tile ya "Maandalizi ya Juu", taja jina na folda ya mradi na ubofye "Next". Katika dirisha linalofuata, chagua "Matoleo yote ya desktop ya Windows" na ubofye "Next". Unaweza kuruka kuagiza kifurushi cha utayarishaji; bofya "Maliza".

Panua menyu kunjuzi ya "Mipangilio ya Muda wa Kuendesha", kisha upanue menyu ndogo ya "AssignedAccess" na uchague "MultiAppAssignedAccessSettings". Juu ya sehemu ya kati ya dirisha la ICD, bofya kitufe cha "Vinjari" na uonyeshe eneo la faili ya XML na mipangilio. Ikiwezekana, unaweza kuokoa mradi kwa kushinikiza "Ctrl + s". Katika sehemu ya juu kushoto ya ICD, chagua "Export" na uchague "Kifurushi cha Utoaji" kutoka kwenye orodha ya kushuka. Kama mmiliki, chagua "Msimamizi wa TEHAMA"; maswali mengine yote yanaweza kurukwa kwa kubofya "Inayofuata" na mwisho ubofye "Jenga" na "Maliza".

Katika mfumo uliowekwa, usisahau kuunda mtumiaji "Mtumiaji"; hawezi kuongezwa kwenye kikundi cha "Wasimamizi", vinginevyo multikiosk haitafanya kazi. Niliunda mtumiaji katika Usimamizi wa Kompyuta na nenosiri ambalo muda wake hauisha.

Sasa tunaendesha mfuko wa maandalizi kwenye mfumo uliowekwa hapo awali. Baada ya kutumia kifurushi cha maandalizi, menyu ya Mwanzo na menyu ya msimamizi itabadilika. Katika safu ya kushoto ya kuanza vifungo vinapaswa kutoweka: "Nyaraka", "Picha", "Chaguo". Ikiwa menyu ya kuanza haijabadilika, basi kuna kitu kimeenda vibaya. Kifurushi kilichosakinishwa kinaweza kuondolewa kwa kufungua Mipangilio > Akaunti > Ufikiaji wa akaunti ya kazini au ya shule > Ongeza au kuondoa dirisha la utoaji wa kifurushi.

Ikiwa menyu ya kuanza imebadilika, basi mipangilio inatumika kwenye mfumo, ingia kama mtumiaji ambaye multikiosk imeundwa na uangalie matokeo.

Mbinu # 2

Kuweka mipangilio kwa kutumia "Mtoa huduma wa MDM Bridge WMI" ilivyoelezwa hapa. Urahisi wa njia hii ni kubadilika kwake kwa matumizi na uwezo wa kuondokana na shughuli nyingi za mwongozo ambazo zinahitajika ili kuunda mfuko wa maandalizi. Hapa kila mtu anaweza kufanya uamuzi mwenyewe ambao utakuwa rahisi kwao. Nilijitengenezea maandishi kadhaa.

MiltiKiosk.bat - hati ya uzinduzi

@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 - hati kuu

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

Ikiwa unataka kutumia suluhisho langu, basi uhifadhi maandishi hapo juu na majina yao ya asili kwenye folda moja na uweke faili ya "PsExec.exe" kwenye folda moja. Katika folda hiyo hiyo, unda folda ya "XML" na nakala ya faili za XML ili kusanidi multikiosk ndani yake. Nitatumia faili sawa na katika njia ya kwanza.

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>

Kidogo kuhusu vipengele vya hati. Hati imeundwa kutumia faili za XML zilizo na usimbaji wa "UTF8"; ikiwa ungependa kutumia usimbaji wa "ANSI", kisha uondoe kigezo cha "usimbaji UTF8" kwenye chaguo la kusoma faili. Ni lazima uweke faili za XML kwenye folda ya "XML" bila kubadilisha herufi; hati yenyewe itachukua nafasi ya herufi maalum na uainisho unaofaa. Ili usichanganyikiwe katika GUID za kuunganisha watumiaji kwenye wasifu, unaweza kuashiria tu nambari ya mtumiaji au jina katika viunga vilivyopinda; yaliyomo katika brashi zilizopinda itabadilishwa na GUID.

Kutumia hati ni rahisi sana, endesha tu na uchague kipengee kinachohitajika. Ili kubadilisha usanidi wa sasa kuwa mpya, sio lazima kufuta ule wa sasa; itaandikwa tena. Usisahau kuunda watumiaji ambao wameainishwa kwenye faili ya usanidi.

Unapotazama usanidi wa sasa wa multikiosk katika kikao sawa ambacho kilitumiwa, badala ya wahusika maalum, mchanganyiko wa wahusika badala utaonyeshwa. Baada ya kubadilisha kipindi (kuanzisha upya hati), wahusika wote maalum wataonyeshwa katika fomu yao ya awali.

Hatua ya 7 - Kufunga Mfumo

Multikiosk inafanya kazi, vizuri, hiyo ndiyo yote, inaweza kuonekana ...

Ikiwa kila kitu kinakwenda kulingana na mpango, basi hauoni kitu.

Usisahau kwamba bado tunahitaji kubadilisha mfumo kutoka kwa hali ya ukaguzi hadi hali ya kukaribisha. Naam, tuko tayari kwa hili, tunazindua "Sysprep.bat", chagua hatua ya 2, mfumo umefungwa. Tunawasha kifaa, boti za mfumo, tunaingia kwenye akaunti ya mtumiaji ambayo multikiosk imeundwa, lakini hatuwezi kuingia. Baada ya ujumbe wa "Karibu", ujumbe wa "Toka" unaonekana.

Hapo awali nilitaka kuelezea suluhisho la shida tu, lakini baadaye niliamua kuelezea hatua za kutambua shida na kupata suluhisho rahisi zaidi kwa sababu ... Hakika wasomaji wengi watateswa na mashaka yasiyoeleweka - "Vipi ikiwa ni kama hii ...". Nadhani kuelezea majaribio anuwai kutakuokoa muda mwingi ikiwa unataka kupata suluhisho lingine. Ili kufanya taarifa iwe sahihi iwezekanavyo, na kwa mara nyingine tena kuhakikisha kuwa hakuna makosa, nitaelezea majaribio katika muundo "uliofanywa na kurekodi". Wale. Nitafanya majaribio yaliyoelezwa tena.

Majaribio

Tulifanya nini? Kuna akaunti mbili kwenye mfumo:

"Msimamizi" - katika kikundi cha "Wasimamizi".
"Mtumiaji" - katika kikundi cha "Watumiaji".
Katika hali ya ukaguzi, multikiosk ilifanya kazi, lakini wakati imefungwa, haikufanya kazi.

Jaribio 1

Tunafuta kifurushi cha utayarishaji kilichosanikishwa, katika snap-in ya "Usimamizi wa Kompyuta" tunafuta mtumiaji "Mtumiaji" na kuunda mtumiaji mpya kwa jina "Mtumiaji", weka kifurushi cha maandalizi, nenda kwa akaunti ya "Mtumiaji" - inafanya. haifanyi kazi. Tunaenda chini ya jina "Msimamizi", ondoa mtumiaji "Mtumiaji" kutoka kwa kikundi cha "Watumiaji", uiongeze kwenye kikundi cha "Wasimamizi", nenda chini ya jina "Mtumiaji" - haifanyi kazi. Tunaingia chini ya jina "Msimamizi", futa kifurushi cha maandalizi na multikiosk, ingia chini ya jina "Mtumiaji" - tuliweza kuingia, lakini kwa kweli hali ya multikiosk haifanyi kazi kwa sababu. Kifurushi cha utoaji kimeondolewa.

Jaribio 2

Tunapakia picha ya mfumo - Imethibitishwa kwa Kirusi katika hali ya ukaguzi.

OS imepakia, bonyeza "Win + r", kwa sababu Dirisha letu la sysprep limefungwa kiotomatiki, endesha amri ya "sysprep", na uendesha "sysprep" kwenye dirisha linalofungua. Mipangilio ya Sysprep kwenye dirisha: "Nenda kwenye dirisha la kukaribisha mfumo (OOBE)", "Inajiandaa kwa matumizi", "Washa upya". Bonyeza "Sawa" na usubiri salamu ya OS. Tunajibu maswali wakati mfumo unapoanza kwa mara ya kwanza: "Endelea katika lugha iliyochaguliwa?" - "Kirusi"; mkoa - Urusi; mpangilio wa kibodi - Kirusi; ongeza mpangilio wa pili wa kibodi - ruka; "Hebu tuunganishe kwenye mtandao" - "Ruka kwa sasa"; kuunganisha kwenye mtandao - hapana; makubaliano ya leseni - kukubali; "Nani atatumia kompyuta hii" - "Jaribio"; kuunda nenosiri - acha shamba tupu; Uendeshaji rahisi kwenye vifaa tofauti - hapana; Mipangilio ya faragha - ukubali. OS imepakia, katika snap-in "Usimamizi wa Kompyuta" tunaunda mtumiaji kwa jina "Mtumiaji", ongeza mfuko wa maandalizi. Matokeo yake ni kwamba haifanyi kazi.

Jaribio 3

Tunapakia picha ya mfumo - Imethibitishwa kwa Kirusi katika hali ya ukaguzi.

OS imepakia, kuunganisha mfumo kwenye mtandao, endesha amri "gpedit.msc" na katika sehemu ya "Windows Update" uwezesha chaguo "Wezesha sasisho zilizopendekezwa kupitia sasisho za moja kwa moja", fungua upya ikiwa tu. Katika kituo cha sasisho, bofya "Angalia sasisho" na uwashe upya hadi sasisho zote zisakinishwe. Tenganisha mfumo kutoka kwa Mtandao. Tunazindua "sysprep" katika hali ya graphical na kurudia hatua zote zilizoelezwa katika hatua ya awali kutoka kwa matumizi ya "sysprep" ili kuongeza mfuko wa maandalizi. Matokeo yake ni kwamba haifanyi kazi.

Jaribio 4

Tunapakia picha ya mfumo - Kiingereza katika hali ya ukaguzi.

Tunazindua "sysprep" katika hali ya graphical, muhuri OS na vigezo sawa na wakati wa majaribio 2. Wakati mfumo unapoanza buti, tunachagua vigezo sawa na katika jaribio la 2, isipokuwa vigezo vya kikanda na lugha kwa sababu. Hakuna lugha ya Kirusi. Kwa njia hiyo hiyo, unda mtumiaji "Mtumiaji" na uongeze mfuko wa utoaji. Matokeo yake ni kwamba inafanya kazi. Wale. Tatizo linahusiana na ujanibishaji.

Jaribio 5

Tunapakia picha ya mfumo - Imethibitishwa kwa Kirusi katika hali ya ukaguzi.

Katika kipengee cha "Usimamizi wa Kompyuta", unda mtumiaji "Mtumiaji", ongeza kifurushi cha maandalizi, nenda kwenye akaunti ya "Mtumiaji", kioski nyingi hufanya kazi.

Ondoka kwenye akaunti yako na uingie chini ya akaunti ya "Msimamizi". Tunazindua PowerShell na haki za msimamizi, kutekeleza amri "Dism /online /Get-Intl" na uone "Lugha ya kiolesura chaguo-msingi: sw-US".

Tunafungua kutoka kwenye gari la flash kwenye WinPE, OS iliyotumiwa iko kwenye gari langu la E. Tunafanya amri "Dism / picha: E: /Set-UILang:ru-ru". Tunaangalia matokeo, fanya "Dism / picha: E: /Get-Intl" na uone "Lugha ya UI ya mfumo wa chaguo-msingi: ru-RU".

Tunaingia kwenye mfumo, ingia kwenye akaunti ya "Mtumiaji", multikiosk haifanyi kazi.

Ili kuanzisha kwa uwazi uhusiano wa sababu-na-athari ya tatizo, hebu tujaribu tena kufanya vioski vingi kufanya kazi na kutofanya kazi.

Tunafungua kutoka kwenye gari la flash kwenye WinPE, OS iliyotumiwa iko kwenye gari langu la E. Tunafanya amri "Dism / picha: E: /Set-UILang:en-us". Tunaangalia matokeo, tekeleza "Dism /image:E: /Get-Intl" na kuona "Lugha ya UI ya mfumo chaguo-msingi: en-US".

Tunaingia kwenye mfumo, ingia kwenye akaunti ya "Mtumiaji", multikiosk inafanya kazi.

Tunafungua kutoka kwenye gari la flash kwenye WinPE, OS iliyotumiwa iko kwenye gari langu la E. Tunafanya amri "Dism / picha: E: /Set-UILang:ru-ru". Tunaangalia matokeo, fanya "Dism / picha: E: /Get-Intl" na uone "Lugha ya UI ya mfumo wa chaguo-msingi: ru-RU".

Tunaingia kwenye mfumo, ingia kwenye akaunti ya "Mtumiaji", multikiosk haifanyi kazi.

Wale. unaweza kuona utegemezi dhahiri wa utendakazi wa kioski kwenye lugha chaguo-msingi ya kiolesura cha mtumiaji. Labda kuna mambo mengine yanayoathiri utendaji wa multikiosk?

Jaribio 6

Kwa usafi wa jaribio, tunajaza mfumo tena. Tunapakia picha ya mfumo - Imethibitishwa kwa Kirusi katika hali ya ukaguzi.

Tunazindua "sysprep" katika hali ya graphical, muhuri OS na vigezo sawa na wakati wa majaribio 2. Tunasubiri OS kutusalimia na kujibu maswali: "Endelea katika lugha iliyochaguliwa?" – β€œKiingereza (Marekani)”; mkoa - Urusi; Mpangilio wa kibodi - Kirusi. Zaidi ya hayo, vigezo vyote vilichaguliwa kama katika jaribio la 2.

Hebu tuangalie mipangilio ya lugha ya kiolesura chaguo-msingi cha mtumiaji. Tunatekeleza amri "Dism /online /Get-Intl" na kuona "Lugha ya UI ya mfumo chaguo-msingi: en-US". Katika kipengee cha "Usimamizi wa Kompyuta", unda mtumiaji "Mtumiaji", ongeza kifurushi cha maandalizi, nenda kwenye akaunti ya "Mtumiaji", kioski nyingi hufanya kazi.

Tunajaribu kuvunja kioski kwa kubadilisha lugha ya kiolesura chaguomsingi. Tunaingia kwenye mtumiaji wa "Mtihani", ambayo iliundwa wakati mfumo ulipoanza na kuwezesha kuingia kwa moja kwa moja kwa ajili yake ili mfumo usiingie kwenye akaunti ya "Mtumiaji" mara moja. Tekeleza "netplwiz", chagua mtumiaji wa "Jaribio", onya kisanduku cha kuteua "Inahitaji jina la mtumiaji na nenosiri" na utumie vigezo.

Boot kutoka kwa gari la flash hadi WinPE. Tekeleza amri "Dism / picha: E: /Set-UILang:ru-ru". Tunaangalia matokeo, fanya "Dism / picha: E: /Get-Intl" na uone "Lugha ya UI ya mfumo wa chaguo-msingi: ru-RU".

Tunaingia kwenye mfumo, jaribu kuingia kwenye akaunti ya "Mtumiaji", multikiosk inafanya kazi. Wale. haiwezi kuvunjika. Je, inawezekana kuifanya ifanye kazi kwa njia hii?

Jaribio 7

Tunapakia picha ya mfumo - Imethibitishwa kwa Kirusi katika hali ya ukaguzi.

Tunazindua "Sysprep.bat", chagua hatua ya 2. Tunaingia kwenye mfumo, tengeneza mtumiaji "Mtumiaji" katika "Usimamizi wa Kompyuta", ongeza kifurushi cha maandalizi, nenda kwenye akaunti ya "Mtumiaji", multi- kioski haifanyi kazi.

Boot kutoka kwa gari la flash hadi WinPE. Tekeleza amri "Dism /image:E: /Set-UILang:en-us". Tunaangalia matokeo, tekeleza "Dism /image:E: /Get-Intl" na kuona "Lugha ya UI ya mfumo chaguo-msingi: en-US".

Tunaingia kwenye mfumo, jaribu kuingia kwenye akaunti ya "Mtumiaji", multikiosk haifanyi kazi.

Inabadilika kuwa kwa kubadilisha mpangilio wa lugha ya kiolesura cha mtumiaji chaguo-msingi, unaweza kuathiri utendaji wa multikiosk tu wakati mfumo uko katika hali ya ukaguzi au kwenye boot ya kwanza baada ya kuziba mfumo. Hii ina maana kwamba utakuwa na muhuri wa mfumo na faili ya majibu ambayo lugha ya mfumo itachaguliwa kwa Kiingereza, na kisha kubadilisha mipangilio ya mfumo ili interface ni Kirusi. Sio suluhisho nzuri sana. Labda tatizo linaweza kutatuliwa kwa kusakinisha pakiti ya lugha au kusakinisha pakiti za lugha za ziada?

Jaribio 8

Tunapakia picha ya mfumo - Kiingereza katika hali ya ukaguzi.

Tunaunganisha kwenye mtandao, katika vigezo vya mfumo nenda kwa sehemu ya "Lugha", chagua "Ongeza lugha", chagua lugha "Kirusi", bonyeza "Inayofuata", acha vigezo vya usakinishaji kama chaguo-msingi, bonyeza "Sakinisha", baada ya kusakinisha. pakiti ya lugha tunaanzisha upya mfumo, sasa kwenye Russified. Tenganisha mfumo kutoka kwa Mtandao, endesha "Sysprep.bat", chagua hatua ya 2.

Baada ya kupakia mfumo, katika snap-in "Usimamizi wa Kompyuta", unda mtumiaji wa "Mtumiaji", ongeza kifurushi cha maandalizi, nenda kwenye akaunti ya "Mtumiaji", kioski nyingi haifanyi kazi.

Jaribio 9

Hebu jaribu Russify mfumo kabla ya ufungaji, katika hali ya nje ya mtandao. Wakati huo huo kutakuwa na programu fupi ya elimu juu ya ujanibishaji wa usambazaji.

Ninachukua gari la flash na usambazaji safi wa asili - X21-96381. Itakuwa gari "E". Ili kuweka picha, ninaunda folda: "c:MountInstall", "c:MountWinre", "c:MountBoot". Ninachukua seti ya vifurushi vya ujanibishaji - X21-87814. Na kwenye folda ya "c: Mount" ninakili vifurushi kutoka kwake: "Microsoft-Windows-Client-Language-Pack_x86_ru-ru.cab", "lp.cab", "WinPE-Setup_ru-ru.cab". Ninazindua koni iliyo na haki za msimamizi. Nadhani amri zaidi zitakuwa wazi bila maoni.

Amri za ujanibishaji

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

Tunafungua kutoka kwenye gari la flash, chagua lugha ya Kirusi na usakinishe mfumo kwenye diski tupu. Wakati mfumo unakuuliza kuchagua eneo, bonyeza "Ctrl+Shift+F3". Katika snap-in "Usimamizi wa Kompyuta", unda mtumiaji "Mtumiaji", ongeza kifurushi cha maandalizi, nenda kwenye akaunti ya "Mtumiaji", kioski nyingi haifanyi kazi.

Boot kutoka kwa gari la flash hadi WinPE. Tekeleza amri "Dism /image:E: /Set-UILang:en-us".

Tunaingia kwenye mfumo, jaribu kuingia kwenye akaunti ya "Mtumiaji", multikiosk inafanya kazi.

Inavyoonekana, shida haiko katika njia za kuongeza kifurushi, wacha tujaribu kuongeza vifurushi vya ziada.

Jaribio 10

Tunachukua gari la flash ambalo tulitayarisha katika hatua ya awali.

Tunachukua kifurushi cha "Feat on Demand" - X21-87815. Ninakili vifurushi kutoka kwake hadi kwenye folda ya "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Β».

Zindua koni na haki za msimamizi na utekeleze amri:

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹

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

Tunafungua kutoka kwenye gari la flash, chagua lugha ya Kirusi na usakinishe mfumo kwenye diski tupu. Wakati mfumo unakuuliza kuchagua eneo, bonyeza "Ctrl+Shift+F3". Katika muhtasari wa "Usimamizi wa Kompyuta", unda mtumiaji wa "Mtumiaji", ongeza kifurushi cha utoaji, na uingie kwenye akaunti ya "Mtumiaji". Nilipata skrini nyeusi ambayo ilining'inia kwa muda mrefu, kwa hivyo nikawasha mfumo.

Tunafuta kifurushi cha maandalizi, ingia kama "Mtumiaji", fungua upya mfumo, ongeza kifurushi cha maandalizi, multikiosk haifanyi kazi.

Boot kutoka kwa gari la flash hadi WinPE. Tekeleza amri "Dism /image:E: /Set-UILang:en-us".

Tunaingia kwenye mfumo, jaribu kuingia kwenye akaunti ya "Mtumiaji", multikiosk inafanya kazi.

Suluhu

Mashujaa wa kawaida. Daima huchukua mchepuko!

Njia mbalimbali za kufunga pakiti za ujanibishaji hazikutatua tatizo, ambayo ina maana kwamba utakuwa na kufunga lugha ya "en-us" kwenye boot ya kwanza baada ya kuziba, na kubadilisha mipangilio ya lugha baada ya boot ya kwanza.

Tunapakia picha ya mfumo - Imethibitishwa kwa Kirusi katika hali ya ukaguzi.

Katika faili ya "Unattend.xml", ingiza "en-US" kwenye parameter, endesha "Sysprep.bat", chagua hatua ya 2 na uone kile tulichopata. Skrini ya kukaribisha iko kwa Kiingereza, vioski vingi hufanya kazi. Hii inamaanisha unahitaji kuongeza amri kwa "Unattend.xml" ili kubadilisha lugha ya maamkizi. Na kwa kufanya hivyo, unahitaji kuendesha amri "kudhibiti intl.cpl,, /f:" inayoonyesha faili ya usanidi, ambayo itabainisha kuiga kwa vigezo vya sasa kwenye skrini ya kukaribisha. Yaliyomo kwenye faili ya usanidi yataonekana kama hii.

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

Kwa sababu itakili mipangilio ya mtumiaji wa sasa, basi amri lazima ifanyike baada ya mtumiaji kuingia, ambayo ina maana kwamba tutahitaji. Kuna "lakini" moja ndogo, utekelezaji utafanyika baada ya mtumiaji aliye na haki za msimamizi kuingia. Na nisingependa kuunda faili ya ziada ambayo ingehitajika ili amri iendeshe kwa mafanikio. Ni bora kutekeleza suluhisho zima katika faili moja - "Unattend.xml". Ili kufanya hivyo, utahitaji tu kuendesha amri ambayo inaunda faili ya usanidi. Nadhani nitaunda faili ya usanidi kwa kutumia amri ya "echo" katika mazingira ya "cmd", lakini inahitaji kutoroka mabano ya pembe na circumflex. Wale. Ili kuunda faili ya usanidi, amri ifuatayo inapatikana.

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

Lakini tunahitaji kuweka amri hii katika XML, ambayo ina mahitaji yake ya matumizi ya wahusika maalum:

Tabia maalum
Thamani ya uingizwaji

>
&gt;

<
&lt;

&
&amp;

'
&apos;

"
&quot;

Matokeo yake, ili kuunda faili ya usanidi, tulipata amri ifuatayo ya "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;

Ifuatayo, tunatoa amri kwa kutumia faili ya usanidi.

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

Ifuatayo, futa faili iliyoundwa hapo awali na uanze upya mfumo. mabadiliko yataanza kutumika baada ya kuwasha upya.

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

Kama matokeo, niliishia na faili ifuatayo ya jibu ya sysprep.

Inattend.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>

Hebu angalia...

Tunapakia picha ya mfumo - Imethibitishwa kwa Kirusi katika hali ya ukaguzi.

Tunabadilisha faili ya Unattend.xml hadi mpya, endesha "Sysprep.bat", chagua hatua ya 2 na uone kile tulichopata. Unapowasha mara ya kwanza, skrini ya kukaribisha iko kwa Kiingereza na mfumo unaanza upya. Skrini ya kukaribisha iko kwa Kirusi, multikiosk inafanya kazi.

Ikiwa una maswali yoyote kuhusu kusanidi na kutoa leseni Windows 10 IoT Enterprise, tafadhali wasiliana na: [barua pepe inalindwa] au kwa tovuti quarta-embedded.ru.
Unaweza kupata majibu ya baadhi ya maswali katika wiki yetu au kwenye yetu Kituo cha YouTube

Mwandishi wa makala: Vladimir Borisenkov, mtaalam wa kiufundi katika Quarta Technologies.

Chanzo: mapenzi.com