Windows 10 IoT Enterprise 2019 - Mode Multikiosk

Pambuka

Windows 10 IoT Enterprise 2019 iku jeneng marketing kanggo release sabanjuré saka Windows 10. Rilis versi iki announced ing September 2018, mungguh, wis versi 1809, 18 punika taun, 09 punika sasi. Akeh artikel sing ditulis babagan rilis anyar Windows 10 1809, nanging umume dikhususake kanggo macem-macem "busur", "kaendahan" lan macem-macem fungsi sing dikarepake ing omah.
Artikel iki mung bakal ngrembug fungsi sing bisa uga dikarepake ing antarane produsen piranti kanthi tujuan tetep. Yaiku, babagan kemampuan anyar mode "Kiosk". Topik ngganti jeneng skema layanan kanggo edisi Windows segmen perusahaan uga bakal didemek.

Skema layanan lawas kanthi jeneng anyar

Ayo kula miwiti kanthi panjelasan singkat: ing bagean perusahaan edisi Windows ana rong skema layanan sing Windows nampa nganyari. Diagram layanan duwe sebutan huruf. Saiki cabang layanan kasebut diarani LTSC lan SAC.

LTSC stands for Saluran Layanan Jangka Panjang (karo pangopènan jangka panjang). Sadurunge, saluran kasebut diarani LTSB - Cabang Pelayanan Jangka Panjang. Microsoft mung ngganti jeneng saluran layanan kasebut, layanan kasebut tetep padha.

Microsoft uga ngganti jeneng cabang layanan CBB - Cabang Saiki kanggo Bisnis, saiki cabang layanan iki diarani SAC - Saluran Semi-Tahunan. Maneh, mung jeneng sing diganti.

Nanging kudu dingerteni manawa cabang layanan LTSC lan SAC nggunakake distribusi Windows sing beda.

A sethitik babagan mode kios anyar ing SAC

Kaya sing wis dakkandhakake, LTSC lan SAC duwe distribusi sing beda. LTSC ora duwe app universal standar utawa toko app, nanging SAC duwe. Mulane, LTSC ora duwe browser Edge, nanging SAC duwe. Yen sampeyan milih browser Edge nalika nyetel kios, banjur ana rong mode saiki:

  1. Minangka tandha digital utawa tampilan interaktif
  2. Kaya browser umum

Aku ora bakal mikir babagan nyetel mode iki, amarga ... Persiyapan banget prasaja lan wis rampung ing antarmuka grafis. Mung nggawe pangguna sing ora dadi anggota saka grup Administrator, ngaktifake mode kiosk kanggo wong nggunakake EDGE lan ndeleng carane mode iki bisa.

Kiosk karo akeh aplikasi

Sawetara wong mikir sing nggunakake dilisensi Windows 10 IoT Enterprise nuduhake operasi mung siji aplikasi ing piranti, nyatane iki ora. Piranti kasebut kudu dirancang kanggo nindakake tugas bisnis siji lan pangguna ora duwe akses menyang desktop. Saiki Microsoft dhewe wis menehi alat kanggo nggunakake akeh aplikasi. Mode iki diarani "multi-app kiosk"; sabanjure, kanggo ringkesan, aku bakal nyebat "multikiosk". Ing artikel iki kita bakal katon ing nyetel mode iki nggunakake paket piranti lunak lan sawetara fitur saka mode iki.

A sethitik babagan mode Multikiosk

Nalika sampeyan mlebu menyang akun pangguna sing mode multi-kiosk dikonfigurasi, sistem bakal bisa digunakake ing mode tablet. Menu Mulai bakal nggedhekake menyang layar wutuh, nampilake kothak aplikasi.

Dhaptar setelan dhasar lan kapabilitas mode:

  1. Nyetel kanggo sawetara pangguna utawa grup
  2. Saben pangguna utawa klompok bisa diwenehi setelan individu
  3. Kemampuan kanggo nggunakake aplikasi universal lan klasik
  4. Kemampuan kanggo mbukak salah sawijining aplikasi kanthi otomatis nalika pangguna mlebu
  5. Aplikasi kadhaptar putih
  6. Ngakses folder nggunakake dhaptar putih

Sampeyan kudu menehi perhatian marang titik 5. Kanthi gawan, mung aplikasi sing dibutuhake supaya sistem bisa digunakake, aplikasi liyane kudu ditambahake menyang dhaptar sing diidini. Sing. Saiki sampeyan ora perlu ngatur AppLocker kanthi kapisah. Miturut cara, kanggo ngindhari konflik karo setelan AppLocker, ing mode multi-kiosk, kabeh aturan AppLocker sing dikonfigurasi ora bakal ditrapake.

Titik 6 nuduhake pilihan sing apik, nanging saiki mung bisa menehi ijin nulis menyang folder "Unduh". Mode kasebut ngidini sampeyan nggunakake aplikasi universal lan klasik. Kabeh setelan mode ditemtokake ing file XML, ing ngendi sampeyan uga bisa nemtokake setelan kanggo kios aplikasi siji.

Saiki ayo nyoba nyetel kabeh ...

Apa sing kita butuhake ...

  1. Kaping pisanan, kita butuh sistem kasebut dhewe, sing ndhukung mode multikiosk. Ing kene sampeyan bisa ngundhuh versi demo
  2. Pandhuan kanggo nyetel multikiosk
  3. Sembarang editor XML
  4. Kanggo ngetrapake setelan multikiosk:
    1. Kanggo metode No.. 1 - ICD, yaiku bagean saka ADK. ADK bisa download kene
    2. Kanggo metode No. 2 - sarana PsExec. Utilitas bisa dadi download kene

Dheweke kandha - "Ayo!"

Aku bakal nindakake kabeh eksperimen Windows 10 IoT Enterprise 1809 LTSC x32 versi komersial, dudu versi demo. Sistem ora bakal diaktifake amarga kurang aktifitas ora mengaruhi fungsi sistem. Aku njupuk 32 bit mung amarga njupuk munggah kurang papan lan bakal luwih cepet bisa karo gambar sistem.

Langkah 1 - instalasi

Nginstal Win 10 IoT Enterprise ora beda karo nginstal Win 10 Enterprise, mula aku ora bakal njlèntrèhaké kabeh proses instalasi, aku mung bakal ngomong babagan sawetara nuansa.

Mung ing kasus, mugi kula ngelingake sampeyan, aja nginstal sistem ing ndhuwur sing diinstal. Nalika installer takon babagan lokasi instalasi sistem, mbusak kabeh partisi ing disk sistem mangsa lan nemtokake disk unpartitioned.

Kita nginstal sistem tanpa sambungan Internet supaya sistem ora narik apa-apa sing ora perlu.

Amarga Kita bakal nggawe gambar serep sistem lan kanggo iki kita bakal segel ing mode audit, banjur sampeyan bisa ngirit sawetara wektu kanthi mbukak sistem ing mode audit sanalika sawise instalasi. Kanggo nindakake iki, nalika sistem njaluk sampeyan milih wilayah "Ayo miwiti karo wilayah. Iki bener" mung pencet "Ctrl + Shift + F3".

Langkah 2 - nggawe gambar sistem

Amarga kita bakal moyoki sistem lan nyoba macem-macem setelan anyar, iku bisa sing soko bakal salah lan kita kudu bali sistem kanggo negara asli. Lan supaya cepet bali menyang negara asline, sampeyan kudu nggawe gambar sistem. Siji-sijine sing bakal daklakoni yaiku nyalin "kit gentleman" - skrip lan file jawaban. Kabeh fileku ana ing folder "Sysprep", sing disalin menyang root disk sistem. Lan mesthi, aku bakal nuduhake "set gendakan" iki karo sampeyan.

Sysprep.bat - kanggo nutup sistem.

@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

Nalika diluncurake, skrip bakal mriksa anane akun "Admin" lan nggawe yen ora ana. Akun kasebut bakal ditambahake menyang grup Administrator.

Unattend.xml – file respon kanggo 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>

Nalika sealing ing mode audit, script bakal nambah printah kanggo pendaptaran kanggo mungkasi "sysprep.exe" proses supaya ora kanggo nutup jendhela sysprep kanthi manual saben wektu. Nalika disegel ing mode hello, script bakal mbusak printah kanggo nutup jendhela saka pendaptaran lan dhewe bakal ngganti nilai arsitektur ing file jawaban kanggo saiki. File jawaban ngemot paramèter kanggo boot sistem tanpa interaksi pangguna lan prentah kanggo mbusak folder "Sysprep" ing root drive sistem.

Saiki aku bakal segel sistem ing mode audit nggunakake "Sysprep.bat" lan njupuk gambar saka sistem. Aku bakal gambar sistem nggunakake DISM lan mung gambar volume sistem. Yen sampeyan mung gambar volume sistem, lan ora kabeh disk, aja lali nyalin isi direktori "WindowsSystem32Recovery" menyang volume pisanan menyang folder "RecoveryWindowsRE" sawise masang sistem. Iki kudu ditindakake sadurunge mbukak OS. sawise mbukak OS, direktori "WindowsSystem32Recovery" wis kosong.

Langkah 3 - Russification saka sistem

Paket basa bisa diinstal tanpa sambungan Internet yen sampeyan duwe paket iki. Yen ora, sistem dhewe bakal ngundhuh saka Internet nalika sampeyan nambahake basa ing setelan. Cukup ora perlu njupuk paket basa saka versi OS sadurunge. Kanggo Windows 10 1809 kudu ana paket basa khusus kanggo Windows 10 1809.

Microsoft ngetutake rencana kanggo mindhah setelan kanthi bertahap saka menu klasik menyang sing anyar, saengga ing panel kontrol klasik sampeyan ora bakal nemokake maneh setelan kanggo ngganti basa lan nginstal paket basa. Setelan kasebut saiki mung ana ing paramèter sistem.

Ing mode audit, sampeyan bisa nemokake masalah mbukak setelan sistem saka menu Start; kanggo mbukak setelan sistem, jalanake printah - "ms-settings:", mbayar manungsa waé menyang titik loro ing mburi printah, tanpa printah bakal. ora bisa. Sawise mbukak paramèter sistem sapisan nggunakake printah iki, bisa dibukak nggunakake menu grafis.

Nanging ing setelan sistem sampeyan bisa nginstal paket basa yen sistem disambungake menyang Internet, ora ana pilihan kanggo milih nginstal paket basa saka file lokal.

Aku ora bakal njlèntrèhaké proses lokalisasi sistem amarga ... iki bakal nggawe rumit artikel kasebut, utamane amarga proses lokalisasi wis rinci diterangake ing kene. Nanging aku pengin narik kawigaten sampeyan babagan keanehan ngganti basa sistem sawise nginstal paket basa nggunakake konsol. Fitur iki diterangake ing wiki sing padha karo sing dakwenehake link sadurunge, ing bagean kasebut "Nambahake basa menyang dhaptar basa".

Aku bakal nginstal paket basa tanpa sambungan internet.

Sawise lokalisasi lengkap sistem, manawa nggawe gambar sistem.

Langkah 4 - Instal aplikasi sing dibutuhake

Amarga Amarga sistem LTSB lan LTSC ora duwe toko aplikasi, nginstal aplikasi saka Microsoft Store nyebabake sawetara kesulitan, yaiku ndownload aplikasi kasebut. Kanggo ndownload aplikasi, perusahaan Adguard wis nggawe layanan sing trep banget - "Toko Adguard", karo sampeyan bisa njaluk link download sementara kanggo aplikasi lan komponen.

Kanggo nginstal aplikasi kasebut, sampeyan butuh file kanthi ekstensi "Appx" lan "AppxBundle". Sadurunge nginstal aplikasi kasebut, sampeyan kudu nginstal komponen kasebut. Minangka aturan, komponen saka aplikasi bisa dibedakake kanthi intuisi kanthi jeneng file.

Supaya ora nggawe artikel dawa banget, aku ora bakal njlèntrèhaké kanthi rinci babagan proses instalasi aplikasi, utamane amarga ana informasi babagan instalasi. pandhuan rinci. Nanging aku bakal nambah siji cara liyane kanggo nginstal aplikasi menyang akun saiki. Aplikasi bisa diinstal nggunakake program "Pasang Aplikasi", nanging kanggo nginstal aplikasi sampeyan mbutuhake sambungan Internet, nanging aplikasi bisa diinstal kanthi klik kaping pindho lan sampeyan ora butuh komponen, kabeh komponen sing dibutuhake bakal didownload lan diinstal. "Pasang Aplikasi".

Lan pangeling cilik, nalika nginstal aplikasi menyang akun saiki, sampeyan ora bakal bisa kanggo segel sistem. Cara nginstal aplikasi supaya sampeyan bisa nutup sistem, ndeleng pandhuan ing ndhuwur. Lan kanggo mriksa operasi multikiosk, aplikasi sing wis ana cukup cukup.

Langkah 5 - nggawe file konfigurasi kanggo multikiosk

Saiki kita menyang bagean sing paling menarik - nyetel mode kios. Ayo kang katon ing instruksi miturut setelan sing kita deleng. Kaping pisanan, kita kudu nggawe file konfigurasi XML, conto lengkap sing bisa ditemokake ing kene. katon kene.

Ayo dadi miwiti kanthi nyetel tata letak kothak. Cara paling gampang kanggo nggawe konfigurasi kustomisasi kothak XML yaiku ngekspor kahanan saiki.

Kaping pisanan, ayo nambah kothak aplikasi sing dibutuhake ing menu Start. Nelpon telusuran "Win + s", temokake aplikasi sing dikarepake, klik-tengen lan pilih "Pin to Start Screen".

Aku wis masang app ing ngisor iki:

  • Notepad
  • Kalkulator
  • Internet Explorer
  • paint
  • WordPad
  • paramèter
  • Keamanan Windows

Loro aplikasi pungkasan disematake amarga ... Ora ana aplikasi universal liyane ing paket LTSC standar. Elinga yen kothak desktop nyambung menyang trabasan. Saiki, kanthi mindhah kothak langsung ing menu Mulai, aku bakal misahake kothak sing disematake dadi rong klompok. Kanggo nggawe klompok kothak anyar, seret kothak sing luwih dhuwur utawa luwih murah tinimbang kothak liyane, sing bakal nyorot pemisah intuisi. Sampeyan bisa menehi jeneng klompok miturut kawicaksanan sampeyan; kanggo nindakake iki, selehake kursor mouse ing ndhuwur grup, lan nalika tulisan "Jeneng grup" katon, klik tombol mouse kiwa. Aku bakal nelpon klompok pisanan "Setelan", bakal kalebu kothak "Setelan" lan "Keamanan Windows". Aku bakal nelpon klompok kapindho "Aplikasi Kantor", kang bakal kalebu kabeh kothak liyane. Contone, sampeyan bisa mindhah kabeh klompok kothak kanthi nyeret nganggo rong garis sing ana ing sisih tengen ndhuwur jeneng grup.

Amarga Ing kothak "Keamanan Windows" jeneng ora pas, Aku bakal ngganti ukuran kanggo "Wide". Kanggo ngganti ukuran kothak, klik-tengen ing kothak banjur pilih "Resize".

Sawise konfigurasi, kita ngekspor negara saiki lan nglakokake printah ing lingkungan PowerShell - "Ekspor-StartLayout - path C: SysprepStartLayout.xml".

Sabanjure, cara paling gampang yaiku ora nggawe file setelan dhewe, nanging njupuk conto file saka kene setelan - klik ing tombol "Salin", paste isi menyang notepad lan simpen minangka "MultiAppKiosk.xml". Saiki kita ngganti setelan kita dhewe. Kanggo ngganti setelan saka kothak ditempelake, nyalin kabeh "StartLayoutCollection" pemblokiran saka "StartLayout.xml" kanggo "MultiAppKiosk.xml". Kanggo nambah aplikasi menyang sing diijini, sampeyan kudu nglebokake pengenal aplikasi universal menyang bagean "AllowedApps" lan ing blok sing padha nambah path lengkap menyang file eksekusi aplikasi klasik, sing ditemtokake ing sifat trabasan kasebut. kothak ngrujuk. Kanggo cepet menyang trabasan, klik-tengen ing kothak sing disematake lan pindhah menyang Liyane> Pindhah menyang Lokasi File. Elinga yen parameter "AppUserModelId" digunakake kanggo nemtokake ID App Universal, lan parameter "DesktopAppPath" digunakake kanggo nemtokake path lengkap menyang aplikasi desktop. Lan siji nuansa cilik, yen sampeyan arep nggunakake IE ing sistem x64, banjur ing dhaptar aplikasi sing diidini sampeyan kudu nemtokake rong dalan kanggo file eksekusi "Program FilesInternet Exploreriexplore.exe" lan "Program Files (x86)Internet Exploreriexplore. exe”.

Aku ora bakal menehi akses menyang folder, mula aku mbusak bagean "FileExplorerNamespaceRestrictions".

Nampilake taskbar ora ngganggu aku, mula aku ninggalake kabeh kaya sing ana ing bagean "Taskbar".

Ing conto, loro profil kasebut, nanging aku mung bakal duwe siji profil, supaya bagean karo profil liya bisa dibusak. Sadurunge instal, mbayar manungsa waé kanggo conto kanthi otomatis miwiti aplikasi karo bantahan.

Ing bagean "Konfigurasi", akun disambungake menyang profil; elinga manawa sawetara akun bisa disambung menyang siji profil. Nanging amarga Aku mung kasengsem ing siji akun, banjur aku bakal mbusak kabeh bindings kajaba sing pisanan - pamblokiran "Config". Ing ikatan sing isih ana aku bakal nulis jeneng pangguna "Panganggo".

Aku entuk file iki kanthi paramèter

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>

Nalika sampeyan nggawe file konfigurasi XML, aja lali yen saben profil kudu duwe ID unik, lan ora mung ing siji file XML, nanging ing siji OS. Sing. Saenipun, kanggo ngindhari kebingungan, sampeyan bisa nggawe pengenal anyar saben wektu; iki bisa ditindakake ing lingkungan PowerShell nggunakake printah "[guid]:: NewGuid ()". Lan manawa kanggo nyimpen file ing enkoding "UTF-8", yen file disimpen ing enkoding "ANSI", banjur nalika mbangun paket preparation bakal nampa kesalahan yen file XML ngemot Cyrillic.

Langkah 6 - nglamar setelan multikiosk

Ayo goleki rong cara kanggo ngetrapake setelan sing diterangake ing file konfigurasi. Kapisan yaiku liwat paket provisioning, sing kudu digawe ing ICD. Kanggo sawetara, mbok menawa cara iki bakal luwih akrab. Kapindho nggunakake "MDM Bridge WMI Provider", cara iki ketoke luwih trep kanggo kula.

Cara No.1

Sapa sing ora duwe ICD? download ADK lan nginstal. Nginstal ADK gampang banget; set komponen bisa ditinggalake minangka standar.

Bukak ICD, klik ing kothak "Persiapan lanjutan", nemtokake jeneng lan folder proyek lan klik "Sabanjure". Ing jendela sabanjure, pilih "Kabeh edisi desktop Windows" lan klik "Sabanjure". Sampeyan bisa ngliwati ngimpor paket persiapan; klik "Rampung".

Bukak menu gulung mudhun "Setelan Runtime", banjur tambahake submenu "AssignedAccess" lan pilih "MultiAppAssignedAccessSettings". Ing sisih ndhuwur bagean tengah jendela ICD, klik tombol "Browse" lan nuduhake lokasi file XML kanthi setelan. Yen ngono, sampeyan bisa nyimpen proyek kanthi mencet "Ctrl + s". Ing sisih kiwa ndhuwur ICD, pilih "Ekspor" lan pilih "Paket Penyediaan" saka menu gulung mudhun. Minangka pemilik, pilih "administrator IT"; kabeh pitakonan liyane bisa dilewati kanthi ngeklik "Sabanjure" lan ing pungkasan klik "Mbangun" lan "Rampung".

Ing sistem sing diinstal, aja lali nggawe pangguna "Panganggo"; dheweke ora bisa ditambahake menyang grup "Administrator", yen ora, multikiosk ora bisa digunakake. Aku nggawe pangguna ing Manajemen Komputer kanthi sandhi sing ora tau kadaluwarsa.

Saiki kita mbukak paket persiapan ing sistem sing wis diinstal sadurunge. Sawise ngetrapake paket persiapan, menu Start lan menu administrator bakal ganti. Ing kolom wiwitan kiwa tombol kudu ilang: "Dokumen", "Gambar", "Pilihan". Yen menu wiwitan ora diganti, ana sing salah. Paket sing diinstal bisa dibusak kanthi mbukak Setelan > Akun > Akses akun kerja utawa sekolah > Tambah utawa mbusak jendhela paket provisioning.

Yen menu wiwitan wis diganti, banjur setelan sing Applied kanggo sistem, mlebu minangka pangguna sing multikiosk wis diatur lan katon ing asil.

Cara No.2

Nglamar setelan nggunakake "MDM Bridge WMI Provider" diterangake ing kene. Penak saka metode iki yaiku keluwesan panggunaan lan kemampuan kanggo nyisihake akeh operasi manual sing dibutuhake kanggo nggawe paket persiapan. Ing kene kabeh wong bisa nggawe keputusan dhewe sing bakal trep kanggo dheweke. Aku nggawe saperangan script kanggo aku.

MiltiKiosk.bat – skrip peluncuran

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

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

Yen sampeyan pengin nggunakake solusiku, banjur simpen skrip ing ndhuwur kanthi jeneng asli ing siji folder lan lebokake file "PsExec.exe" ing folder sing padha. Ing folder sing padha, nggawe folder "XML" lan nyalin file XML kanggo ngatur multikiosk menyang. Aku bakal nggunakake file padha ing cara pisanan.

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>

A sethitik babagan fitur saka script. Skrip kasebut dirancang kanggo nggunakake file XML kanthi enkoding "UTF8", yen sampeyan pengin nggunakake enkoding "ANSI", banjur mbusak parameter "encoding UTF8" saka pilihan maca file. Sampeyan kudu nyelehake file XML ing folder "XML" tanpa ngganti karakter; skrip kasebut bakal ngganti karakter khusus kanthi sebutan sing cocog. Supaya ora bingung ing GUID kanggo ngubungake pangguna menyang profil, sampeyan mung bisa nunjukake nomer pangguna utawa jeneng ing kurung kriting; kabeh isi ing kurung kriting bakal diganti karo GUID.

Nggunakake script banget prasaja, mung mbukak lan pilih item sing dibutuhake. Kanggo ngganti konfigurasi saiki dadi anyar, ora perlu mbusak sing saiki, bakal ditimpa. Aja lali nggawe pangguna sing wis ditemtokake ing file konfigurasi.

Nalika ndeleng konfigurasi multikiosk saiki ing sesi sing padha karo sing diterapake, tinimbang karakter khusus, kombinasi karakter panggantos bakal ditampilake. Sawise ngganti sesi (wiwit maneh skrip), kabeh karakter khusus bakal ditampilake ing wangun asline.

Langkah 7 - Sealing Sistem

Multikiosk bisa digunakake, ya, iku kabeh, mesthine ...

Yen kabeh mlaku miturut rencana, mula sampeyan ora ngerteni apa-apa.

Aja lali yen kita isih kudu ngalih sistem saka mode audit menyang mode sambutan. Inggih, kita siyap iki, kita miwiti "Sysprep.bat", pilih titik 2, sistem disegel. Kita nguripake piranti, boots sistem, kita mlebu menyang akun pangguna sing multikiosk wis diatur, nanging ora bisa mlebu. Sawise pesen "Welcome", pesen "Logout" katon.

Kaping pisanan aku mung pengin njlèntrèhaké solusi kanggo masalah, nanging mengko aku mutusaké kanggo njlèntrèhaké langkah-langkah kanggo ngenali masalah lan golek solusi sing paling gampang amarga ... Mesthi akeh sing maca bakal disiksa dening keraguan sing ora jelas - "Apa yen kaya iki ...". Aku mikir sing njlèntrèhaké macem-macem nyobi bakal ngirit wektu sing signifikan yen sampeyan pengin golek solusi liyane. Kanggo nggawe informasi sing akurat sabisa, lan maneh priksa manawa ora ana kesalahan, aku bakal njlèntrèhaké eksperimen ing format "rampung lan direkam". Sing. Aku bakal nindakake eksperimen sing diterangake maneh.

Eksperimen

Apa sing kita lakoni? Ana rong akun ing sistem:

"Admin" - ing grup "Administrator".
"Panganggo" - ing grup "Panganggo".
Ing mode audit, multikiosk makarya, nanging nalika disegel, iku ora bisa.

Eksperimen 1

Kita mbusak paket persiapan sing wis diinstal, ing "Manajemen Komputer" snap-in kita mbusak pangguna "Panganggo" lan nggawe pangguna anyar kanthi jeneng "Panganggo", aplikasi paket persiapan, pindhah menyang akun "Panganggo" - ora. ora bisa. Kita pindhah ing jeneng "Admin", mbusak pangguna "Panganggo" saka grup "Panganggo", nambah menyang grup "Administrator", pindhah ing jeneng "Panganggo" - iku ora bisa. Kita mlebu kanthi jeneng "Admin", mbusak paket persiapan nganggo multikiosk, mlebu kanthi jeneng "Panganggo" - kita bisa mlebu, nanging mesthi mode multikiosk ora bisa digunakake amarga Paket provisioning wis dibusak.

Eksperimen 2

Kita upload gambar sistem - Russified ing mode audit.

OS wis dimuat, pencet "Win + r", amarga Jendhela sysprep kita wis ditutup kanthi otomatis, mbukak printah "sysprep", lan mbukak "sysprep" ing jendhela sing mbukak. Setelan Sysprep ing jendhela: "Go to the system welcome window (OOBE)", "Nyiyapake kanggo nggunakake", "Reboot". Klik "OK" lan ngenteni salam OS. Kita mangsuli pitakon nalika sistem boot pisanan: "Terus ing basa sing dipilih?" - "Rusia"; wilayah - Rusia; tata letak keyboard - Rusian; nambah tata letak keyboard kapindho - skip; "Ayo sambungake sampeyan menyang jaringan" - "Skip kanggo saiki"; nyambung menyang Internet - ora; perjanjian lisensi - nampa; "Sapa sing bakal nggunakake komputer iki" - "Tes"; nggawe sandhi - ninggalake kolom kosong; Operasi sing trep ing piranti sing beda - ora; Setelan privasi - nampa. OS wis dimuat, ing "Manajemen Komputer" snap-in kita nggawe pangguna kanthi jeneng "Panganggo", nambah paket preparation. Asil iku ora bisa.

Eksperimen 3

Kita upload gambar sistem - Russified ing mode audit.

OS wis dimuat, sambungake sistem menyang Internet, jalanake printah "gpedit.msc" lan ing bagean "Windows Update" ngaktifake pilihan "Aktifake nganyari sing disaranake liwat nganyari otomatis", urip maneh yen ngono. Ing tengah nganyari, klik "Mriksa nganyari" lan urip maneh nganti kabeh nganyari wis diinstal. Pedhot sambungan sistem saka Internet. Kita miwiti "sysprep" ing mode grafis lan mbaleni kabeh langkah sing diterangake ing langkah sadurunge saka mlaku "sysprep" sarana kanggo nambah paket preparation. Asil iku ora bisa.

Eksperimen 4

Kita upload gambar sistem - Inggris ing mode audit.

Kita miwiti "sysprep" ing mode grafis, segel OS kanthi paramèter sing padha nalika eksperimen 2. Nalika sistem pisanan boot, kita milih paramèter sing padha ing eksperimen 2, kajaba paramèter regional lan basa amarga Ora ana basa Rusia. Kanthi cara sing padha, nggawe pangguna "Panganggo" lan tambahake paket provisioning. Asil iku bisa. Sing. Masalah kasebut ana gandhengane karo lokalisasi.

Eksperimen 5

Kita upload gambar sistem - Russified ing mode audit.

Ing snap-in "Manajemen Komputer", nggawe pangguna "Panganggo", tambahake paket persiapan, pindhah menyang akun "Panganggo", multi-kiosk bisa digunakake.

Log metu saka akun lan mlebu ing akun "Admin". Kita miwiti PowerShell kanthi hak administrator, nglakokake printah "Dism / online / Get-Intl" lan deleng "Basa antarmuka pangguna standar: en-US".

Kita boot saka flash drive menyang WinPE, OS sing disebarake ana ing drive E. Kita nglakokake printah "Dism / gambar: E: / Set-UILang: ru-ru". Kita katon ing asil, nglakokaké "Dism / gambar: E: / Get-Intl" lan ndeleng "Basa UI sistem Default: ru-RU".

Kita boot menyang sistem, mlebu menyang akun "Panganggo", multikiosk ora bisa.

Kanggo netepake kanthi jelas hubungan sebab-akibat saka masalah kasebut, ayo nyoba maneh nggawe multi-kiosk bisa digunakake lan ora bisa digunakake.

Kita boot saka flash drive menyang WinPE, OS sing disebarake ana ing drive E. Kita nglakokake printah "Dism / gambar: E: / Set-UILang: en-us". Kita ndeleng asil, nglakokake "Dism / gambar: E: / Get-Intl" lan ndeleng "Basa UI sistem standar: en-US".

Kita boot menyang sistem, mlebu menyang akun "Panganggo", multikiosk dianggo.

Kita boot saka flash drive menyang WinPE, OS sing disebarake ana ing drive E. Kita nglakokake printah "Dism / gambar: E: / Set-UILang: ru-ru". Kita katon ing asil, nglakokaké "Dism / gambar: E: / Get-Intl" lan ndeleng "Basa UI sistem Default: ru-RU".

Kita boot menyang sistem, mlebu menyang akun "Panganggo", multikiosk ora bisa.

Sing. sampeyan bisa ndeleng katergantungan cetha saka kinerja kios ing standar basa antarmuka panganggo. Mungkin ana sawetara faktor liyane sing mengaruhi kinerja multikiosk?

Eksperimen 6

Kanggo kemurnian eksperimen, kita ngisi ulang sistem kasebut. Kita upload gambar sistem - Russified ing mode audit.

Kita miwiti "sysprep" ing mode grafis, segel OS kanthi paramèter sing padha nalika eksperimen 2. Kita ngenteni OS kanggo menehi salam lan njawab pitakonan: "Terus ing basa sing dipilih?" - "Inggris (Amerika Serikat)"; wilayah - Rusia; Tata letak keyboard - Rusian. Salajengipun, kabeh paramèter dipilih kaya ing eksperimen 2.

Ayo ndeleng setelan basa antarmuka pangguna standar. Kita nglakokake printah "Dism / online / Get-Intl" lan ndeleng "Basa UI sistem standar: en-US". Ing snap-in "Manajemen Komputer", nggawe pangguna "Panganggo", tambahake paket persiapan, pindhah menyang akun "Panganggo", multi-kiosk bisa digunakake.

Kita nyoba ngrusak kios kanthi ngganti basa antarmuka pangguna standar. Kita pindhah menyang pangguna "Test", sing digawe nalika sistem pisanan boot lan ngaktifake login otomatis supaya sistem ora langsung boot menyang akun "Panganggo". Jalanake "netplwiz", pilih pangguna "Test", busak centhang kothak "Mbutuhake jeneng pangguna lan sandhi" lan aplikasi paramèter.

Boot saka flash drive menyang WinPE. Jalanake printah "Dism /image:E: /Set-UILang:ru-ru". Kita katon ing asil, nglakokaké "Dism / gambar: E: / Get-Intl" lan ndeleng "Basa UI sistem Default: ru-RU".

Kita boot menyang sistem, nyoba mlebu menyang akun "Panganggo", multikiosk bisa digunakake. Sing. iku ora bisa rusak. Apa bisa ditindakake kanthi cara iki?

Eksperimen 7

Kita upload gambar sistem - Russified ing mode audit.

Kita miwiti "Sysprep.bat", pilih titik 2. Kita boot menyang sistem, nggawe pangguna "Panganggo" ing "Manajemen Komputer" snap-in, nambah paket preparation, pindhah menyang akun "Panganggo", multi- kiosk ora bisa.

Boot saka flash drive menyang WinPE. Jalanake printah "Dism / gambar: E: / Set-UILang: en-us". Kita ndeleng asil, nglakokake "Dism / gambar: E: / Get-Intl" lan ndeleng "Basa UI sistem standar: en-US".

Kita boot menyang sistem, nyoba mlebu menyang akun "Panganggo", multikiosk ora bisa.

Pranyata yen ngganti setelan basa antarmuka pangguna standar, sampeyan bisa mengaruhi kinerja multikiosk mung nalika sistem ing mode audit utawa ing boot pisanan sawise sealing sistem. Iki tegese sampeyan kudu nutup sistem kanthi file respon sing basa sistem bakal dipilih ing basa Inggris, banjur ngganti setelan sistem supaya antarmuka dadi Rusian. Ora solusi sing apik banget. Mungkin masalah bisa ditanggulangi kanthi nginstal paket basa utawa nginstal paket basa tambahan?

Eksperimen 8

Kita upload gambar sistem - Inggris ing mode audit.

Kita nyambung menyang Internet, ing paramèter sistem pindhah menyang bagean "Basa", pilih "Tambah basa", pilih basa "Rusia", klik "Sabanjure", ninggalake paramèter instalasi minangka standar, klik "Instal", sawise nginstal. paket basa kita urip maneh sistem, saiki ing Russified. Pedhot sistem saka Internet, mbukak "Sysprep.bat", pilih titik 2.

Sawise mbukak sistem, ing snap-in "Manajemen Komputer", nggawe pangguna "Panganggo", nambah paket persiapan, pindhah menyang akun "Panganggo", multi-kiosk ora bisa digunakake.

Eksperimen 9

Ayo nyoba Russify sistem sadurunge instalasi, ing mode offline. Ing wektu sing padha bakal ana program pendidikan singkat babagan lokalisasi distribusi.

Aku njupuk flash drive karo distribusi asli resik - X21-96381. Iku bakal drive "E". Kanggo masang gambar, aku nggawe folder: "c: MountInstall", "c: MountWinre", "c: MountBoot". Aku njupuk pesawat saka paket lokalisasi - X21-87814. Lan menyang folder "c: Gunung" aku nyalin paket saka: "Microsoft-Windows-Client-Language-Pack_x86_ru-ru.cab", "lp.cab", "WinPE-Setup_ru-ru.cab". Aku miwiti console karo hak administrator. Aku sing printah luwih bakal cetha tanpa komentar.

Prentah lokalisasi

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

Kita boot saka flash drive, pilih basa Rusia lan nginstal sistem ing disk kosong. Nalika sistem njaluk sampeyan milih wilayah, pencet "Ctrl + Shift + F3". Ing snap-in "Manajemen Komputer", nggawe pangguna "Panganggo", tambahake paket persiapan, pindhah menyang akun "Panganggo", multi-kiosk ora bisa digunakake.

Boot saka flash drive menyang WinPE. Jalanake printah "Dism / gambar: E: / Set-UILang: en-us".

Kita boot menyang sistem, nyoba mlebu menyang akun "Panganggo", multikiosk bisa digunakake.

Ketoke masalah ora ana ing cara nambah paket, ayo nyoba nambah paket tambahan.

Eksperimen 10

Kita njupuk flash drive sing wis disiapake ing langkah sadurunge.

Kita njupuk paket "Feat on Demand" - X21-87815. Aku nyalin paket kasebut menyang folder "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».

Bukak konsol kanthi hak administrator lan jalanake perintah kasebut:

Tim

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

Kita boot saka flash drive, pilih basa Rusia lan nginstal sistem ing disk kosong. Nalika sistem njaluk sampeyan milih wilayah, pencet "Ctrl + Shift + F3". Ing snap-in "Manajemen Komputer", gawe pangguna "Panganggo", tambahake paket provisioning, lan mlebu menyang akun "Panganggo". Aku tak layar ireng sing Hung kanggo dangu, aku panas booted sistem.

Kita mbusak paket persiapan, mlebu minangka "Panganggo", urip maneh sistem, nambah paket persiapan, multikiosk ora bisa digunakake.

Boot saka flash drive menyang WinPE. Jalanake printah "Dism / gambar: E: / Set-UILang: en-us".

Kita boot menyang sistem, nyoba mlebu menyang akun "Panganggo", multikiosk bisa digunakake.

Solusi

Pahlawan biasa. Padha tansah njupuk detour!

Macem-macem cara nginstal paket lokalisasi ora ngrampungake masalah, tegese sampeyan kudu nginstal basa "en-us" ing boot pisanan sawise nutup, lan ngganti setelan basa sawise boot pisanan.

Kita upload gambar sistem - Russified ing mode audit.

Ing file "Unattend.xml", ketik "en-US" ing parameter, mbukak "Sysprep.bat", pilih titik 2 lan ndeleng apa sing tak. Layar sambutan ing basa Inggris, multi-kiosk dianggo. Iki tegese sampeyan kudu nambah printah kanggo "Unattend.xml" kanggo ngganti basa Salam. Lan kanggo nindakake iki, sampeyan kudu mbukak printah "kontrol intl.cpl,, / f:" nuduhake file konfigurasi, sing bakal nemtokake salinan paramèter saiki menyang layar sambutan. Isi file konfigurasi bakal katon kaya iki.

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

Amarga bakal nyalin setelan pangguna saiki, banjur printah kudu kaleksanan sawise pangguna wis mlebu, kang tegese kita kudu. Ana siji cilik "nanging", eksekusi bakal ditindakake sawise pangguna kanthi hak administrator mlebu. Lan aku ora pengin nggawe file tambahan sing bakal dibutuhake supaya printah bisa sukses. Iku luwih apik kanggo ngleksanakake kabeh solusi ing file siji - "Unattend.xml". Kanggo nindakake iki, sampeyan mung kudu mbukak printah sing nggawe file konfigurasi. Aku bakal nggawe file konfigurasi nggunakake printah "kuma" ing lingkungan "cmd", nanging kudu uwal saka kurung amba karo circumflex a. Sing. Kanggo nggawe file konfigurasi, printah ing ngisor iki dijupuk.

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

Nanging kita kudu nyelehake printah iki ing XML, sing nduweni syarat dhewe kanggo nggunakake karakter khusus:

Karakter khusus
Nilai panggantos

>
&gt;

<
&lt;

&
&amp;

'
&apos;

"
&quot;

Akibaté, kanggo nggawe file konfigurasi, kita entuk printah ing ngisor iki kanggo "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;

Sabanjure, kita nglakokake printah nggunakake file konfigurasi.

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

Sabanjure, mbusak file sing digawe sadurunge lan urip maneh sistem. pangowahan bakal ditrapake sawise urip maneh.

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

Akibaté, aku rampung karo file jawaban ing ngisor iki kanggo 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>

Ayo priksa ...

Kita upload gambar sistem - Russified ing mode audit.

Kita ngganti file Unattend.xml menyang anyar, mbukak "Sysprep.bat", pilih titik 2 lan ndeleng apa kita tak. Nalika sampeyan miwiti boot, layar sambutan ana ing basa Inggris lan sistem urip maneh. Layar sambutan ana ing basa Rusia, multikiosk bisa digunakake.

Yen sampeyan duwe pitakon babagan nyetel lan menehi lisensi Windows 10 IoT Enterprise, hubungi: [email dilindhungi] utawa menyang situs web quarta-embedded.ru.
Sampeyan bisa nemokake jawaban kanggo sawetara pitakonan ing wiki kita utawa ing kita saluran YouTube

Penulis artikel: Vladimir Borisenkov, ahli teknis ing Quarta Technologies.

Source: www.habr.com