Windows 10 IoT Enterprise 2019 - mod berbilang kiosk

Pengenalan

Windows 10 IoT Enterprise 2019 ialah nama pemasaran untuk keluaran seterusnya Windows 10. Keluaran versi ini telah diumumkan pada September 2018, masing-masing, ia mempunyai versi 1809, 18 adalah tahun, 09 adalah bulan. Banyak artikel telah ditulis pada keluaran baru Windows 10 1809, tetapi kebanyakannya dikhaskan untuk pelbagai "busur", "kecantikan" dan pelbagai fungsi yang diperlukan di rumah.
Artikel ini hanya akan membincangkan kefungsian yang mungkin mendapat permintaan dalam kalangan pengeluar peranti tujuan tetap. Iaitu, mengenai keupayaan baharu mod "Kiosk". Topik menukar nama skim perkhidmatan untuk edisi Windows bagi segmen perusahaan juga akan disentuh.

Skim perkhidmatan lama dengan nama baharu

Biar saya mulakan dengan penjelasan ringkas: dalam segmen korporat edisi Windows terdapat dua skim perkhidmatan mengikut mana Windows menerima kemas kini. Gambar rajah perkhidmatan mempunyai sebutan huruf. Pada masa ini cawangan perkhidmatan dipanggil LTSC dan SAC.

LTSC bermaksud Saluran Servis Jangka Panjang (dengan penyelenggaraan jangka panjang). Sebelum ini, saluran sedemikian dipanggil LTSB - Cawangan Servis Jangka Panjang. Microsoft hanya menukar nama saluran perkhidmatan, perkhidmatan itu sendiri tetap sama.

Microsoft juga menukar nama cawangan perkhidmatan CBB - Cawangan Semasa untuk Perniagaan, kini cawangan perkhidmatan ini dipanggil SAC - Saluran Semi-Tahunan. Sekali lagi, hanya nama yang berubah.

Tetapi perlu disebutkan bahawa cawangan servis LTSC dan SAC menggunakan pengedaran Windows yang berbeza.

Sedikit tentang mod kiosk baharu di SAC

Seperti yang telah saya katakan, LTSC dan SAC mempunyai pengedaran yang berbeza. LTSC tidak mempunyai aplikasi universal standard atau gedung aplikasi, tetapi SAC mempunyai. Sehubungan itu, LTSC tidak mempunyai pelayar Edge, tetapi SAC mempunyai. Jika anda memilih penyemak imbas Edge semasa menyediakan kios, maka dua mod kini tersedia:

  1. Sebagai tanda digital atau paparan interaktif
  2. Seperti pelayar awam

Saya tidak akan memikirkan untuk menyediakan mod ini, kerana... Persediaan adalah sangat mudah dan dilakukan dalam antara muka grafik. Hanya buat pengguna yang bukan ahli kumpulan Pentadbir, dayakan mod kios untuknya menggunakan EDGE dan lihat cara mod ini berfungsi.

Kiosk dengan banyak aplikasi

Sesetengah orang berpendapat bahawa penggunaan berlesen Windows 10 IoT Enterprise membayangkan operasi hanya satu aplikasi pada peranti, sebenarnya ini tidak berlaku. Peranti mesti direka bentuk untuk melaksanakan satu tugas perniagaan dan pengguna tidak boleh mempunyai akses kepada desktop. Kini Microsoft sendiri telah memberikan alat untuk menggunakan banyak aplikasi. Mod ini dipanggil "kiosk berbilang aplikasi"; selepas ini, untuk ringkasnya, saya akan memanggilnya "multikiosk". Dalam artikel ini kita akan melihat pada penyediaan mod ini menggunakan pakej perisian dan beberapa ciri mod ini.

Sedikit tentang mod Multikiosk

Apabila anda log masuk ke akaun pengguna yang mana mod berbilang kiosk dikonfigurasikan, sistem akan berfungsi dalam mod tablet. Menu Mula akan berkembang ke skrin penuh, memaparkan jubin aplikasi.

Senarai tetapan asas dan keupayaan mod:

  1. Menyediakan untuk berbilang pengguna atau kumpulan
  2. Setiap pengguna atau kumpulan boleh diberikan tetapan individu
  3. Keupayaan untuk menggunakan aplikasi universal dan klasik
  4. Keupayaan untuk melancarkan salah satu aplikasi secara automatik apabila pengguna log masuk
  5. Aplikasi disenarai putih
  6. Mengakses folder menggunakan senarai putih

Perlu diberi perhatian pada titik 5. Secara lalai, hanya aplikasi yang diperlukan untuk sistem beroperasi akan dibenarkan berfungsi; aplikasi lain mesti ditambahkan pada senarai yang dibenarkan. Itu. Kini anda tidak perlu mengkonfigurasi AppLocker secara berasingan. Ngomong-ngomong, untuk mengelakkan konflik dengan tetapan AppLocker, dalam mod berbilang kiosk, semua peraturan AppLocker yang dikonfigurasikan tidak akan digunakan.

Titik 6 menunjukkan pilihan yang baik, tetapi pada masa ini hanya mungkin untuk memberikan kebenaran menulis kepada folder "Muat Turun". Mod ini membolehkan anda menggunakan aplikasi universal dan klasik. Semua tetapan mod dinyatakan dalam fail XML, di mana anda juga boleh menentukan tetapan untuk kios aplikasi tunggal.

Sekarang mari cuba sediakan semuanya...

Apa yang kita perlukan...

  1. Pertama sekali, kita memerlukan sistem itu sendiri, yang menyokong mod multikiosk. Di sini anda boleh memuat turun versi demo
  2. Arahan untuk menyediakan multikiosk
  3. Mana-mana editor XML
  4. Untuk menggunakan tetapan multikiosk:
    1. Untuk kaedah No. 1 - ICD, yang merupakan sebahagian daripada ADK. ADK mungkin muat turun di sini
    2. Untuk kaedah No. 2 - utiliti PsExec. Utiliti boleh muat turun di sini

Dia berkata - "Mari kita pergi!"

Saya akan menjalankan semua percubaan pada Windows 10 IoT Enterprise 1809 LTSC x32 versi komersial, bukan versi demo. Sistem tidak akan diaktifkan kerana kekurangan pengaktifan tidak menjejaskan fungsi sistem. Saya mengambil 32 bit sahaja kerana ia mengambil sedikit ruang dan ia akan menjadi lebih pantas untuk berfungsi dengan imej sistem.

Langkah 1 – pemasangan

Memasang Win 10 IoT Enterprise tidak berbeza dengan memasang Win 10 Enterprise, jadi saya tidak akan menerangkan keseluruhan proses pemasangan, saya hanya akan bercakap tentang beberapa nuansa.

Untuk berjaga-jaga, biar saya ingatkan anda, jangan pasang sistem di atas yang dipasang. Apabila pemasang bertanya tentang lokasi pemasangan sistem, padamkan semua partition pada cakera sistem masa hadapan dan nyatakan cakera yang tidak dipartisi.

Kami memasang sistem tanpa sambungan Internet supaya sistem tidak mengeluarkan apa-apa yang tidak perlu.

Kerana Kami akan membuat imej sandaran sistem dan untuk ini kami akan mengelaknya dalam mod audit, kemudian anda boleh menjimatkan sedikit masa dengan memuatkan sistem dalam mod audit sejurus selepas pemasangan. Untuk melakukan ini, apabila sistem meminta anda memilih rantau “Mari kita mulakan dengan rantau. Adakah ini betul" hanya tekan "Ctrl+Shift+F3".

Langkah 2 - buat imej sistem

Kerana kami akan mengejek sistem dan mencuba pelbagai tetapan baharu, kemungkinan ada sesuatu yang tidak kena dan kami perlu mengembalikan sistem kepada keadaan asalnya. Dan untuk cepat kembali ke keadaan asalnya, anda perlu membuat imej sistem. Satu-satunya perkara yang saya akan lakukan ialah menyalin "kit gentleman" - skrip dan fail jawapan. Semua fail saya terletak dalam folder "Sysprep", yang saya salin ke akar cakera sistem. Dan secara semulajadi, saya akan berkongsi "set lelaki" ini dengan anda.

Sysprep.bat – untuk mengelak 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

Apabila dilancarkan, skrip akan menyemak kehadiran akaun "Pentadbir" dan mencipta satu jika tiada. Akaun akan ditambahkan pada kumpulan Pentadbir.

Unattend.xml – fail respons untuk 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>

Apabila mengelak dalam mod audit, skrip akan menambah arahan pada pendaftaran untuk menamatkan proses "sysprep.exe" supaya tidak menutup tetingkap sysprep secara manual setiap kali. Apabila dimeterai dalam mod hello, skrip akan mengalih keluar arahan untuk menutup tetingkap daripada pendaftaran dan dengan sendirinya akan menukar nilai seni bina dalam fail jawapan kepada yang semasa. Fail jawapan mengandungi parameter untuk but sistem tanpa interaksi pengguna dan arahan untuk memadam folder "Sysprep" dalam akar pemacu sistem.

Sekarang saya akan mengelak sistem dalam mod audit menggunakan "Sysprep.bat" dan menangkap imej sistem. Saya akan imej sistem menggunakan DISM dan hanya akan imej kelantangan sistem. Jika anda hanya akan imej kelantangan sistem, dan bukan keseluruhan cakera, maka jangan lupa untuk menyalin kandungan direktori "WindowsSystem32Recovery" ke volum pertama ke dalam folder "RecoveryWindowsRE" selepas menggunakan sistem. Ini perlu dilakukan sebelum memuatkan OS. selepas memuatkan OS, direktori "WindowsSystem32Recovery" sudah pun kosong.

Langkah 3 – Russifikasi sistem

Pek bahasa boleh dipasang tanpa sambungan Internet jika anda mempunyai pek ini. Jika tidak, sistem itu sendiri akan memuat turunnya dari Internet apabila anda menambah bahasa dalam tetapan. Hanya tidak perlu mengambil pek bahasa daripada versi OS sebelumnya. Untuk Windows 10 1809 mesti ada pek bahasa khusus untuk Windows 10 1809.

Microsoft mengikuti rancangannya untuk memindahkan tetapan secara beransur-ansur daripada menu klasik kepada yang baharu, jadi dalam panel kawalan klasik anda tidak akan menemui tetapan untuk menukar bahasa dan memasang pek bahasa lagi. Tetapan ini kini hanya dalam parameter sistem.

Dalam mod audit, anda mungkin menghadapi masalah membuka tetapan sistem dari menu Mula; untuk membuka tetapan sistem, jalankan arahan - "ms-settings:", perhatikan titik bertindih di penghujung arahan, tanpa itu arahan akan tidak berfungsi. Selepas membuka parameter sistem sekali menggunakan arahan ini, ia boleh dibuka menggunakan menu grafik.

Tetapi dalam tetapan sistem anda boleh memasang pek bahasa jika sistem disambungkan ke Internet, tiada pilihan untuk memilih untuk memasang pek bahasa daripada fail tempatan.

Saya tidak akan menerangkan proses penyetempatan sistem kerana... ini akan merumitkan artikel dengan ketara, terutamanya kerana proses penyetempatan adalah terperinci diterangkan di sini. Tetapi saya ingin menarik perhatian anda kepada keanehan menukar bahasa sistem selepas memasang pek bahasa menggunakan konsol. Ciri ini diterangkan dalam wiki yang sama yang saya berikan pautan sebelum ini, dalam subseksyen "Menambahkan bahasa pada senarai bahasa".

Saya akan memasang pek bahasa tanpa sambungan internet.

Selepas penyetempatan sistem lengkap, pastikan anda mencipta imej sistem.

Langkah 4 - Pasang aplikasi yang diperlukan

Kerana Memandangkan sistem LTSB dan LTSC tidak mempunyai stor aplikasi, pemasangan aplikasi daripada Microsoft Store menyebabkan beberapa kesukaran, iaitu memuat turun aplikasi. Untuk memuat turun aplikasi, syarikat Adguard telah membuat perkhidmatan yang sangat mudah - "Kedai Adguard", yang dengannya anda boleh mendapatkan pautan muat turun sementara untuk aplikasi dan komponennya.

Untuk memasang aplikasi, anda memerlukan fail dengan sambungan "Appx" dan "AppxBundle". Sebelum memasang aplikasi itu sendiri, anda mesti memasang komponennya. Sebagai peraturan, komponen dari aplikasi boleh dibezakan secara intuitif dengan nama fail.

Untuk tidak membuat artikel terlalu panjang, saya tidak akan menerangkan secara terperinci proses pemasangan aplikasi, terutamanya kerana terdapat maklumat mengenai pemasangan arahan terperinci. Tetapi saya akan menambah satu lagi cara untuk memasang aplikasi ke dalam akaun semasa anda. Aplikasi boleh dipasang menggunakan program "Pemasang Apl", tetapi untuk memasang aplikasi anda memerlukan sambungan Internet, tetapi aplikasi boleh dipasang dengan klik dua kali dan anda tidak memerlukan komponennya, semua komponen yang diperlukan akan memuat turun dan memasang "Pemasang Apl".

Dan peringatan kecil, apabila memasang aplikasi ke dalam akaun semasa, anda tidak akan dapat mengelak sistem. Bagaimana untuk memasang aplikasi supaya anda boleh mengelak sistem, lihat arahan di atas. Dan untuk menyemak operasi multikiosk, aplikasi sedia ada cukup mencukupi.

Langkah 5 – mencipta fail konfigurasi untuk multikiosk

Sekarang kita sampai ke bahagian yang paling menarik - menyediakan mod kiosk. Jom tengok arahan mengikut tetapan yang kita lihat. Pertama sekali, kita perlu mencipta fail konfigurasi XML, contoh penuh yang boleh didapati di sini. lihat di sini.

Mari kita mulakan dengan menyediakan susun atur jubin. Cara paling mudah untuk mencipta konfigurasi penyesuaian jubin XML ialah mengeksport keadaan semasa mereka.

Pertama sekali, mari tambah jubin aplikasi yang kita perlukan pada menu Mula. Panggil carian "Win+s", cari aplikasi yang dikehendaki, klik kanan padanya dan pilih "Pin to Start Screen".

Saya telah menyematkan apl berikut:

  • Notepad
  • Kalkulator
  • Internet Explorer
  • Cat
  • WordPad
  • Parameter
  • Keselamatan Windows

Dua permohonan terakhir telah disematkan kerana... Tiada aplikasi universal lain dalam pakej LTSC standard. Ambil perhatian bahawa jubin desktop memaut ke pintasan. Sekarang, dengan mengalihkan jubin terus dalam menu Mula, saya akan memisahkan jubin yang disematkan kepada dua kumpulan. Untuk membuat kumpulan jubin baharu, seret jubin jauh lebih tinggi atau lebih rendah daripada jubin lain, yang akan menyerlahkan pembahagi intuitif. Anda boleh menamakan kumpulan mengikut budi bicara anda; untuk melakukan ini, letakkan kursor tetikus di atas kumpulan, dan apabila tulisan "Namakan kumpulan" muncul, klik butang tetikus kiri. Saya akan memanggil kumpulan pertama "Tetapan", ia akan termasuk jubin "Tetapan" dan "Keselamatan Windows". Saya akan memanggil kumpulan kedua "Aplikasi Pejabat", yang akan merangkumi semua jubin lain. Dengan cara ini, anda boleh mengalihkan keseluruhan kumpulan jubin dengan menyeretnya menggunakan dua jalur yang terletak di bahagian atas sebelah kanan nama kumpulan.

Kerana Pada jubin "Windows Security" nama tidak sesuai sepenuhnya, saya akan menukar saiznya kepada "Wide". Untuk menukar saiz jubin, klik kanan pada jubin dan pilih "Ubah Saiz".

Selepas konfigurasi, kami mengeksport keadaan semasa dan melaksanakan arahan dalam persekitaran PowerShell – ​​“Export-StartLayout – laluan C:SysprepStartLayout.xml”.

Seterusnya, cara paling mudah adalah untuk tidak membuat fail tetapan sendiri, tetapi ambil contoh fail dari sini tetapan – klik pada butang “Salin”, tampalkan kandungan ke dalam notepad dan simpan sebagai “MultiAppKiosk.xml”. Sekarang kita menukar tetapan kepada kita sendiri. Untuk menukar tetapan jubin yang dilampirkan, salin keseluruhan blok "StartLayoutCollection" daripada "StartLayout.xml" kepada "MultiAppKiosk.xml". Untuk menambah aplikasi kepada yang dibenarkan, anda perlu memasukkan pengecam aplikasi universal ke dalam bahagian "AllowedApps" dan dalam blok yang sama tambah laluan penuh ke fail boleh laku aplikasi klasik, yang dinyatakan dalam sifat pintasan yang jubin merujuk. Untuk pergi ke pintasan dengan cepat, klik kanan pada jubin yang disematkan dan pergi ke Lagi > Pergi ke Lokasi Fail. Ambil perhatian bahawa parameter "AppUserModelId" digunakan untuk menentukan ID Apl Universal dan parameter "DesktopAppPath" digunakan untuk menentukan laluan penuh ke aplikasi desktop. Dan satu lagi nuansa kecil, jika anda bercadang untuk menggunakan IE pada sistem x64, maka dalam senarai aplikasi yang dibenarkan anda mesti menentukan dua laluan untuk fail boleh laku "Program FilesInternet Exploreriexplore.exe" dan "Program Files (x86)Internet Exploreriexplore. exe”.

Saya tidak akan memberikan akses kepada folder, jadi saya memadamkan bahagian "FileExplorerNamespaceRestrictions".

Memaparkan bar tugas tidak mengganggu saya, jadi saya meninggalkan segala-galanya seperti yang ada dalam bahagian "Bar Tugas".

Dalam contoh, dua profil ditentukan, tetapi saya hanya akan mempunyai satu profil, jadi bahagian dengan profil kedua boleh dipadamkan. Sebelum menyahpasang, perhatikan contoh memulakan aplikasi secara automatik dengan hujah.

Dalam bahagian "Konfig", akaun dipautkan ke profil; sila ambil perhatian bahawa berbilang akaun boleh dipautkan ke satu profil. Tapi sebab Saya hanya berminat dengan satu akaun, maka saya akan memadamkan semua pengikatan kecuali yang pertama - blok "Config". Dalam pengikatan yang tinggal saya akan menulis nama pengguna "Pengguna".

Saya mendapat fail ini dengan parameter

MultiAppKiosk.xml

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

Apabila anda membuat fail konfigurasi XML anda, jangan lupa bahawa setiap profil mesti mempunyai ID unik, dan bukan sahaja dalam satu fail XML, tetapi dalam satu OS. Itu. Sebaik-baiknya, untuk mengelakkan kekeliruan, anda boleh mencipta pengecam baharu setiap kali; ini boleh dilakukan dalam persekitaran PowerShell menggunakan arahan “[guid]::NewGuid()”. Dan pastikan anda menyimpan fail dalam pengekodan "UTF-8", jika fail disimpan dalam pengekodan "ANSI", maka apabila membina pakej penyediaan anda akan menerima ralat jika fail XML mengandungi Cyrillic.

Langkah 6 – menggunakan tetapan multikiosk

Mari lihat dua cara untuk menggunakan tetapan yang diterangkan dalam fail konfigurasi. Yang pertama adalah melalui pakej peruntukan, yang mesti dibuat dalam ICD. Bagi sesetengah orang, mungkin kaedah ini akan lebih biasa. Yang kedua menggunakan "Penyedia WMI Jambatan MDM", kaedah ini kelihatan lebih mudah kepada saya.

Kaedah # 1

Siapa yang tidak mempunyai ICD? muat turun ADK dan pasang. Memasang ADK adalah sangat mudah; set komponen boleh dibiarkan sebagai lalai.

Lancarkan ICD, klik pada jubin "Penyediaan lanjutan", nyatakan nama dan folder projek dan klik "Seterusnya". Dalam tetingkap seterusnya, pilih "Semua edisi desktop Windows" dan klik "Seterusnya". Anda boleh melangkau mengimport pakej penyediaan; klik "Selesai".

Kembangkan menu lungsur turun "Runtime Settings", kemudian kembangkan submenu "AssignedAccess" dan pilih "MultiAppAssignedAccessSettings". Di bahagian atas bahagian tengah tetingkap ICD, klik butang "Semak imbas" dan nyatakan lokasi fail XML dengan tetapan. Untuk berjaga-jaga, anda boleh menyimpan projek dengan menekan "Ctrl+s". Di bahagian atas sebelah kiri ICD, pilih "Eksport" dan pilih "Pakej peruntukan" daripada menu lungsur. Sebagai pemilik, pilih "pentadbir IT"; semua soalan lain boleh dilangkau dengan mengklik "Seterusnya" dan pada akhir klik "Bina" dan "Selesai".

Dalam sistem yang dipasang, jangan lupa untuk mencipta "Pengguna" pengguna; dia tidak boleh ditambahkan ke kumpulan "Pentadbir", jika tidak, multikiosk tidak akan berfungsi. Saya mencipta pengguna dalam Pengurusan Komputer dengan kata laluan yang tidak pernah tamat tempoh.

Sekarang kami menjalankan pakej penyediaan pada sistem yang dipasang sebelum ini. Selepas menggunakan pakej penyediaan, menu Mula dan menu pentadbir akan berubah. Di lajur permulaan kiri butang harus hilang: "Dokumen", "Imej", "Pilihan". Jika menu mula tidak berubah, maka sesuatu telah berlaku. Pakej yang dipasang boleh dialih keluar dengan membuka Tetapan > Akaun > Akses akaun kerja atau sekolah > Tambah atau alih keluar tetingkap pakej peruntukan.

Jika menu mula telah berubah, maka tetapan digunakan pada sistem, log masuk sebagai pengguna yang mana multikiosk dikonfigurasikan dan lihat hasilnya.

Kaedah # 2

Menggunakan tetapan menggunakan "MDM Bridge WMI Provider" diterangkan di sini. Kemudahan kaedah ini adalah fleksibiliti penggunaannya dan keupayaan untuk menyingkirkan banyak operasi manual yang diperlukan untuk membuat pakej penyediaan. Di sini semua orang boleh membuat keputusan untuk diri mereka sendiri yang akan memudahkan mereka. Saya membuat beberapa skrip untuk diri saya sendiri.

MiltiKiosk.bat – skrip pelancaran

@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 – skrip 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

Jika anda ingin menggunakan penyelesaian saya, kemudian simpan skrip di atas dengan nama asalnya dalam satu folder dan letakkan fail "PsExec.exe" dalam folder yang sama. Dalam folder yang sama, cipta folder "XML" dan salin fail XML untuk mengkonfigurasi multikiosk ke dalamnya. Saya akan menggunakan fail yang sama seperti dalam kaedah pertama.

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>

Sedikit tentang ciri-ciri skrip. Skrip direka bentuk untuk menggunakan fail XML dengan pengekodan "UTF8"; jika anda ingin menggunakan pengekodan "ANSI", kemudian alih keluar parameter "pengekodan UTF8" daripada pilihan membaca fail. Anda mesti meletakkan fail XML dalam folder "XML" tanpa menggantikan aksara; skrip itu sendiri akan menggantikan aksara khas dengan sebutan yang sesuai. Untuk tidak keliru dalam GUID untuk memautkan pengguna ke profil, anda hanya boleh menunjukkan nombor atau nama pengguna dalam pendakap kerinting; semua kandungan dalam pendakap kerinting akan digantikan dengan GUID.

Menggunakan skrip adalah sangat mudah, hanya jalankan dan pilih item yang diperlukan. Untuk menukar konfigurasi semasa kepada yang baharu, tidak perlu memadamkan konfigurasi semasa; ia akan ditimpa. Jangan lupa untuk mencipta pengguna yang dinyatakan dalam fail konfigurasi.

Apabila melihat konfigurasi multikiosk semasa dalam sesi yang sama di mana ia digunakan, bukannya aksara khas, gabungan aksara gantian akan dipaparkan. Selepas menukar sesi (memulakan semula skrip), semua aksara khas akan dipaparkan dalam bentuk asalnya.

Langkah 7 - Mengedap Sistem

Multikiosk berfungsi, itu sahaja, nampaknya...

Jika semuanya berjalan mengikut rancangan, maka anda tidak perasan sesuatu.

Jangan lupa bahawa kita masih perlu menukar sistem daripada mod audit kepada mod selamat datang. Nah, kami bersedia untuk ini, kami melancarkan "Sysprep.bat", pilih titik 2, sistem dimeteraikan. Kami menghidupkan peranti, but sistem, kami log masuk ke akaun pengguna yang mana multikiosk dikonfigurasikan, tetapi kami tidak boleh log masuk. Selepas mesej "Selamat Datang", mesej "Log Keluar" muncul.

Pada mulanya saya ingin menerangkan penyelesaian kepada masalah sahaja, tetapi kemudian saya memutuskan untuk menerangkan langkah-langkah untuk mengenal pasti masalah dan mencari penyelesaian yang paling mudah kerana... Pasti ramai pembaca akan terseksa dengan keraguan yang samar-samar - "Bagaimana jika jadi begini...". Saya berpendapat bahawa menerangkan pelbagai eksperimen akan menjimatkan banyak masa jika anda ingin mencari penyelesaian lain. Untuk menjadikan maklumat setepat mungkin, dan sekali lagi memastikan tiada ralat, saya akan menerangkan eksperimen dalam format "selesai dan direkodkan". Itu. Saya akan melakukan eksperimen yang diterangkan sekali lagi.

Eksperimen

Apa yang kami buat? Terdapat dua akaun dalam sistem:

"Pentadbir" - dalam kumpulan "Pentadbir".
"Pengguna" - dalam kumpulan "Pengguna".
Dalam mod audit, multikiosk berfungsi, tetapi apabila dimeterai, ia tidak berfungsi.

Eksperimen 1

Kami memadamkan pakej penyediaan yang dipasang, dalam snap-in "Pengurusan Komputer" kami memadamkan pengguna "Pengguna" dan mencipta pengguna baharu dengan nama "Pengguna", gunakan pakej penyediaan, pergi ke akaun "Pengguna" - ia tidak tidak berfungsi. Kami pergi di bawah nama "Pentadbir", alih keluar pengguna "Pengguna" daripada kumpulan "Pengguna", tambahkannya pada kumpulan "Pentadbir", pergi di bawah nama "Pengguna" - ia tidak berfungsi. Kami log masuk di bawah nama "Admin", padam pakej penyediaan dengan multikiosk, log masuk di bawah nama "Pengguna" - kami berjaya log masuk, tetapi sudah tentu mod multikiosk tidak berfungsi kerana Pakej peruntukan telah dialih keluar.

Eksperimen 2

Kami memuat naik imej sistem - Russified dalam mod audit.

OS telah dimuatkan, tekan "Win+r", kerana Tetingkap sysprep kami telah ditutup secara automatik, jalankan arahan "sysprep", dan jalankan "sysprep" dalam tetingkap yang terbuka. Tetapan Sysprep dalam tetingkap: “Pergi ke tetingkap alu-aluan sistem (OOBE)”, “Bersedia untuk digunakan”, “But semula”. Klik "OK" dan tunggu ucapan OS. Kami menjawab soalan apabila sistem but buat kali pertama: "Teruskan dalam bahasa yang dipilih?" - "Rusia"; wilayah - Rusia; susun atur papan kekunci - Rusia; tambah susun atur papan kekunci kedua - langkau; "Mari sambungkan anda ke rangkaian" - "Langkau sekarang"; sambung ke Internet - tidak; perjanjian lesen - terima; "Siapa yang akan menggunakan komputer ini" - "Ujian"; mencipta kata laluan - biarkan medan kosong; Operasi yang mudah pada peranti yang berbeza – tidak; Tetapan privasi – terima. OS telah dimuatkan, dalam snap-in "Pengurusan Komputer" kami mencipta pengguna dengan nama "Pengguna", tambah pakej penyediaan. Hasilnya ialah ia tidak berfungsi.

Eksperimen 3

Kami memuat naik imej sistem - Russified dalam mod audit.

OS telah dimuatkan, sambungkan sistem ke Internet, jalankan arahan "gpedit.msc" dan dalam bahagian "Kemas Kini Windows" dayakan pilihan "Dayakan kemas kini yang disyorkan melalui kemas kini automatik", but semula untuk berjaga-jaga. Di pusat kemas kini, klik "Semak kemas kini" dan but semula sehingga semua kemas kini dipasang. Putuskan sambungan sistem daripada Internet. Kami melancarkan "sysprep" dalam mod grafik dan mengulangi semua langkah yang diterangkan dalam langkah sebelumnya daripada menjalankan utiliti "sysprep" kepada menambah pakej penyediaan. Hasilnya ialah ia tidak berfungsi.

Eksperimen 4

Kami memuat naik imej sistem - Bahasa Inggeris dalam mod audit.

Kami melancarkan "sysprep" dalam mod grafik, mengelak OS dengan parameter yang sama seperti semasa percubaan 2. Apabila sistem mula-mula but, kami memilih parameter yang sama seperti dalam percubaan 2, dengan pengecualian parameter serantau dan bahasa kerana Tidak ada bahasa Rusia. Dengan cara yang sama, buat "Pengguna" pengguna dan tambahkan pakej peruntukan. Hasilnya ialah ia berfungsi. Itu. Masalahnya berkaitan dengan penyetempatan.

Eksperimen 5

Kami memuat naik imej sistem - Russified dalam mod audit.

Dalam snap-in "Pengurusan Komputer", buat pengguna "Pengguna", tambah pakej penyediaan, pergi ke akaun "Pengguna", kiosk berbilang berfungsi.

Log keluar dari akaun anda dan log masuk di bawah akaun "Admin". Kami melancarkan PowerShell dengan hak pentadbir, laksanakan arahan "Dism /online /Get-Intl" dan lihat "Bahasa antara muka pengguna lalai: en-US".

Kami boot dari pemacu denyar ke WinPE, OS yang digunakan adalah pada pemacu E saya. Kami melaksanakan perintah "Dism /image:E: /Set-UILang:ru-ru". Kami melihat hasilnya, laksanakan "Dism /image:E: /Get-Intl" dan lihat "Bahasa UI sistem lalai: ru-RU".

Kami boot ke dalam sistem, log masuk ke akaun "Pengguna", multikiosk tidak berfungsi.

Untuk mewujudkan hubungan sebab-akibat masalah dengan jelas, mari cuba lagi untuk menjadikan berbilang kiosk berfungsi dan tidak berfungsi.

Kami but dari pemacu denyar ke WinPE, OS yang digunakan adalah pada pemacu E saya. Kami melaksanakan arahan "Dism /image:E: /Set-UILang:en-us". Kami melihat hasilnya, laksanakan "Dism /image:E: /Get-Intl" dan lihat "Bahasa UI sistem lalai: en-US".

Kami boot ke dalam sistem, log masuk ke akaun "Pengguna", multikiosk berfungsi.

Kami boot dari pemacu denyar ke WinPE, OS yang digunakan adalah pada pemacu E saya. Kami melaksanakan perintah "Dism /image:E: /Set-UILang:ru-ru". Kami melihat hasilnya, laksanakan "Dism /image:E: /Get-Intl" dan lihat "Bahasa UI sistem lalai: ru-RU".

Kami boot ke dalam sistem, log masuk ke akaun "Pengguna", multikiosk tidak berfungsi.

Itu. anda boleh melihat pergantungan jelas prestasi kiosk pada bahasa antara muka pengguna lalai. Mungkin terdapat beberapa faktor lain yang mempengaruhi prestasi multikiosk?

Eksperimen 6

Untuk kesucian percubaan, kami mengisi semula sistem. Kami memuat naik imej sistem - Russified dalam mod audit.

Kami melancarkan "sysprep" dalam mod grafik, mengelak OS dengan parameter yang sama seperti semasa percubaan 2. Kami menunggu OS menyambut kami dan menjawab soalan: "Teruskan dalam bahasa yang dipilih?" - "Bahasa Inggeris Amerika Syarikat)"; wilayah - Rusia; Susun atur papan kekunci - Rusia. Selanjutnya, semua parameter telah dipilih seperti dalam eksperimen 2.

Mari lihat tetapan bahasa antara muka pengguna lalai. Kami melaksanakan perintah "Dism /online /Get-Intl" dan lihat "Bahasa UI sistem lalai: en-US". Dalam snap-in "Pengurusan Komputer", buat pengguna "Pengguna", tambah pakej penyediaan, pergi ke akaun "Pengguna", kiosk berbilang berfungsi.

Kami cuba memecahkan kiosk dengan menukar bahasa antara muka pengguna lalai. Kami pergi ke pengguna "Ujian", yang dibuat apabila sistem mula-mula but dan dayakan log masuk automatik untuknya supaya sistem tidak boot ke dalam akaun "Pengguna" serta-merta. Jalankan "netplwiz", pilih pengguna "Uji", nyahtanda kotak semak "Memerlukan nama pengguna dan kata laluan" dan gunakan parameter.

But dari pemacu kilat ke WinPE. Jalankan arahan "Dism /image:E: /Set-UILang:ru-ru". Kami melihat hasilnya, laksanakan "Dism /image:E: /Get-Intl" dan lihat "Bahasa UI sistem lalai: ru-RU".

Kami boot ke dalam sistem, cuba log masuk ke akaun "Pengguna", multikiosk berfungsi. Itu. ia tidak boleh dipecahkan. Adakah mungkin untuk menjadikannya berfungsi dengan cara ini?

Eksperimen 7

Kami memuat naik imej sistem - Russified dalam mod audit.

Kami melancarkan "Sysprep.bat", pilih titik 2. Kami boot ke dalam sistem, buat pengguna "Pengguna" dalam snap-in "Pengurusan Komputer", tambah pakej penyediaan, pergi ke akaun "Pengguna", multi- kiosk tidak berfungsi.

But dari pemacu kilat ke WinPE. Jalankan arahan "Dism /image:E: /Set-UILang:en-us". Kami melihat hasilnya, laksanakan "Dism /image:E: /Get-Intl" dan lihat "Bahasa UI sistem lalai: en-US".

Kami boot ke dalam sistem, cuba log masuk ke akaun "Pengguna", multikiosk tidak berfungsi.

Ternyata dengan menukar tetapan bahasa antara muka pengguna lalai, anda boleh menjejaskan prestasi multikiosk hanya apabila sistem berada dalam mod audit atau pada but pertama selepas mengelak sistem. Ini bermakna anda perlu mengelak sistem dengan fail respons di mana bahasa sistem akan dipilih dalam bahasa Inggeris, dan kemudian menukar tetapan sistem supaya antara muka adalah bahasa Rusia. Bukan penyelesaian yang sangat baik. Mungkin masalah itu boleh diselesaikan dengan memasang pek bahasa atau memasang pek bahasa tambahan?

Eksperimen 8

Kami memuat naik imej sistem - Bahasa Inggeris dalam mod audit.

Kami menyambung ke Internet, dalam parameter sistem pergi ke bahagian "Bahasa", pilih "Tambah bahasa", pilih bahasa "Rusia", klik "Seterusnya", biarkan parameter pemasangan sebagai lalai, klik "Pasang", selepas memasang pek bahasa yang kita but semula sistem, kini di Russified. Putuskan sambungan sistem daripada Internet, jalankan “Sysprep.bat”, pilih titik 2.

Selepas memuatkan sistem, dalam snap-in "Pengurusan Komputer", buat pengguna "Pengguna", tambah pakej penyediaan, pergi ke akaun "Pengguna", kiosk berbilang tidak berfungsi.

Eksperimen 9

Mari cuba Russify sistem sebelum pemasangan, dalam mod luar talian. Pada masa yang sama akan ada program pendidikan pendek mengenai penyetempatan pengedaran.

Saya mengambil pemacu kilat dengan pengedaran asal yang bersih - X21-96381. Ia akan menjadi pemacu "E". Untuk melekapkan imej, saya mencipta folder: “c:MountInstall”, “c:MountWinre”, “c:MountBoot”. Saya mengambil satu set pakej penyetempatan - X21-87814. Dan ke dalam folder "c:Mount" saya menyalin pakej daripadanya: "Microsoft-Windows-Client-Language-Pack_x86_ru-ru.cab", "lp.cab", "WinPE-Setup_ru-ru.cab". Saya melancarkan konsol dengan hak pentadbir. Saya fikir arahan selanjutnya akan jelas tanpa komen.

Arahan penyetempatan

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

Kami boot dari pemacu kilat, pilih bahasa Rusia dan pasang sistem pada cakera kosong. Apabila sistem meminta anda memilih rantau, tekan “Ctrl+Shift+F3”. Dalam snap-in "Pengurusan Komputer", buat pengguna "Pengguna", tambah pakej penyediaan, pergi ke akaun "Pengguna", kiosk berbilang tidak berfungsi.

But dari pemacu kilat ke WinPE. Jalankan arahan "Dism /image:E: /Set-UILang:en-us".

Kami boot ke dalam sistem, cuba log masuk ke akaun "Pengguna", multikiosk berfungsi.

Nampaknya masalahnya bukan pada kaedah menambah pakej, mari cuba menambah pakej tambahan.

Eksperimen 10

Kami mengambil pemacu kilat yang kami sediakan pada langkah sebelumnya.

Kami mengambil pakej "Feat on Demand" - X21-87815. Saya menyalin pakej daripadanya ke 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».

Lancarkan konsol dengan hak pentadbir dan laksanakan arahan:

Pasukan

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

Kami boot dari pemacu kilat, pilih bahasa Rusia dan pasang sistem pada cakera kosong. Apabila sistem meminta anda memilih rantau, tekan “Ctrl+Shift+F3”. Dalam snap-in "Pengurusan Komputer", buat pengguna "Pengguna", tambah pakej peruntukan dan log masuk ke akaun "Pengguna". Saya mendapat skrin hitam yang digantung untuk masa yang lama, jadi saya hot boot sistem.

Kami memadamkan pakej penyediaan, log masuk sebagai "Pengguna", but semula sistem, tambah pakej penyediaan, multikiosk tidak berfungsi.

But dari pemacu kilat ke WinPE. Jalankan arahan "Dism /image:E: /Set-UILang:en-us".

Kami boot ke dalam sistem, cuba log masuk ke akaun "Pengguna", multikiosk berfungsi.

Penyelesaian

Wira biasa. Mereka sentiasa mengambil jalan memutar!

Pelbagai kaedah memasang pek penyetempatan tidak menyelesaikan masalah, yang bermaksud bahawa anda perlu memasang bahasa "en-us" pada but pertama selepas pengedap, dan menukar tetapan bahasa selepas but pertama.

Kami memuat naik imej sistem - Russified dalam mod audit.

Dalam fail "Unattend.xml", masukkan "en-US" dalam parameter, jalankan "Sysprep.bat", pilih titik 2 dan lihat apa yang kami dapat. Skrin alu-aluan adalah dalam bahasa Inggeris, pelbagai kiosk berfungsi. Ini bermakna anda perlu menambah arahan pada "Unattend.xml" untuk menukar bahasa sapaan. Dan untuk melakukan ini, anda perlu menjalankan arahan "control intl.cpl,, /f:" yang menunjukkan fail konfigurasi, yang akan menentukan penyalinan parameter semasa ke skrin alu-aluan. Kandungan fail konfigurasi akan kelihatan seperti ini.

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

Kerana akan menyalin tetapan pengguna semasa, maka arahan itu mesti dilaksanakan selepas pengguna telah log masuk, yang bermaksud bahawa kita perlu. Terdapat satu "tetapi" kecil pelaksanaan akan berlaku selepas pengguna dengan hak pentadbir log masuk. Dan saya tidak mahu mencipta fail tambahan yang diperlukan untuk arahan itu berjalan dengan jayanya. Adalah lebih baik untuk melaksanakan keseluruhan penyelesaian dalam satu fail - "Unattend.xml". Untuk melakukan ini, anda hanya perlu menjalankan arahan yang mencipta fail konfigurasi. Saya fikir saya akan mencipta fail konfigurasi menggunakan arahan "echo" dalam persekitaran "cmd", tetapi ia perlu melepaskan kurungan sudut dengan circumflex. Itu. Untuk membuat fail konfigurasi, arahan berikut diperolehi.

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

Tetapi kita perlu meletakkan arahan ini dalam XML, yang mempunyai keperluan sendiri untuk penggunaan aksara khas:

Watak istimewa
Nilai gantian

>
&gt;

<
&lt;

&
&amp;

'
&apos;

"
&quot;

Akibatnya, untuk mencipta fail konfigurasi, kami mendapat arahan berikut untuk "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;

Seterusnya, kami melaksanakan arahan menggunakan fail konfigurasi.

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

Seterusnya, padamkan fail yang dibuat sebelum ini dan but semula sistem. perubahan akan berkuat kuasa selepas but semula.

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

Akibatnya, saya mendapat fail jawapan berikut untuk 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>

Jom semak...

Kami memuat naik imej sistem - Russified dalam mod audit.

Kami menukar fail Unattend.xml kepada yang baharu, jalankan "Sysprep.bat", pilih titik 2 dan lihat apa yang kami dapat. Apabila anda mula-mula but, skrin alu-aluan adalah dalam bahasa Inggeris dan sistem but semula. Skrin selamat datang dalam bahasa Rusia, multikiosk berfungsi.

Jika anda mempunyai sebarang soalan tentang menyediakan dan melesenkan Windows 10 IoT Enterprise, sila hubungi: [e-mel dilindungi] atau ke laman web quarta-embedded.ru.
Anda boleh mendapatkan jawapan kepada beberapa soalan dalam wiki kami atau pada kita saluran YouTube

Pengarang artikel: Vladimir Borisenkov, pakar teknikal di Quarta Technologies.

Sumber: www.habr.com