Windows 10 IoT Enterprise 2019 — მრავალკიოსკური რეჟიმი

შესავალი

Windows 10 ინტერნეტ ნივთების საწარმო 2019 – შემდეგი ნომრის მარკეტინგული სახელწოდება Windows 10ამ ვერსიის გამოშვება 2018 წლის სექტემბერში გამოცხადდა, ამიტომ მისი ვერსიის ნომერია 1809, სადაც 18 წელია და 09 თვე. ახალი ვერსიის მიხედვით Windows 10 1809 წელს დაიწერა მრავალი სტატია, მაგრამ მათი უმეტესობა ეძღვნება სხვადასხვა „მშვილდებს“, „ლამაზმანებს“ და სხვადასხვა ფუნქციებს, რომლებიც სახლში მოთხოვნადია.
ეს სტატია მხოლოდ იმ ფუნქციონალზე იქნება ფოკუსირებული, რომელიც შესაძლოა მოთხოვნადი იყოს ფიქსირებული დანიშნულების მოწყობილობების მწარმოებლებს შორის, კერძოდ, კიოსკის რეჟიმის ახალ შესაძლებლობებზე. ასევე განხილული იქნება გამოცემის სერვის გეგმების სახელწოდებების შეცვლის თემა. Windows კორპორატიული სეგმენტი.

ძველი სერვისის სქემა ახალი სახელით

დავიწყებ მოკლე ახსნა-განმარტებით, რედაქციების კორპორატიულ სეგმენტში Windows არსებობს ორი მომსახურების სქემა, რომელთა მიხედვითაც Windows იღებს განახლებებს. მომსახურების გეგმები ასოებით არის მითითებული. ამჟამად, მომსახურების ხაზებს LTSC და SAC ეწოდება.

LTSC ნიშნავს გრძელვადიანი მომსახურების არხი (გრძელვადიანი შენარჩუნებით). ადრე ასეთ არხს ერქვა LTSB - Long Term Servising Branch, Microsoft-მა უბრალოდ შეცვალა სერვისის არხის სახელი, თავად სერვისი იგივე დარჩა.

მაიკროსოფტმა ასევე შეცვალა სერვისის ფილიალის სახელი CBB - Current Branch for Business, ახლა ამ სერვისის ფილიალს ეწოდება SAC - ნახევრად წლიური არხი. ისევ და ისევ, მხოლოდ სახელი შეიცვალა.

თუმცა, უნდა აღინიშნოს, რომ LTSC და SAC ტექნიკური მომსახურების ფილიალები სხვადასხვა დისტრიბუციას იყენებენ. Windows.

ცოტა რამ SAC-ის ახალი კიოსკის რეჟიმის შესახებ

როგორც უკვე ვთქვი, LTSC-სა და SAC-ს განსხვავებული განაწილება აქვთ. LTSC-ს არ აქვს სტანდარტული უნივერსალური აპლიკაციები ან აპლიკაციების მაღაზია, მაგრამ SAC-ს აქვს. შესაბამისად, LTSC-ს არ აქვს Edge ბრაუზერი, მაგრამ SAC-ს აქვს. თუ კიოსკის დაყენებისას აირჩევთ Edge ბრაუზერს, მაშინ უკვე ხელმისაწვდომია ორი რეჟიმი:

  1. როგორც ციფრული ნიშანი ან ინტერაქტიული ჩვენება
  2. საჯარო ბრაუზერის მსგავსად

მე არ შევჩერდები ამ რეჟიმების დაყენებაზე, რადგან... დაყენება ძალიან მარტივია და კეთდება გრაფიკული ინტერფეისით. უბრალოდ შექმენით მომხმარებელი, რომელიც არ არის ადმინისტრატორების ჯგუფის წევრი, ჩართეთ მისთვის kiosk რეჟიმი EDGE-ის გამოყენებით და ნახეთ, როგორ მუშაობს ეს რეჟიმები.

კიოსკი მრავალი აპლიკაციით

ზოგიერთი ფიქრობს, რომ ლიცენზირებული გამოყენება Windows 10 ინტერნეტ ნივთების საწარმო გულისხმობს მხოლოდ ერთი აპლიკაციის მუშაობას მოწყობილობაზე, სინამდვილეში ეს ასე არ არის. მოწყობილობა უნდა იყოს შექმნილი ერთი საქმიანი დავალების შესასრულებლად და მომხმარებელს არ უნდა ჰქონდეს წვდომა დესკტოპზე. ახლა თავად მაიკროსოფტმა მისცა ინსტრუმენტი მრავალი აპლიკაციის გამოსაყენებლად. ამ რეჟიმს ეწოდება "მრავალაპიანი კიოსკი", შემდგომში, მოკლედ, მას "მულტიკიოსკს" დავარქმევ. ამ სტატიაში განვიხილავთ ამ რეჟიმის დაყენებას პროგრამული პაკეტის გამოყენებით და ამ რეჟიმის ზოგიერთი მახასიათებლის გამოყენებით.

ცოტა რამ Multikiosk რეჟიმის შესახებ

როდესაც შედიხართ მომხმარებლის ანგარიშში, რომლისთვისაც არის კონფიგურირებული მრავალკიოსკის რეჟიმი, სისტემა იმუშავებს ტაბლეტის რეჟიმში. Start მენიუ გაფართოვდება სრულ ეკრანზე, აჩვენებს აპლიკაციის ფილებს.

ძირითადი პარამეტრებისა და რეჟიმის შესაძლებლობების სია:

  1. დაყენება მრავალი მომხმარებლისთვის ან ჯგუფისთვის
  2. თითოეულ მომხმარებელს ან ჯგუფს შეიძლება მიენიჭოს ინდივიდუალური პარამეტრები
  3. უნივერსალური და კლასიკური აპლიკაციების გამოყენების შესაძლებლობა
  4. ერთ-ერთი აპლიკაციის ავტომატურად გაშვების შესაძლებლობა მომხმარებლის შესვლისას
  5. თეთრ სიაში შეტანილი აპლიკაციები
  6. საქაღალდეებზე წვდომა თეთრი სიის გამოყენებით

ღირს ყურადღება მიაქციოთ მე-5 პუნქტს. ნაგულისხმევად, მხოლოდ ის აპლიკაციები, რომლებიც აუცილებელია სისტემის ფუნქციონირებისთვის, დაიშვებიან იმუშაოს, სხვა აპლიკაციები უნდა დაემატოს დაშვებულთა სიას. იმათ. ახლა თქვენ არ გჭირდებათ AppLocker-ის ცალკე კონფიგურაცია. სხვათა შორის, AppLocker-ის პარამეტრებთან კონფლიქტის თავიდან ასაცილებლად, მრავალ კიოსკის რეჟიმში, AppLocker-ის ყველა კონფიგურირებული წესი არ ვრცელდება.

პუნქტი 6 მიუთითებს კარგ ვარიანტზე, მაგრამ ამ დროისთვის შესაძლებელია მხოლოდ ჩაწერის ნებართვის მიცემა "ჩამოტვირთვების" საქაღალდეში. რეჟიმი საშუალებას გაძლევთ გამოიყენოთ უნივერსალური და კლასიკური აპლიკაციები. რეჟიმის ყველა პარამეტრი მითითებულია XML ფაილში, რომელშიც ასევე შეგიძლიათ მიუთითოთ პარამეტრები ერთი აპლიკაციის კიოსკისთვის.

ახლა ვცადოთ ყველაფრის დაყენება...

რა გვჭირდება...

  1. უპირველეს ყოვლისა, ჩვენ გვჭირდება თავად სისტემა, რომელიც მხარს უჭერს multikiosk რეჟიმში. აქ შეგიძლიათ ჩამოტვირთოთ დემო ვერსია
  2. ინსტრუქციები მულტიკიოსკის დაყენების შესახებ
  3. ნებისმიერი XML რედაქტორი
  4. მულტიკიოსკის პარამეტრების გამოსაყენებლად:
    1. No1 მეთოდისთვის - ICD, რომელიც ADK-ის ნაწილია. ADK შესაძლებელია ჩამოტვირთვა აქ
    2. მეთოდისთვის No2 - PsExec უტილიტა. უტილიტა შეიძლება იყოს ჩამოტვირთვა აქ

მან თქვა - "წავიდეთ!"

ყველა ექსპერიმენტს ჩავატარებ Windows 10 IoT Enterprise 1809 LTSC x32 არის კომერციული ვერსია და არა დემო ვერსია. სისტემა დაინსტალირდება აქტივაციის გარეშე, რადგან აქტივაციის არარსებობა გავლენას არ ახდენს სისტემის ფუნქციონირებაზე. მე 32-ბიტიანი ვერსია ავირჩიე მხოლოდ იმიტომ, რომ ის ნაკლებ ადგილს იკავებს და სისტემის სურათებთან უფრო სწრაფად იმუშავებს.

ნაბიჯი 1 - ინსტალაცია

Win 10 IoT Enterprise-ის დაყენება არაფრით განსხვავდება Win 10 Enterprise-ის ინსტალაციისგან, ამიტომ არ აღვწერ ინსტალაციის მთელ პროცესს, მხოლოდ ზოგიერთ ნიუანსზე ვისაუბრებ.

ყოველ შემთხვევაში, შეგახსენებთ, არ დააინსტალიროთ სისტემა დაინსტალირებულის თავზე. როდესაც ინსტალერი ითხოვს სისტემის ინსტალაციის ადგილმდებარეობის შესახებ, წაშალეთ ყველა დანაყოფი მომავალი სისტემის დისკზე და მიუთითეთ გაუნაწილებელი დისკი.

ჩვენ ვაინსტალირებთ სისტემას ინტერნეტის გარეშე, რათა სისტემამ არ ამოიღოს რაიმე ზედმეტი.

იმიტომ რომ ჩვენ შევქმნით სისტემის სარეზერვო სურათებს და ამისთვის დავლუქავთ მას აუდიტის რეჟიმში, შემდეგ შეგიძლიათ დაზოგოთ დრო ინსტალაციისთანავე სისტემის აუდიტის რეჟიმში ჩატვირთვით. ამისათვის, როდესაც სისტემა მოგთხოვთ აირჩიოთ რეგიონი „დავიწყოთ რეგიონით. ეს სწორია" უბრალოდ დააჭირეთ "Ctrl+Shift+F3".

ნაბიჯი 2 - შექმენით სისტემის სურათი

იმიტომ რომ ჩვენ დავცინავთ სისტემას და ვცდილობთ სხვადასხვა ახალ პარამეტრებს, არ არის გამორიცხული, რამე არასწორედ მოხდეს და დაგვჭირდეს სისტემის დაბრუნება პირვანდელ მდგომარეობაში. და სწრაფად დასაბრუნებლად თავდაპირველ მდგომარეობაში, თქვენ უნდა შექმნათ სისტემის სურათი. ერთადერთი, რასაც გავაკეთებ, არის "ჯენტლმენის ნაკრების" კოპირება - სკრიპტი და პასუხის ფაილი. ყველა ჩემი ფაილი მდებარეობს "Sysprep" საქაღალდეში, რომელსაც ვაკოპირებ სისტემის დისკის ფესვზე. და ბუნებრივია, ამ "ჯენტლმენის კომპლექტს" გაგიზიარებთ.

Sysprep.bat – სისტემის დალუქვა.

@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

გაშვებისას, სკრიპტი შეამოწმებს „ადმინისტრატორის“ ანგარიშის არსებობას და შექმნის თუ ის აკლია. ანგარიში დაემატება ადმინისტრატორების ჯგუფს.

Unattend.xml – პასუხის ფაილი 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>

აუდიტის რეჟიმში დალუქვისას, სკრიპტი დაამატებს ბრძანებას რეესტრში „sysprep.exe“ პროცესის დასასრულებლად, რათა ყოველ ჯერზე ხელით არ დაიხუროს sysprep ფანჯარა. როდესაც დალუქულია hello რეჟიმში, სკრიპტი ამოიღებს ფანჯრის დახურვის ბრძანებას რეესტრიდან და თავად შეცვლის პასუხების ფაილში არსებულ არქიტექტურულ მნიშვნელობას. პასუხის ფაილი შეიცავს პარამეტრებს სისტემის ჩატვირთვისთვის მომხმარებლის ურთიერთქმედების გარეშე და ბრძანებას "Sysprep" საქაღალდის წაშლის შესახებ სისტემის დისკის ძირში.

ახლა სისტემას აუდიტის რეჟიმში „Sysprep.bat“-ის გამოყენებით დავლუქავ და სისტემის სურათს გადავიღებ. სისტემის სურათს DISM-ით გადავიღებ და მხოლოდ სისტემის ტომს გადავიღებ. თუ მხოლოდ სისტემის ტომს იწერთ და არა მთელ დისკს, არ დაგავიწყდეთ „WindowsSystem32Recovery" "Recovery" საქაღალდის პირველ ტომზე.WindowsRE" სისტემის განლაგების შემდეგ. ეს უნდა გაკეთდეს ოპერაციული სისტემის ჩატვირთვამდე, რადგან ოპერაციული სისტემის ჩატვირთვის შემდეგ, "WindowsSystem32Recovery" უკვე ცარიელი იქნება.

ნაბიჯი 3 – სისტემის რუსიფიკაცია

თუ ინტერნეტთან კავშირი გაქვთ, ენის პაკეტის ინსტალაცია ინტერნეტთან კავშირის გარეშეც შეგიძლიათ. თუ არა, სისტემა მას ავტომატურად ჩამოტვირთავს ინტერნეტიდან, როდესაც ენას პარამეტრებში დაამატებთ. უბრალოდ არ გამოიყენოთ ენის პაკეტი ოპერაციული სისტემის წინა ვერსიიდან. Windows 10 1809 უნდა იყოს სპეციალურად ენის პაკეტი Windows 10 1809.

მაიკროსოფტი მიჰყვება თავის გეგმას, თანდათანობით გადაიტანოს პარამეტრები კლასიკური მენიუდან ახალზე, ასე რომ, კლასიკურ პანელში ვეღარ იპოვით პარამეტრებს ენის შეცვლისა და ენის პაკეტის ინსტალაციისთვის. ეს პარამეტრები ახლა მხოლოდ სისტემის პარამეტრებშია.

აუდიტის რეჟიმში შეიძლება შეგექმნათ პრობლემა Start მენიუდან სისტემის პარამეტრების გახსნისას; სისტემის პარამეტრების გასახსნელად, გაუშვით ბრძანება - "ms-settings:", ყურადღება მიაქციეთ ორწერტილს ბრძანების ბოლოს, ამის გარეშე ბრძანება იქნება. არ მუშაობს. სისტემის პარამეტრების ერთხელ გახსნის შემდეგ ამ ბრძანების გამოყენებით, მისი გახსნა შესაძლებელია გრაფიკული მენიუს გამოყენებით.

მაგრამ სისტემის პარამეტრებში შეგიძლიათ დააინსტალიროთ ენის პაკეტი, თუ სისტემა დაკავშირებულია ინტერნეტთან, არ არსებობს არჩევანის არჩევა ენის პაკეტის დაყენება ადგილობრივი ფაილიდან.

მე არ აღვწერ სისტემის ლოკალიზაციის პროცესს, რადგან... ეს მნიშვნელოვნად გაართულებს სტატიას, მით უმეტეს, რომ ლოკალიზაციის პროცესი დეტალურად არის აღწერილი აღწერილია აქ. მაგრამ თქვენი ყურადღება მინდა გავამახვილო სისტემის ენის შეცვლის თავისებურებაზე კონსოლის გამოყენებით ენის პაკეტის დაყენების შემდეგ. ეს ფუნქცია აღწერილია იმავე ვიკიში, რომელსაც ადრე მივაწოდე ბმული, ქვეგანყოფილებაში "ენის დამატება ენების სიაში".

დავაყენებ ენის პაკეტს ინტერნეტის გარეშე.

სისტემის სრული ლოკალიზაციის შემდეგ, დარწმუნდით, რომ შექმენით სისტემის სურათი.

ნაბიჯი 4 - დააინსტალირეთ საჭირო აპლიკაციები

იმიტომ რომ ვინაიდან LTSB და LTSC სისტემებს არ აქვთ აპლიკაციების მაღაზია, Microsoft Store-დან აპლიკაციების დაყენება იწვევს გარკვეულ სირთულეებს, კერძოდ, აპლიკაციის ჩამოტვირთვას. აპლიკაციების ჩამოსატვირთად კომპანია Adguard-მა გააკეთა ძალიან მოსახერხებელი სერვისი - "Adguard Store", რომლითაც შეგიძლიათ მიიღოთ აპლიკაციებისა და მათი კომპონენტების ჩამოტვირთვის დროებითი ბმულები.

აპლიკაციის ინსტალაციისთვის დაგჭირდებათ ფაილები გაფართოებებით "Appx" და "AppxBundle". თავად აპლიკაციის დაყენებამდე უნდა დააინსტალიროთ მისი კომპონენტები. როგორც წესი, აპლიკაციის კომპონენტები შეიძლება ინტუიციურად გამოირჩეოდეს ფაილის სახელით.

იმისათვის, რომ სტატია ძალიან გრძელი არ იყოს, დეტალურად არ აღვწერ აპლიკაციების ინსტალაციის პროცესს, მით უმეტეს, რომ არსებობს ინფორმაცია ინსტალაციის შესახებ დეტალური ინსტრუქცია. მაგრამ მე დავამატებ კიდევ ერთ გზას, რომ დააინსტალიროთ აპლიკაციები თქვენს მიმდინარე ანგარიშში. აპლიკაციების ინსტალაცია შესაძლებელია პროგრამის გამოყენებით "აპლიკაციის ინსტალერი", მაგრამ აპლიკაციების დასაყენებლად დაგჭირდებათ ინტერნეტთან კავშირი, მაგრამ აპლიკაციების ინსტალაცია შესაძლებელია ორმაგი დაწკაპუნებით და არ დაგჭირდებათ მისი კომპონენტები, ყველა საჭირო კომპონენტი ჩამოიტვირთება და დაინსტალირდება "აპლიკაციის ინსტალერი".

და მცირე შეხსენება, აპლიკაციის მიმდინარე ანგარიშზე დაყენებისას თქვენ ვერ შეძლებთ სისტემის დალუქვას. როგორ დააინსტალიროთ აპლიკაციები ისე, რომ შეძლოთ სისტემის დალუქვა, იხილეთ ზემოთ მოცემული ინსტრუქციები. და მულტიკიოსკის მუშაობის შესამოწმებლად, არსებული აპლიკაციები საკმაოდ საკმარისია.

ნაბიჯი 5 – კონფიგურაციის ფაილის შექმნა მულტიკიოსკისთვის

ახლა ჩვენ მივდივართ ყველაზე საინტერესო ნაწილზე - კიოსკის რეჟიმის დაყენება. მოდით შევხედოთ ინსტრუქცია პარამეტრების მიხედვით, რომელსაც ჩვენ ვხედავთ. უპირველეს ყოვლისა, ჩვენ უნდა შევქმნათ XML კონფიგურაციის ფაილი, რომლის სრული მაგალითი შეგიძლიათ იხილოთ აქ. შეხედეთ აქ.

დავიწყოთ კრამიტის განლაგების დაყენებით. XML ფილების პერსონალიზაციის კონფიგურაციის შექმნის უმარტივესი გზაა მათი ამჟამინდელი მდგომარეობის ექსპორტი.

უპირველეს ყოვლისა, მოდით დავამატოთ აპლიკაციების ფილები, რომლებიც გვჭირდება Start მენიუში. გამოიძახეთ ძებნა "Win+s", იპოვეთ სასურველი აპლიკაცია, დააწკაპუნეთ მასზე მარჯვენა ღილაკით და აირჩიეთ "Pin to Start Screen".

მე დავამაგრე შემდეგი აპლიკაციები:

  • ჩასაწერი
  • კალკულატორი
  • internet Explorer
  • Paint
  • WordPad
  • პარამეტრები
  • უსაფრთხოების Windows

ბოლო ორი აპლიკაცია მიმაგრებული იყო, რადგან სტანდარტულ LTSC ინსტალაციაში სხვა უნივერსალური აპლიკაციები არ არსებობს. გაითვალისწინეთ, რომ კლასიკური აპლიკაციის ფილები დაკავშირებულია მალსახმობებთან. ახლა, ფილების პირდაპირ „დაწყების“ მენიუში გადათრევით, მიმაგრებულ ფილებს ორ ჯგუფად დავყოფ. ფილების ახალი ჯგუფის შესაქმნელად, გადაათრიეთ ფილა სხვა ფილების მნიშვნელოვნად ზემოთ ან ქვემოთ; გამოჩნდება ინტუიციური გამყოფი. შეგიძლიათ ჯგუფებისთვის ნებისმიერი სახელი დაარქვათ მაუსის მაუსის ჯგუფზე გადატანით და „ჯგუფის სახელის“ მოთხოვნის გამოჩენისას მარცხენა ღილაკით დაწკაპუნებით. პირველ ჯგუფს „პარამეტრებს“ დავარქმევ, რომელიც მოიცავს „პარამეტრების“ და „უსაფრთხოების“ ფილებს. Windowsმეორე ჯგუფს „ოფისის აპლიკაციებს“ დავარქმევ, რომელიც ყველა სხვა ფილას მოიცავს. სხვათა შორის, ფილების მთელი ჯგუფების გადატანა შეგიძლიათ ჯგუფის სახელის ზედა მარჯვენა კუთხეში მდებარე ორი ზოლის გამოყენებით მათი გადათრევით.

რადგან ფილაზე "უსაფრთხოება" Windows„სათაური სრულად არ ჯდება, ამიტომ მის ზომას „ფართოზე“ შევცვლი. ფილის ზომის შესაცვლელად, დააწკაპუნეთ მასზე მარჯვენა ღილაკით და აირჩიეთ „ზომის შეცვლა“.“

კონფიგურაციის შემდეგ, ჩვენ ექსპორტს ვაწარმოებთ მიმდინარე მდგომარეობას და ვასრულებთ ბრძანებას PowerShell გარემოში - "Export-StartLayout - გზა C: SysprepStartLayout.xml".

შემდეგი, უმარტივესი გზაა არა თავად შექმნათ პარამეტრების ფაილი, არამედ აიღეთ ფაილის მაგალითი აქედან პარამეტრები – დააწკაპუნეთ ღილაკზე „ასლი“, ჩასვით შიგთავსი ნოუთბუქში და შეინახეთ როგორც „MultiAppKiosk.xml“. ახლა ჩვენ ვცვლით ჩვენს პარამეტრებს. მიმაგრებული ფილების პარამეტრების შესაცვლელად, დააკოპირეთ მთელი „StartLayoutCollection“ ბლოკი „StartLayout.xml“-დან „MultiAppKiosk.xml“-ზე. ნებადართული აპლიკაციების დასამატებლად, თქვენ უნდა ჩასვათ აპლიკაციის უნივერსალური იდენტიფიკატორები "AllowedApps" განყოფილებაში და იმავე ბლოკში დაამატოთ სრული გზა კლასიკური აპლიკაციების შესრულებადი ფაილებისთვის, რაც მითითებულია მალსახმობების თვისებებში, რომლებზეც ფილები ეხება. მალსახმობაზე სწრაფად მისასვლელად, დააწკაპუნეთ მარჯვენა ღილაკით მიმაგრებულ ფილაზე და გადადით პუნქტზე მეტი > გადადით ფაილის ადგილმდებარეობაზე. გაითვალისწინეთ, რომ "AppUserModelId" პარამეტრი გამოიყენება უნივერსალური აპის ID-ის დასაზუსტებლად, ხოლო "DesktopAppPath" პარამეტრი გამოიყენება დესკტოპის აპლიკაციის სრული გზის დასადგენად. და კიდევ ერთი მცირე ნიუანსი, თუ თქვენ აპირებთ IE-ს გამოყენებას x64 სისტემაზე, მაშინ ნებადართული აპლიკაციების სიაში უნდა მიუთითოთ ორი გზა შესრულებადი ფაილისთვის "Program FilesInternet Exploreriexplore.exe" და "Program Files (x86)Internet Exploreriexplore. exe”.

მე არ მივცემ წვდომას საქაღალდეებზე, ამიტომ ვშლი "FileExplorerNamespaceRestrictions" განყოფილებას.

დავალების ზოლის ჩვენება არ მაწუხებს, ამიტომ ყველაფერს ისე ვტოვებ, როგორც არის "Taskbar" განყოფილებაში.

მაგალითში მითითებულია ორი პროფილი, მაგრამ მე მექნება მხოლოდ ერთი პროფილი, ამიტომ მეორე პროფილის განყოფილება შეიძლება წაიშალოს. დეინსტალაციამდე ყურადღება მიაქციეთ არგუმენტებით აპლიკაციის ავტომატურად დაწყების მაგალითს.

"კონფიგურაციების" განყოფილებაში, ანგარიშები დაკავშირებულია პროფილებთან; გთხოვთ, გაითვალისწინოთ, რომ რამდენიმე ანგარიში შეიძლება მიბმული იყოს ერთ პროფილთან. მაგრამ იმიტომ მე მხოლოდ ერთი ანგარიში მაინტერესებს, შემდეგ წავშლი ყველა აკინძვას პირველის გარდა - "Config" ბლოკები. დარჩენილ საკინძში დავწერ მომხმარებლის სახელს „მომხმარებელი“.

მე მივიღე ეს ფაილი პარამეტრებით

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>

როდესაც ქმნით თქვენს XML კონფიგურაციის ფაილებს, არ უნდა დაგვავიწყდეს, რომ თითოეულ პროფილს უნდა ჰქონდეს უნიკალური ID და არა მხოლოდ ერთ XML ფაილში, არამედ ერთ OS-ში. იმათ. იდეალურ შემთხვევაში, დაბნეულობის თავიდან ასაცილებლად, ყოველ ჯერზე შეგიძლიათ შექმნათ ახალი იდენტიფიკატორი; ეს შეიძლება გაკეთდეს PowerShell-ის გარემოში ბრძანების „[guid]::NewGuid()“ გამოყენებით. და დარწმუნდით, რომ შეინახეთ ფაილი "UTF-8" კოდირებით; თუ ფაილი შენახულია "ANSI" კოდირებით, მაშინ მოსამზადებელი პაკეტის შექმნისას მიიღებთ შეცდომას, თუ XML ფაილი შეიცავს კირილიცას.

ნაბიჯი 6 - მულტიკიოსკის პარამეტრების გამოყენება

მოდით შევხედოთ კონფიგურაციის ფაილში აღწერილი პარამეტრების გამოყენების ორ გზას. პირველი არის უზრუნველყოფის პაკეტი, რომელიც უნდა შეიქმნას ICD-ში. ზოგიერთისთვის, ალბათ, ეს მეთოდი უფრო ნაცნობი იქნება. მეორე არის "MDM Bridge WMI პროვაიდერის" გამოყენება, ეს მეთოდი უფრო მოსახერხებელი მეჩვენა.

მეთოდი # 1

ვის არ აქვს ICD? ჩამოტვირთეთ ADK და დააინსტალირეთ. ADK-ის ინსტალაცია ძალიან მარტივია; კომპონენტების ნაკრები შეიძლება დარჩეს ნაგულისხმევად.

გაუშვით ICD, დააწკაპუნეთ ფილაზე „დამატებითი მომზადება“, მიუთითეთ პროექტის სახელი და საქაღალდე და დააწკაპუნეთ „შემდეგი“. შემდეგ ფანჯარაში აირჩიეთ „ყველა გამოშვება“. Windows დესკტოპ კომპიუტერებისთვის" და დააჭირეთ ღილაკს "შემდეგი". შეგიძლიათ გამოტოვოთ მიწოდების პაკეტის იმპორტი; დააჭირეთ ღილაკს "დასრულება".

გააფართოვეთ ჩამოსაშლელი მენიუ „Runtime Settings“, შემდეგ გააფართოვეთ „AssignedAccess“ ქვემენიუ და აირჩიეთ „MultiAppAssignedAccessSettings“. ICD ფანჯრის შუა განყოფილების ზედა ნაწილში დააჭირეთ ღილაკს "Browse" და მიუთითეთ XML ფაილის ადგილმდებარეობა პარამეტრებით. ყოველ შემთხვევაში, შეგიძლიათ შეინახოთ პროექტი "Ctrl+s" დაჭერით. ICD-ის ზედა მარცხენა ნაწილში აირჩიეთ „ექსპორტი“ და ჩამოსაშლელი მენიუდან აირჩიეთ „მომარაგების პაკეტი“. როგორც მფლობელმა, აირჩიეთ „IT ადმინისტრატორი“; ყველა სხვა შეკითხვა შეიძლება გამოტოვოთ „შემდეგი“ დაწკაპუნებით და ბოლოს „აშენება“ და „დასრულება“.

დაინსტალირებული სისტემაში არ უნდა დაგვავიწყდეს მომხმარებლის "მომხმარებლის" შექმნა; ის არ შეიძლება დაემატოს "ადმინისტრატორების" ჯგუფს, წინააღმდეგ შემთხვევაში მულტიკიოსკი არ იმუშავებს. მე შევქმენი მომხმარებელი კომპიუტერის მენეჯმენტში პაროლით, რომელსაც ვადა არასოდეს გაუვა.

ახლა ჩვენ ვაწარმოებთ მოსამზადებელ პაკეტს ადრე დაყენებულ სისტემაზე. მოსამზადებელი პაკეტის გამოყენების შემდეგ შეიცვლება Start მენიუ და ადმინისტრატორის მენიუ. დაწყების მარცხენა სვეტში უნდა გაქრეს ღილაკები: "დოკუმენტები", "სურათი", "ოფციები". თუ დაწყების მენიუ არ შეცვლილა, მაშინ რაღაც არასწორია. დაინსტალირებული პაკეტის წაშლა შესაძლებელია პარამეტრების > ანგარიშების > სამსახურის ან სკოლის ანგარიშზე წვდომის გახსნით > პაკეტის უზრუნველყოფის ფანჯრის დამატება ან წაშლა.

თუ დაწყების მენიუ შეიცვალა, მაშინ პარამეტრები გამოიყენება სისტემაში, შედით როგორც მომხმარებელი, ვისთვისაც არის კონფიგურირებული მულტიკიოსკი და შეხედეთ შედეგს.

მეთოდი # 2

პარამეტრების გამოყენება "MDM Bridge WMI პროვაიდერის" გამოყენებით აღწერილია აქ. ამ მეთოდის მოხერხებულობა არის მისი გამოყენების მოქნილობა და მრავალი ხელით ოპერაციებისგან თავის დაღწევის შესაძლებლობა, რომლებიც საჭიროა მოსამზადებელი პაკეტის შესაქმნელად. აქ ყველას შეუძლია მიიღოს გადაწყვეტილება, რომელიც მისთვის მოსახერხებელი იქნება. რამდენიმე სცენარი გავაკეთე ჩემთვის.

MiltiKiosk.bat – გაშვების სკრიპტი

@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 – მთავარი სკრიპტი

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

თუ გსურთ გამოიყენოთ ჩემი გადაწყვეტა, მაშინ შეინახეთ ზემოთ ჩამოთვლილი სკრიპტები მათი ორიგინალური სახელებით ერთ საქაღალდეში და ჩადეთ ფაილი “PsExec.exe” იმავე საქაღალდეში. იმავე საქაღალდეში შექმენით „XML“ საქაღალდე და დააკოპირეთ XML ფაილები მასში მულტიკიოსკის კონფიგურაციისთვის. მე გამოვიყენებ იგივე ფაილს, როგორც პირველ მეთოდში.

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>

ცოტა რამ სცენარის მახასიათებლების შესახებ. სკრიპტი შექმნილია XML ფაილების გამოსაყენებლად "UTF8" კოდირებით; თუ გსურთ გამოიყენოთ "ANSI" კოდირება, მაშინ წაშალეთ "encoding UTF8" პარამეტრი ფაილის წაკითხვის პარამეტრიდან. თქვენ უნდა მოათავსოთ XML ფაილები "XML" საქაღალდეში სიმბოლოების ჩანაცვლების გარეშე; თავად სკრიპტი ჩაანაცვლებს სპეციალურ სიმბოლოებს შესაბამისი აღნიშვნებით. იმისათვის, რომ არ დაიბნეთ მომხმარებელთა პროფილებთან დაკავშირების GUID-ებში, შეგიძლიათ უბრალოდ მიუთითოთ მომხმარებლის ნომერი ან სახელი ხუჭუჭა ბრეკეტებში; ხვეული ბრეკეტების ყველა შინაარსი შეიცვლება GUID-ებით.

სკრიპტის გამოყენება ძალიან მარტივია, უბრალოდ გაუშვით და აირჩიეთ საჭირო ელემენტი. მიმდინარე კონფიგურაციის ახლის შესაცვლელად, არ არის საჭირო მიმდინარე კონფიგურაციის წაშლა, ის გადაიწერება. არ დაგავიწყდეთ მომხმარებლების შექმნა, რომლებიც მითითებულია კონფიგურაციის ფაილში.

მულტიკიოსკის მიმდინარე კონფიგურაციის ნახვისას იმავე სესიაზე, რომელშიც ის იქნა გამოყენებული, სპეციალური სიმბოლოების ნაცვლად გამოჩნდება ჩანაცვლებული სიმბოლოების კომბინაციები. სესიის შეცვლის შემდეგ (სკრიპტის გადატვირთვა), ყველა სპეციალური სიმბოლო გამოჩნდება ორიგინალური სახით.

ნაბიჯი 7 - სისტემის დალუქვა

მულტიკიოსკი მუშაობს, ეს ყველაფერია, როგორც ჩანს...

თუ ყველაფერი გეგმის მიხედვით მიდის, მაშინ რაღაცას ვერ ამჩნევთ.

არ დაგავიწყდეთ, რომ ჩვენ ჯერ კიდევ გვჭირდება სისტემის აუდიტის რეჟიმიდან მისასალმების რეჟიმში გადართვა. კარგად, ჩვენ მზად ვართ ამისათვის, ჩვენ გავუშვით "Sysprep.bat", აირჩიეთ წერტილი 2, სისტემა დალუქულია. ჩართავთ მოწყობილობას, სისტემა ჩაიტვირთება, შევდივართ მომხმარებლის ანგარიშზე, რომლისთვისაც არის კონფიგურირებული მულტიკიოსკი, მაგრამ ვერ შევდივართ. "მოგესალმებით" შეტყობინების შემდეგ გამოჩნდება შეტყობინება "გასვლა".

თავიდან მინდოდა აღმეწერა მხოლოდ პრობლემის გადაწყვეტა, მაგრამ მოგვიანებით გადავწყვიტე აღმეწერა ნაბიჯები პრობლემის იდენტიფიცირებისა და უმარტივესი გამოსავლის პოვნის მიზნით, რადგან... რა თქმა უნდა, ბევრ მკითხველს იტანჯება ბუნდოვანი ეჭვები - "რა მოხდება, თუ ასეა ...". მე ვფიქრობ, რომ სხვადასხვა ექსპერიმენტების აღწერა დაზოგავს მნიშვნელოვან დროს, თუ გსურთ იპოვოთ სხვა გამოსავალი. იმისათვის, რომ ინფორმაცია მაქსიმალურად ზუსტი იყოს და კიდევ ერთხელ დავრწმუნდეთ, რომ შეცდომები არ არის, მე აღვწერ ექსპერიმენტებს „შესრულებული და ჩაწერილი“ ფორმატში. იმათ. მე კვლავ გავაკეთებ აღწერილ ექსპერიმენტებს.

ექსპერიმენტი

რა გავაკეთეთ? სისტემაში ორი ანგარიშია:

„ადმინ“ – „ადმინისტრატორების“ ჯგუფში
"მომხმარებელი" - "მომხმარებლების" ჯგუფში
აუდიტის რეჟიმში მულტიკიოსკი მუშაობდა, მაგრამ დალუქვისას არ მუშაობდა.

ექსპერიმენტი 1

ჩვენ ვშლით დაინსტალირებული მოსამზადებელ პაკეტს, "კომპიუტერის მენეჯმენტის" სნეპ-ინში ვშლით მომხმარებელს "მომხმარებელს" და ვქმნით ახალ მომხმარებელს სახელწოდებით "მომხმარებელი", ვაყენებთ მოსამზადებელ პაკეტს, გადავდივართ "მომხმარებლის" ანგარიშზე - ასე ხდება. არ მუშაობს. ჩვენ მივდივართ სახელით "ადმინისტრატორი", ვხსნით მომხმარებელს "მომხმარებელს" "მომხმარებლების" ჯგუფიდან, ვამატებთ მას "ადმინისტრატორები" ჯგუფში, გადავდივართ "მომხმარებლის" სახელით - ეს არ მუშაობს. ჩვენ შევდივართ „ადმინ“ სახელით, ვშლით მოსამზადებელ პაკეტს მულტიკიოსკით, შევდივართ „მომხმარებლის“ სახელით - შევძელით შესვლა, მაგრამ რა თქმა უნდა მულტიკიოსკის რეჟიმი არ მუშაობს, რადგან უზრუნველყოფის პაკეტი ამოღებულია.

ექსპერიმენტი 2

ჩვენ ვტვირთავთ სისტემის სურათს - რუსიფიცირებული აუდიტის რეჟიმში.

OS დატვირთულია, დააჭირეთ Win+r-ს, რადგან ჩვენი sysprep ფანჯარა ავტომატურად დაიხურა, გაუშვით "sysprep" ბრძანება და გაუშვით "sysprep" ფანჯარაში, რომელიც იხსნება. Sysprep პარამეტრები ფანჯარაში: "გადადით სისტემის მისასალმებელ ფანჯარაში (OOBE)", "გამოყენებისთვის მომზადება", "გადატვირთვა". დააჭირეთ "OK" და დაელოდეთ OS-ის მისალმებას. ჩვენ ვპასუხობთ კითხვებს, როდესაც სისტემა პირველად ჩაიტვირთება: „გაგრძელება არჩეულ ენაზე?“ - "რუსული"; რეგიონი – რუსეთი; კლავიატურის განლაგება – რუსული; დაამატეთ კლავიატურის მეორე განლაგება - გამოტოვება; "მოდით დაგიკავშირდეთ ქსელთან" - "ამ დროისთვის გამოტოვება"; ინტერნეტთან დაკავშირება - არა; სალიცენზიო ხელშეკრულება - მიღება; „ვინ გამოიყენებს ამ კომპიუტერს“ – „ტესტი“; პაროლის შექმნა – ველი ცარიელი დატოვეთ; მოსახერხებელი მუშაობა სხვადასხვა მოწყობილობებზე – არა; კონფიდენციალურობის პარამეტრები - მიიღეთ. OS დატვირთულია, "კომპიუტერის მენეჯმენტის" სნეპ-ინში ვქმნით მომხმარებელს სახელწოდებით "მომხმარებელი", ვამატებთ მოსამზადებელ პაკეტს. შედეგი ის არის, რომ ის არ მუშაობს.

ექსპერიმენტი 3

ჩვენ ვტვირთავთ სისტემის სურათს - რუსიფიცირებული აუდიტის რეჟიმში.

ოპერაციული სისტემა ჩაიტვირთა, ჩვენ სისტემას ინტერნეტთან ვუკავშირდებით, ვასრულებთ ბრძანებას „gpedit.msc“ და „განახლების ცენტრის“ განყოფილებაში Windowsჩართეთ ოფცია „რეკომენდებული განახლებების ჩართვა ავტომატური განახლების გზით“ და გადატვირთეთ სისტემა ყოველი შემთხვევისთვის. განახლების ცენტრში დააწკაპუნეთ „განახლებების შემოწმებაზე“ და გადატვირთეთ სისტემა ყველა განახლების ინსტალაციამდე. გათიშეთ სისტემა ინტერნეტიდან. გაუშვით „sysprep“ გრაფიკულ რეჟიმში და გაიმეორეთ წინა ეტაპზე აღწერილი ყველა ნაბიჯი, „sysprep“-ის პროგრამის გაშვებიდან მოსამზადებელი პაკეტის დამატებამდე. შედეგი: ის არ მუშაობს.

ექსპერიმენტი 4

ჩვენ ვტვირთავთ სისტემის სურათს - ინგლისური აუდიტის რეჟიმში.

ჩვენ ვხსნით „sysprep“-ს გრაფიკულ რეჟიმში, ვლუქავთ OS-ს იგივე პარამეტრებით, როგორც მე-2 ექსპერიმენტის დროს. როდესაც სისტემა პირველად ჩაიტვირთება, ჩვენ ვირჩევთ იგივე პარამეტრებს, როგორც მე-2 ექსპერიმენტში, რეგიონალური და ენობრივი პარამეტრების გამოკლებით, რადგან რუსული ენა არ არსებობს. ანალოგიურად, შექმენით მომხმარებლის "მომხმარებელი" და დაამატეთ უზრუნველყოფის პაკეტი. შედეგი არის ის, რომ ის მუშაობს. იმათ. პრობლემა ლოკალიზაციას უკავშირდება.

ექსპერიმენტი 5

ჩვენ ვტვირთავთ სისტემის სურათს - რუსიფიცირებული აუდიტის რეჟიმში.

"კომპიუტერის მენეჯმენტის" სნეპ-ინში შექმენით მომხმარებლის "მომხმარებელი", დაამატეთ მოსამზადებელი პაკეტი, გადადით "მომხმარებლის" ანგარიშზე, მუშაობს მულტი-კიოსკი.

გამოდით თქვენი ანგარიშიდან და შედით "Admin" ანგარიშში. ჩვენ გავუშვით PowerShell-ს ადმინისტრატორის უფლებებით, ვასრულებთ ბრძანებას „Dism /online /Get-Intl“ და ვნახავთ „ნაგულისხმევი მომხმარებლის ინტერფეისის ენა: en-US“.

ვტვირთავთ ფლეშ დრაივიდან WinPE-ში, განლაგებული OS არის ჩემს E დისკზე. ჩვენ ვასრულებთ ბრძანებას „Dism /image:E: /Set-UILang:ru-ru“. ჩვენ ვუყურებთ შედეგს, ვასრულებთ „Dism /image:E: /Get-Intl“ და ვნახავთ „Default system UI language: ru-RU“.

ჩვენ ჩავტვირთავთ სისტემაში, შევდივართ "მომხმარებლის" ანგარიშზე, მულტიკიოსკი არ მუშაობს.

პრობლემის მიზეზ-შედეგობრივი კავშირის მკაფიოდ დასადგენად, კიდევ ერთხელ ვცადოთ მრავალკიოსკი მოქმედი და არამუშაო გავხადოთ.

ჩვენ ჩავტვირთავთ ფლეშ დრაივიდან WinPE-ში, განლაგებული OS არის ჩემს E დისკზე. ჩვენ ვასრულებთ ბრძანებას „Dism /image:E: /Set-UILang:en-us“. ჩვენ ვუყურებთ შედეგს, ვასრულებთ „Dism /image:E: /Get-Intl“ და ვნახავთ „Default system UI language: en-US“.

ჩვენ ჩავტვირთავთ სისტემას, შევდივართ "მომხმარებლის" ანგარიშზე, მუშაობს მულტიკიოსკი.

ვტვირთავთ ფლეშ დრაივიდან WinPE-ში, განლაგებული OS არის ჩემს E დისკზე. ჩვენ ვასრულებთ ბრძანებას „Dism /image:E: /Set-UILang:ru-ru“. ჩვენ ვუყურებთ შედეგს, ვასრულებთ „Dism /image:E: /Get-Intl“ და ვნახავთ „Default system UI language: ru-RU“.

ჩვენ ჩავტვირთავთ სისტემაში, შევდივართ "მომხმარებლის" ანგარიშზე, მულტიკიოსკი არ მუშაობს.

იმათ. შეგიძლიათ იხილოთ კიოსკის მუშაობის აშკარა დამოკიდებულება მომხმარებლის ინტერფეისის ნაგულისხმევ ენაზე. იქნებ არის სხვა ფაქტორები, რომლებიც გავლენას ახდენენ მულტიკიოსკის მუშაობაზე?

ექსპერიმენტი 6

ექსპერიმენტის სიწმინდისთვის, ჩვენ შევავსებთ სისტემას. ჩვენ ვტვირთავთ სისტემის სურათს - რუსიფიცირებული აუდიტის რეჟიმში.

ჩვენ ვხსნით „sysprep“-ს გრაფიკულ რეჟიმში, ვლუქავთ OS-ს იგივე პარამეტრებით, როგორც მე-2 ექსპერიმენტის დროს. ველოდებით, რომ OS მოგვესალმოს და უპასუხოს კითხვებს: „განაგრძო შერჩეულ ენაზე?“ – „ინგლისური (შეერთებული შტატები)“; რეგიონი – რუსეთი; კლავიატურის განლაგება - რუსული. გარდა ამისა, ყველა პარამეტრი შეირჩა, როგორც მე-2 ექსპერიმენტში.

მოდით შევხედოთ მომხმარებლის ინტერფეისის ნაგულისხმევი ენის პარამეტრებს. ჩვენ ვასრულებთ ბრძანებას "Dism /online /Get-Intl" და ვხედავთ "Default system UI language: en-US". "კომპიუტერის მენეჯმენტის" სნეპ-ინში შექმენით მომხმარებლის "მომხმარებელი", დაამატეთ მოსამზადებელი პაკეტი, გადადით "მომხმარებლის" ანგარიშზე, მუშაობს მულტი-კიოსკი.

ჩვენ ვცდილობთ დავარღვიოთ კიოსკი მომხმარებლის ინტერფეისის ნაგულისხმევი ენის შეცვლით. ჩვენ შევდივართ "ტესტი" მომხმარებელში, რომელიც შეიქმნა სისტემის პირველად ჩატვირთვისას და ჩავრთავთ მის ავტომატურ შესვლას, რათა სისტემა დაუყოვნებლივ არ ჩაიტვირთოს "მომხმარებლის" ანგარიშში. შეასრულეთ "netplwiz", აირჩიეთ "ტესტი" მომხმარებელი, მოხსენით მონიშვნა "მომხმარებლის სახელისა და პაროლის მოთხოვნა" და გამოიყენეთ პარამეტრები.

ჩატვირთეთ ფლეშ დრაივიდან WinPE-ში. შეასრულეთ ბრძანება "Dism /image:E: /Set-UILang:ru-ru". ჩვენ ვუყურებთ შედეგს, ვასრულებთ „Dism /image:E: /Get-Intl“ და ვნახავთ „Default system UI language: ru-RU“.

ჩვენ ჩავტვირთავთ სისტემას, ვცდილობთ შეხვიდეთ "მომხმარებლის" ანგარიშზე, მულტიკიოსკი მუშაობს. იმათ. მისი გატეხვა შეუძლებელია. შესაძლებელია თუ არა ამ გზით მუშაობა?

ექსპერიმენტი 7

ჩვენ ვტვირთავთ სისტემის სურათს - რუსიფიცირებული აუდიტის რეჟიმში.

გავუშვით „Sysprep.bat“, ვირჩევთ პუნქტს 2. ჩავტვირთავთ სისტემას, ვქმნით მომხმარებლის „მომხმარებელს“ „კომპიუტერის მენეჯმენტის“ სნეპ-ინში, ვამატებთ მოსამზადებელ პაკეტს, გადავდივართ „მომხმარებლის“ ანგარიშზე, მულტი- კიოსკი არ მუშაობს.

ჩატვირთეთ ფლეშ დრაივიდან WinPE-ში. შეასრულეთ ბრძანება "Dism /image:E: /Set-UILang:en-us". ჩვენ ვუყურებთ შედეგს, ვასრულებთ „Dism /image:E: /Get-Intl“ და ვნახავთ „Default system UI language: en-US“.

ჩვენ ჩავტვირთავთ სისტემას, ვცდილობთ შეხვიდეთ "მომხმარებლის" ანგარიშზე, მულტიკიოსკი არ მუშაობს.

გამოდის, რომ მომხმარებლის ინტერფეისის ნაგულისხმევი ენის პარამეტრის შეცვლით, თქვენ შეგიძლიათ გავლენა მოახდინოთ მულტიკიოსკის მუშაობაზე მხოლოდ მაშინ, როდესაც სისტემა აუდიტის რეჟიმშია ან სისტემის დალუქვის შემდეგ პირველი ჩატვირთვისას. ეს ნიშნავს, რომ თქვენ მოგიწევთ სისტემის დალუქვა საპასუხო ფაილით, რომელშიც სისტემის ენა შეირჩევა ინგლისურად, შემდეგ კი შეცვალოთ სისტემის პარამეტრები ისე, რომ ინტერფეისი იყოს რუსული. არ არის ძალიან კარგი გამოსავალი. იქნებ პრობლემა მოგვარდეს ენის პაკეტის დაყენებით ან დამატებითი ენის პაკეტების დაყენებით?

ექსპერიმენტი 8

ჩვენ ვტვირთავთ სისტემის სურათს - ინგლისური აუდიტის რეჟიმში.

ჩვენ ვუკავშირდებით ინტერნეტს, სისტემის პარამეტრებში გადადით "ენის" განყოფილებაში, აირჩიეთ "ენის დამატება", აირჩიეთ ენა "რუსული", დააჭირეთ "შემდეგი", დატოვეთ ინსტალაციის პარამეტრები ნაგულისხმევად, დააჭირეთ "ინსტალაციას", ინსტალაციის შემდეგ. ენის პაკეტი ჩვენ გადატვირთეთ სისტემა, ახლა რუსიფიცირებული. გათიშეთ სისტემა ინტერნეტიდან, გაუშვით „Sysprep.bat“, აირჩიეთ წერტილი 2.

სისტემის ჩატვირთვის შემდეგ „კომპიუტერის მენეჯმენტის“ სნეპ-ინში შექმენით მომხმარებელი „მომხმარებელი“, დაამატეთ მოსამზადებელი პაკეტი, გადადით „მომხმარებლის“ ანგარიშზე, მულტი-კიოსკი არ მუშაობს.

ექსპერიმენტი 9

ვცადოთ სისტემის რუსიფიკაცია ინსტალაციამდე, ოფლაინ რეჟიმში. პარალელურად იქნება მოკლე საგანმანათლებლო პროგრამა განაწილების ლოკალიზაციის შესახებ.

მე ვიღებ ფლეშ დრაივს სუფთა, ორიგინალური დისტრიბუციით – X21-96381. ეს იქნება დისკი „E“. სურათების დასამონტაჟებლად ვქმნი შემდეგ საქაღალდეებს: „c:MountInstall“, „c:MountWinre“ და „c:MountBoot“. ვიღებ ლოკალიზაციის პაკეტების ნაკრებს – X21-87814. და იქიდან ვაკოპირებ შემდეგ პაკეტებს „c:Mount“ საქაღალდეში: „Microsoft-“Windows-Client-Language-Pack_x86_ru-ru.cab", "lp.cab", "WinPE-Setup_ru-ru.cab". კონსოლს ადმინისტრატორის უფლებებით ვხსნი. ვფიქრობ, შემდეგი ბრძანებები თავისთავად გასაგებია.

ლოკალიზაციის ბრძანებები

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

ჩვენ ვტვირთავთ ფლეშ დრაივიდან, ვირჩევთ რუსულ ენას და დავაინსტალირეთ სისტემა ცარიელ დისკზე. როდესაც სისტემა მოგთხოვთ აირჩიოთ რეგიონი, დააჭირეთ "Ctrl+Shift+F3". "კომპიუტერის მენეჯმენტის" სნეპ-ინში შექმენით მომხმარებლის "მომხმარებელი", დაამატეთ მოსამზადებელი პაკეტი, გადადით "მომხმარებლის" ანგარიშზე, მულტი-კიოსკი არ მუშაობს.

ჩატვირთეთ ფლეშ დრაივიდან WinPE-ში. შეასრულეთ ბრძანება "Dism /image:E: /Set-UILang:en-us".

ჩვენ ჩავტვირთავთ სისტემას, ვცდილობთ შეხვიდეთ "მომხმარებლის" ანგარიშზე, მულტიკიოსკი მუშაობს.

როგორც ჩანს, პრობლემა არ არის პაკეტის დამატების მეთოდებში, ვცადოთ დამატებითი პაკეტების დამატება.

ექსპერიმენტი 10

ვიღებთ ფლეშ დრაივს, რომელიც მოვამზადეთ წინა ეტაპზე.

ვიღებთ "Feat on Demand" პაკეტს - X21-87815. მე ვაკოპირებ პაკეტებს მისგან "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».

გაუშვით კონსოლი ადმინისტრატორის უფლებებით და შეასრულეთ ბრძანებები:

ბრძანებები

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

ჩვენ ვტვირთავთ ფლეშ დრაივიდან, ვირჩევთ რუსულ ენას და დავაინსტალირეთ სისტემა ცარიელ დისკზე. როდესაც სისტემა მოგთხოვთ აირჩიოთ რეგიონი, დააჭირეთ "Ctrl+Shift+F3". „კომპიუტერის მენეჯმენტის“ სნეპ-ინში შექმენით „მომხმარებლის“ მომხმარებელი, დაამატეთ უზრუნველყოფის პაკეტი და შედით „მომხმარებლის“ ანგარიშში. მე მივიღე შავი ეკრანი, რომელიც დიდი ხნის განმავლობაში ეკიდა, ამიტომ სისტემა ჩავტვირთე.

ჩვენ ვშლით მოსამზადებელ პაკეტს, შევდივართ როგორც "მომხმარებელი", გადატვირთეთ სისტემა, ვამატებთ მოსამზადებელ პაკეტს, მულტიკიოსკი არ მუშაობს.

ჩატვირთეთ ფლეშ დრაივიდან WinPE-ში. შეასრულეთ ბრძანება "Dism /image:E: /Set-UILang:en-us".

ჩვენ ჩავტვირთავთ სისტემას, ვცდილობთ შეხვიდეთ "მომხმარებლის" ანგარიშზე, მულტიკიოსკი მუშაობს.

Გარშემო მუშაობა

ჩვეულებრივი გმირები. ისინი ყოველთვის შემოვლითი გზით მიდიან!

ლოკალიზაციის პაკეტების დაყენების სხვადასხვა მეთოდმა არ გადაჭრა პრობლემა, რაც ნიშნავს, რომ დალუქვის შემდეგ პირველ ჩატვირთვისას მოგიწევთ ენის „en-us“ დაყენება, ხოლო პირველი ჩატვირთვის შემდეგ ენის პარამეტრების შეცვლა.

ჩვენ ვტვირთავთ სისტემის სურათს - რუსიფიცირებული აუდიტის რეჟიმში.

"Unattend.xml" ფაილში შეიყვანეთ "en-US" პარამეტრში, გაუშვით "Sysprep.bat", აირჩიეთ წერტილი 2 და ნახეთ რა მივიღეთ. მისასალმებელი ეკრანი ინგლისურ ენაზეა, მულტი-კიოსკი მუშაობს. ეს ნიშნავს, რომ თქვენ უნდა დაამატოთ ბრძანება „Unattend.xml“ მისალმების ენის შესაცვლელად. და ამისათვის თქვენ უნდა გაუშვათ ბრძანება "control intl.cpl,, /f:", რომელიც მიუთითებს კონფიგურაციის ფაილზე, რომელიც მიუთითებს მიმდინარე პარამეტრების კოპირებას მისასალმებელ ეკრანზე. კონფიგურაციის ფაილის შინაარსი ასე გამოიყურება.

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

იმიტომ რომ დააკოპირებს მიმდინარე მომხმარებლის პარამეტრებს, შემდეგ ბრძანება უნდა შესრულდეს მომხმარებლის შესვლის შემდეგ, რაც ნიშნავს, რომ დაგვჭირდება. არის ერთი პატარა „მაგრამ“, შესრულება განხორციელდება მას შემდეგ, რაც ადმინისტრატორის უფლებების მქონე მომხმარებელი შევა. და მე არ მინდა შევქმნა დამატებითი ფაილი, რომელიც საჭირო იქნება ბრძანების წარმატებით გასაშვებად. უმჯობესია, მთლიანი გადაწყვეტა დანერგოთ ერთ ფაილში - "Unattend.xml". ამისათვის თქვენ უბრალოდ უნდა შეასრულოთ ბრძანება, რომელიც ქმნის კონფიგურაციის ფაილს. მე ვფიქრობ, რომ შევქმნი კონფიგურაციის ფაილს "echo" ბრძანების გამოყენებით "cmd" გარემოში, მაგრამ ის უნდა გაექცეს კუთხის ფრჩხილებს circumflex-ით. იმათ. კონფიგურაციის ფაილის შესაქმნელად მიიღება შემდეგი ბრძანება.

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

მაგრამ ჩვენ უნდა მოვათავსოთ ეს ბრძანება XML-ში, რომელსაც აქვს საკუთარი მოთხოვნები სპეციალური სიმბოლოების გამოყენებისთვის:

განსაკუთრებული პერსონაჟი
ჩანაცვლების ღირებულება

>
&gt;

<
&lt;

&
&amp;

'
&apos;

"
&quot;

შედეგად, კონფიგურაციის ფაილის შესაქმნელად, მივიღეთ შემდეგი ბრძანება "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;

შემდეგი, ჩვენ ვასრულებთ ბრძანებას კონფიგურაციის ფაილის გამოყენებით.

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

შემდეგი, წაშალეთ ადრე შექმნილი ფაილი და გადატვირთეთ სისტემა. ცვლილებები ძალაში შევა გადატვირთვის შემდეგ.

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

შედეგად, მე მივიღე შემდეგი პასუხის ფაილი sysprep-ისთვის.

უყურადღებოდ.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>

მოდით შევამოწმოთ...

ჩვენ ვტვირთავთ სისტემის სურათს - რუსიფიცირებული აუდიტის რეჟიმში.

ჩვენ ვცვლით Unattend.xml ფაილს ახლით, გაუშვით "Sysprep.bat", აირჩიეთ წერტილი 2 და ვნახოთ რა მივიღეთ. როდესაც პირველად ჩატვირთავთ, მისასალმებელი ეკრანი ინგლისურად არის და სისტემა გადაიტვირთება. მისასალმებელი ეკრანი რუსულ ენაზეა, მულტიკიოსკი მუშაობს.

თუ თქვენ გაქვთ რაიმე შეკითხვები დაყენებასთან და ლიცენზირებასთან დაკავშირებით Windows 10 IoT Enterprise-ს, გთხოვთ, დაგვიკავშირდეთ შემდეგ ნომერზე: mse@quarta.ru ან ვებსაიტზე quarta-embedded.ru.
თქვენ შეგიძლიათ იპოვოთ პასუხი ზოგიერთ კითხვაზე ჩვენი ვიკი ან ჩვენს YouTube არხი

სტატიის ავტორი: ვლადიმერ ბორისენკოვი, ტექნიკური ექსპერტი Quarta Technologies.

წყარო: www.habr.com

შეიძინეთ საიმედო ჰოსტინგი DDoS დაცვის მქონე საიტებისთვის, VPS VDS სერვერებისთვის 🔥 შეიძინეთ საიმედო ვებსაიტის ჰოსტინგი DDoS დაცვით, VPS VDS სერვერები | ProHoster