Windows 10 IoT Enterprise 2019 - መልቲኪዮስክ ሁነታ

መግቢያ

ዊንዶውስ 10 አይኦ ኢንተርፕራይዝ 2019 የሚቀጥለው የዊንዶውስ 10 የማርኬቲንግ ስም ነው። የዚህ እትም መውጣቱ በሴፕቴምበር 2018 ታወቀ፣ በቅደም ተከተል፣ ስሪት 1809 አለው፣ 18 አመት ነው፣ 09 ወር ነው። በአዲሱ የዊንዶውስ 10 1809 እትም ላይ ብዙ መጣጥፎች ተጽፈዋል ፣ ግን አብዛኛዎቹ ለተለያዩ “ቀስቶች” ፣ “ውበት” እና በቤት ውስጥ ለሚፈለጉ የተለያዩ ተግባራት ያደሩ ናቸው።
ይህ መጣጥፍ የሚያብራራው ቋሚ ዓላማ ባላቸው መሳሪያዎች አምራቾች መካከል ሊፈለግ የሚችለውን ተግባራዊነት ብቻ ነው። ይኸውም ስለ "ኪዮስክ" ሁነታ አዲስ ችሎታዎች. ለድርጅቱ ክፍል የዊንዶውስ እትሞች የአገልግሎት መርሃግብሮችን ስም የመቀየር ርዕስም ይነካል።

የድሮ አገልግሎት እቅድ ከአዲስ ስም ጋር

በአጭሩ ማብራሪያ ልጀምር፡ በዊንዶውስ እትሞች የኮርፖሬት ክፍል ውስጥ ዊንዶውስ ዝመናዎችን የሚቀበልባቸው ሁለት የአገልግሎት መርሃግብሮች አሉ። የአገልግሎት ሥዕላዊ መግለጫዎች የፊደል ስያሜ አላቸው። በአሁኑ ጊዜ የአገልግሎት ቅርንጫፎች LTSC እና SAC ይባላሉ።

LTSC ማለት ነው። የረጅም ጊዜ አገልግሎት ቻናል (ከረጅም ጊዜ ጥገና ጋር). ከዚህ ቀደም እንዲህ ዓይነቱ ቻናል LTSB - የረዥም ጊዜ አገልግሎት ቅርንጫፍ ተብሎ ይጠራ ነበር ማይክሮሶፍት የአገልግሎት ቻናሉን ስም በቀላሉ ቀይሯል ፣ አገልግሎቱ ራሱ ተመሳሳይ ነው።

ማይክሮሶፍት የአገልግሎት ቅርንጫፍን ስም ቀይሯል CBB - የአሁኑ ቅርንጫፍ ለንግድ ፣ አሁን ይህ የአገልግሎት ቅርንጫፍ SAC - ይባላል። የሰመር አመታዊ ሰርጥ. እንደገና, ስሙ ብቻ ተቀይሯል.

ነገር ግን የ LTSC እና SAC አገልግሎት ሰጪ ቅርንጫፎች የተለያዩ የዊንዶውስ ስርጭቶችን እንደሚጠቀሙ መጠቀስ አለበት.

በSAC ላይ ስላለው አዲሱ የኪዮስክ ሁነታ ትንሽ

አስቀድሜ እንዳልኩት፣ LTSC እና SAC የተለያዩ ስርጭቶች አሏቸው። LTSC መደበኛ ሁለንተናዊ መተግበሪያዎች ወይም የመተግበሪያ መደብር የሉትም፣ SAC ግን አለው። በዚህ መሰረት፣ LTSC የ Edge አሳሽ የለውም፣ ግን SAC አለው። ኪዮስክ ሲያዘጋጁ የ Edge አሳሹን ከመረጡ አሁን ሁለት ሁነታዎች ይገኛሉ፡-

  1. እንደ ዲጂታል ምልክት ወይም በይነተገናኝ ማሳያ
  2. እንደ ይፋዊ አሳሽ

እነዚህን ሁነታዎች በማዘጋጀት ላይ አልቆይም ፣ ምክንያቱም… ማዋቀሩ በጣም ቀላል እና በግራፊክ በይነገጽ ውስጥ ይከናወናል. የአስተዳዳሪዎች ቡድን አባል ያልሆነ ተጠቃሚ ብቻ ይፍጠሩ፣ EDGE ን በመጠቀም የኪዮስክ ሁነታን ያንቁት እና እነዚህ ሁነታዎች እንዴት እንደሚሰሩ ይመልከቱ።

ኪዮስክ ከብዙ መተግበሪያዎች ጋር

አንዳንድ ሰዎች ፈቃድ ያለው አጠቃቀም ብለው ያስባሉ ዊንዶውስ 10 IoT ድርጅት በመሳሪያው ላይ የአንድ መተግበሪያ ብቻ ሥራን ያመለክታል, በእውነቱ ይህ እንደዛ አይደለም. መሣሪያው አንድ ነጠላ የንግድ ሥራ ለማከናወን የተነደፈ መሆን አለበት እና ተጠቃሚው የዴስክቶፕ መዳረሻ ሊኖረው አይገባም። አሁን ማይክሮሶፍት ራሱ ብዙ አፕሊኬሽኖችን ለመጠቀም መሳሪያውን ሰጥቷል። ይህ ሁነታ “ባለብዙ ​​አፕ ኪዮስክ” ይባላል፤ ከዚህ በኋላ፣ በአጭሩ፣ “multikiosk” እለዋለሁ። በዚህ ጽሑፍ ውስጥ የሶፍትዌር እሽግ እና አንዳንድ የዚህ ሁነታ ባህሪያትን በመጠቀም ይህንን ሁነታ ማዋቀር እንመለከታለን.

ስለ መልቲኪዮስክ ሁነታ ትንሽ

የባለብዙ ኪዮስክ ሁነታ ወደተቀናበረበት የተጠቃሚ መለያ ሲገቡ ስርዓቱ በጡባዊ ሁነታ ይሰራል። የጀምር ምናሌው ወደ ሙሉ ስክሪን ይሰፋል፣ የመተግበሪያ ሰቆችን ያሳያል።

የመሠረታዊ ቅንብሮች እና ሁነታ ችሎታዎች ዝርዝር፡-

  1. ለብዙ ተጠቃሚዎች ወይም ቡድኖች ማዋቀር
  2. እያንዳንዱ ተጠቃሚ ወይም ቡድን በግለሰብ ቅንብሮች ሊመደብ ይችላል።
  3. ሁለንተናዊ እና ክላሲክ መተግበሪያዎችን የመጠቀም ችሎታ
  4. ተጠቃሚው ሲገባ ከመተግበሪያዎቹ ውስጥ አንዱን በራስ-ሰር የማስጀመር ችሎታ
  5. የተፈቀዱ መተግበሪያዎች
  6. ነጭ ዝርዝርን በመጠቀም አቃፊዎችን መድረስ

ወደ ነጥብ 5 ትኩረት መስጠት ተገቢ ነው. በነባሪ, ለስርዓቱ ስራ አስፈላጊ የሆኑ መተግበሪያዎች ብቻ እንዲሰሩ ይፈቀድላቸዋል, ሌሎች መተግበሪያዎች ወደ የተፈቀደላቸው ዝርዝር ውስጥ መጨመር አለባቸው. እነዚያ። አሁን AppLockerን ለየብቻ ማዋቀር አያስፈልግዎትም። በነገራችን ላይ ከAppLocker ቅንጅቶች ጋር ግጭቶችን ለማስወገድ በባለብዙ ኪዮስክ ሁነታ ሁሉም የተዋቀሩ የAppLocker ደንቦች ተፈጻሚነት አይኖራቸውም።

ነጥብ 6 ጥሩ አማራጭን ያመለክታል, ነገር ግን በአሁኑ ጊዜ ለ "ማውረዶች" አቃፊ የመጻፍ ፍቃድ መስጠት ብቻ ነው. ሁነታው ሁለንተናዊ እና ክላሲክ መተግበሪያዎችን እንድትጠቀም ይፈቅድልሃል. ሁሉም ሁነታ ቅንጅቶች በኤክስኤምኤል ፋይል ውስጥ ተገልጸዋል፣ በዚህ ውስጥ ለአንድ ነጠላ መተግበሪያ ኪዮስክ ቅንብሮችን መግለጽ ይችላሉ።

አሁን ሁሉንም ለማዘጋጀት እንሞክር ...

ምን ያስፈልገናል...

  1. በመጀመሪያ ደረጃ, የ multikiosk ሁነታን የሚደግፍ ስርዓቱ ራሱ ያስፈልገናል. እዚህ ማውረድ ይችላሉ የማሳያ ስሪት
  2. መልቲኪዮስክን ለማዘጋጀት መመሪያዎች
  3. ማንኛውም የኤክስኤምኤል አርታዒ
  4. መልቲኪዮስክ ቅንብሮችን ለመተግበር፡-
    1. ለ ዘዴ ቁጥር 1 - የ ADK አካል የሆነው ICD. ADK ይቻላል እዚህ አውርድ
    2. ለ ዘዴ ቁጥር 2 - የ PsExec መገልገያ. መገልገያው ሊሆን ይችላል እዚህ አውርድ

እሱ - “እንሂድ!” አለ።

ሁሉንም ሙከራዎች በWindows 10 IoT Enterprise 1809 LTSC x32 የንግድ ሥሪት ላይ አደርጋለሁ፣ የማሳያ ሥሪት አይደለም። ምክንያቱም ስርዓቱ አይነቃም። የማንቃት እጥረት የስርዓቱን ተግባር አይጎዳውም. 32 ቢት ወስጃለሁ ምክንያቱም ትንሽ ቦታ ስለሚወስድ እና ከስርዓት ምስሎች ጋር ለመስራት ፈጣን ይሆናል።

ደረጃ 1 - ጭነት

Win 10 IoT ኢንተርፕራይዝን መጫን ዊን 10 ኢንተርፕራይዝን ከመጫን አይለይም, ስለዚህ አጠቃላይ የመጫን ሂደቱን አልገልጽም, ስለ አንዳንድ ጥቃቅን ነገሮች ብቻ እናገራለሁ.

እንደዚያ ከሆነ ፣ ላስታውስዎት ፣ ስርዓቱን በተጫነው ላይ አይጫኑት። ጫኚው ስለ ስርዓቱ መጫኛ ቦታ ሲጠይቅ, የወደፊቱን የስርዓት ዲስክ ሁሉንም ክፍልፋዮች ይሰርዙ እና ያልተከፋፈለ ዲስክ ይግለጹ.

ስርዓቱን ያለ በይነመረብ ግንኙነት እንጭነዋለን, ይህም ስርዓቱ ምንም አላስፈላጊ ነገር እንዳያነሳ.

ምክንያቱም የስርዓቱን የመጠባበቂያ ምስሎችን እንፈጥራለን እና ለዚህም በኦዲት ሁነታ ላይ እንዘጋዋለን, ከዚያም ከተጫነ በኋላ ወዲያውኑ ስርዓቱን በኦዲት ሁነታ በመጫን የተወሰነ ጊዜ መቆጠብ ይችላሉ. ይህንን ለማድረግ ስርዓቱ አንድ ክልል እንዲመርጡ ሲጠይቅዎት “በክልል እንጀምር። ይህ ትክክል ነውን" በቀላሉ "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

ሲጀመር ስክሪፕቱ የ "አስተዳዳሪ" መለያ መኖሩን ያረጋግጣል እና ከጠፋ አንድ ይፈጥራል. መለያው ወደ አስተዳዳሪዎች ቡድን ይታከላል።

Unttend.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 መስኮቱን እንዳይዘጋ በመዝገቡ ላይ ትዕዛዝ ይጨምራል. በሄሎ ሁነታ ሲዘጋ ስክሪፕቱ መስኮቱን ከመዝገቡ ውስጥ ለመዝጋት ትዕዛዙን ያስወግዳል እና እራሱ በመልሱ ፋይል ውስጥ ያለውን የሕንፃ እሴት ወደ የአሁኑ ይለውጠዋል። የመልስ ፋይሉ ያለተጠቃሚ መስተጋብር ስርዓቱን የማስነሳት መለኪያዎች እና በስርዓት አንፃፊ ስር የሚገኘውን “Sysprep” አቃፊን የመሰረዝ ትእዛዝ ይዟል።

አሁን "Sysprep.bat" ን በመጠቀም ስርዓቱን በኦዲት ሁነታ እዘጋለሁ እና የስርዓቱን ምስል እቀርጻለሁ. DISMን በመጠቀም ስርዓቱን አቀርባለሁ እና የስርዓቱን ድምጽ ብቻ አቀርባለሁ። ሙሉውን ዲስክ ሳይሆን የስርዓቱን ድምጽ ብቻ የሚመስሉ ከሆነ የ "WindowsSystem32Recovery" ማውጫን ይዘቶች ወደ መጀመሪያው ድምጽ ወደ "RecoveryWindowsRE" አቃፊ ውስጥ መገልበጥ አይርሱ. ስርዓተ ክወናውን ከመጫንዎ በፊት ይህ መደረግ አለበት። ስርዓተ ክወናውን ከጫኑ በኋላ “WindowsSystem32Recovery” ማውጫ ቀድሞውኑ ባዶ ይሆናል።

ደረጃ 3 - የስርዓተ ክወናው ሂደት

ይህ ጥቅል ካለዎት የቋንቋ ጥቅል ያለ በይነመረብ ግንኙነት ሊጫን ይችላል። ካልሆነ ቋንቋውን በቅንብሮች ውስጥ ሲጨምሩ ስርዓቱ ራሱ ከበይነመረቡ ያወርዳል። የቋንቋ ጥቅልን ከቀደምት የስርዓተ ክወና ስሪቶች መውሰድ ብቻ አያስፈልግም። ለዊንዶውስ 10 1809 በተለይ ለዊንዶውስ 10 1809 የቋንቋ ጥቅል መኖር አለበት።

ማይክሮሶፍት ቅንጅቶችን ከክላሲክ ሜኑ ወደ አዲሱ ለማስተላለፍ ዕቅዱን እየተከተለ ነው ፣ስለዚህ በሚታወቀው የቁጥጥር ፓነል ውስጥ ቋንቋውን ለመቀየር እና የቋንቋ ጥቅል ለመጫን መቼት አያገኙም። እነዚህ ቅንብሮች አሁን በስርዓት መለኪያዎች ውስጥ ብቻ ናቸው.

በኦዲት ሁኔታ ውስጥ የስርዓት ቅንብሮችን ከጀምር ምናሌ ውስጥ ለመክፈት ችግር ሊያጋጥምዎት ይችላል ፣ የስርዓት ቅንብሮችን ለመክፈት ትዕዛዙን ያሂዱ - “ms-settings:” ፣ በትእዛዙ መጨረሻ ላይ ለኮሎን ትኩረት ይስጡ ፣ ያለ እሱ ትዕዛዙ ይከናወናል ። ሥራ አይደለም. ይህንን ትዕዛዝ አንዴ በመጠቀም የስርዓት መለኪያዎችን ከከፈቱ በኋላ በግራፊክ ሜኑ በመጠቀም ሊከፈት ይችላል.

ነገር ግን በስርዓት ቅንጅቶች ውስጥ ስርዓቱ ከበይነመረቡ ጋር የተገናኘ ከሆነ የቋንቋ ጥቅል መጫን ይችላሉ, ከአካባቢያዊ ፋይል የቋንቋ ጥቅል ለመጫን ለመምረጥ ምንም አማራጭ የለም.

የስርአቱን አካባቢያዊነት ሂደት አልገልጽም ምክንያቱም... ይህ በተለይ የትርጉም ሂደቱ በዝርዝር ስለተገለጸ ጽሑፉን በእጅጉ ያወሳስበዋል እዚህ ተብራርቷል. ነገር ግን ኮንሶሉን በመጠቀም የቋንቋ ጥቅል ከጫኑ በኋላ የስርዓት ቋንቋን የመቀየር ልዩ ትኩረትዎን ለመሳብ እፈልጋለሁ። ይህ ባህሪ ቀደም ሲል አገናኝ ባቀረብኩበት በተመሳሳይ ዊኪ ውስጥ ተገልጿል, በንዑስ ክፍል "ቋንቋ ወደ የቋንቋዎች ዝርዝር ማከል".

የቋንቋ ጥቅልን ያለበይነመረብ ግንኙነት እጭነዋለሁ።

የስርዓቱን ሙሉ አካባቢያዊነት ካደረጉ በኋላ የስርዓቱን ምስል መፍጠርዎን ያረጋግጡ።

ደረጃ 4 - አስፈላጊዎቹን መተግበሪያዎች ይጫኑ

ምክንያቱም LTSB እና LTSC ሲስተሞች የመተግበሪያ መደብር ስለሌላቸው ከማይክሮሶፍት ስቶር አፕሊኬሽኖችን መጫን አንዳንድ ችግሮች ያጋጥመዋል ማለትም አፕሊኬሽኑን ማውረድ። አፕሊኬሽኖችን ለማውረድ የ Adguard ኩባንያ በጣም ምቹ የሆነ አገልግሎት ሰርቷል - "Adguard መደብር", በእሱ አማካኝነት ጊዜያዊ የማውረድ አገናኞች ለመተግበሪያዎች እና ለክፍላቸው.

አፕሊኬሽኑን ለመጫን «Appx» እና «AppxBundle» ቅጥያ ያላቸው ፋይሎች ያስፈልጉዎታል። አፕሊኬሽኑን ራሱ ከመጫንዎ በፊት ክፍሎቹን መጫን አለብዎት። እንደ አንድ ደንብ ፣ ከመተግበሪያው ውስጥ ያሉ አካላት በፋይል ስም ሊለዩ ይችላሉ።

ጽሑፉን ረዘም ላለ ጊዜ ላለማድረግ ፣ በተለይም በመጫን ላይ መረጃ ስላለ አፕሊኬሽኖችን የመጫን ሂደቱን በዝርዝር አልገልጽም ። ዝርዝር መመሪያዎች. ነገር ግን መተግበሪያዎችን ወደ የአሁኑ መለያህ የምትጭንበት አንድ ተጨማሪ መንገድ እጨምራለሁ። ፕሮግራሙን በመጠቀም መተግበሪያዎችን መጫን ይቻላል "መተግበሪያ ጫኚ"ነገር ግን አፕሊኬሽኖችን ለመጫን የበይነመረብ ግንኙነት ያስፈልገዎታል ነገርግን አፕሊኬሽኖች በድርብ ጠቅታ ሊጫኑ ይችላሉ እና ክፍሎቹን አያስፈልጎትም ሁሉም አስፈላጊ ክፍሎች አውርደው ይጫናሉ. "መተግበሪያ ጫኚ".

እና ትንሽ ማስታወሻ, መተግበሪያውን ወደ የአሁኑ መለያ ሲጭኑ, ስርዓቱን ማተም አይችሉም. ስርዓቱን ማተም እንዲችሉ መተግበሪያዎችን እንዴት እንደሚጫኑ, ከላይ ያሉትን መመሪያዎች ይመልከቱ. እና የመልቲኪዮስክን አሠራር ለመፈተሽ ነባር መተግበሪያዎች በጣም በቂ ናቸው።

ደረጃ 5 - ለመልቲኪዮስክ የውቅር ፋይል መፍጠር

አሁን ወደ በጣም አስደሳች ክፍል ደርሰናል - የኪዮስክ ሁነታን ማዘጋጀት. እስቲ እንመልከት መመሪያ እንደምናየው ቅንጅቶች. በመጀመሪያ ደረጃ, የኤክስኤምኤል ውቅር ፋይል መፍጠር አለብን, ሙሉ ምሳሌው እዚህ ሊገኝ ይችላል. እዚህ ይመልከቱ.

የሰድር አቀማመጥን በማዘጋጀት እንጀምር. የኤክስኤምኤል ንጣፍ ማበጀት ውቅር ለመፍጠር ቀላሉ መንገድ አሁን ያላቸውን ሁኔታ ወደ ውጭ መላክ.

በመጀመሪያ ደረጃ እኛ የምንፈልጋቸውን የመተግበሪያዎች ንጣፍ ወደ ጀምር ምናሌ እንጨምር። ፍለጋውን "Win +s" ይደውሉ, ተፈላጊውን መተግበሪያ ያግኙ, በእሱ ላይ ቀኝ-ጠቅ ያድርጉ እና "ከመጀመሪያ ማያ ገጽ ጋር ይሰኩት" የሚለውን ይምረጡ.

የሚከተሉትን መተግበሪያዎች ሰክቻለሁ፡-

  • ማስታወሻ ደብተር
  • የሂሳብ ማሽን
  • ኢንተርኔት ኤክስፕሎረር
  • ቀለም
  • WordPad
  • መለኪያዎች
  • የዊንዶውስ ደህንነት

የመጨረሻዎቹ ሁለት ማመልከቻዎች ተያይዘዋል ምክንያቱም... በመደበኛ LTSC ጥቅል ውስጥ ምንም ሌላ ሁለንተናዊ አፕሊኬሽኖች የሉም። የዴስክቶፕ ሰቆች ከአቋራጮች ጋር እንደሚገናኙ ልብ ይበሉ። አሁን, ንጣፎችን በቀጥታ በጀምር ምናሌ ውስጥ በማንቀሳቀስ, የተሰኩ ንጣፎችን በሁለት ቡድን እከፍላለሁ. አዲስ የሰድር ቡድን ለመፍጠር ሰድርን ከሌሎቹ ንጣፎች በጣም ከፍ ያለ ወይም ያነሰ ይጎትቱ፣ ይህም ሊታወቅ የሚችል አካፋይን ያጎላል። ቡድኖቹን እንደፍላጎትዎ መሰየም ይችላሉ ፣ ይህንን ለማድረግ የመዳፊት ጠቋሚውን ከቡድኑ በላይ ያድርጉት ፣ እና “የቡድኑን ስም ያውጡ” የሚለው ጽሑፍ ሲመጣ የግራውን መዳፊት ጠቅ ያድርጉ ። የመጀመሪያውን ቡድን "ቅንጅቶች" እደውላለሁ, "ቅንጅቶች" እና "Windows ደህንነት" ሰቆችን ያካትታል. ሁለተኛውን ቡድን "የቢሮ አፕሊኬሽኖች" እደውላለሁ, ይህም ሁሉንም ሌሎች ሰቆች ያካትታል. በነገራችን ላይ በቡድን ስም በላይኛው ቀኝ በኩል የሚገኙትን ሁለት ጭረቶች በመጠቀም ሁሉንም የንጣፎችን ቡድኖች በመጎተት ማንቀሳቀስ ይችላሉ.

ምክንያቱም በ "ዊንዶውስ ደህንነት" ንጣፍ ላይ ስሙ ሙሉ በሙሉ አይጣጣምም, መጠኑን ወደ "ሰፊ" እቀይራለሁ. የሰድርን መጠን ለመቀየር በሰድር ላይ በቀኝ ጠቅ ያድርጉ እና “መጠንን ቀይር” ን ይምረጡ።

ከተዋቀረ በኋላ አሁን ያለውን ሁኔታ ወደ ውጭ እንልካለን እና ትዕዛዙን በ PowerShell አካባቢ - "ወደ ውጪ ላክ-StartLayout - ዱካ C: SysprepStartLayout.xml".

በመቀጠል, ቀላሉ መንገድ የቅንብሮች ፋይልን እራስዎ መፍጠር አይደለም, ግን አንድ ምሳሌ ፋይል ከዚህ ይውሰዱ መቼቶች - "ቅዳ" የሚለውን ቁልፍ ጠቅ ያድርጉ, ይዘቱን ወደ ማስታወሻ ደብተር ይለጥፉ እና እንደ "MultiAppKiosk.xml" ያስቀምጡ. አሁን ቅንብሮቹን ወደ እራሳችን እንለውጣለን. የተያያዙ ሰቆችን መቼቶች ለመለወጥ፣ ሙሉውን "StartLayoutCollection" ብሎክ ከ"StartLayout.xml" ወደ "MultiAppKiosk.xml" ይቅዱ። በተፈቀዱት ላይ መተግበሪያዎችን ለመጨመር ሁለንተናዊ የመተግበሪያ መለያዎችን በ “AllowedApps” ክፍል ውስጥ ማስገባት እና በተመሳሳይ ብሎክ ወደ ክላሲክ ትግበራዎች ሙሉ ዱካ ማከል ያስፈልግዎታል ፣ ይህም በአቋራጮች ባህሪዎች ውስጥ በተገለፀው tiles ያመለክታሉ. ወደ አቋራጭ መንገድ በፍጥነት ለመድረስ፣ በተሰካው ንጣፍ ላይ በቀኝ ጠቅ ያድርጉ እና ወደ ተጨማሪ > ወደ ፋይል ቦታ ይሂዱ። የ"AppUserModelId" ፓራሜትር ሁለንተናዊ መተግበሪያ መታወቂያውን ለመጥቀስ ጥቅም ላይ እንደሚውል እና "ዴስክቶፕ አፕፓት" ፓራሜትር ወደ ዴስክቶፕ አፕሊኬሽኑ የሚወስደውን ሙሉ መንገድ ለመለየት ጥቅም ላይ እንደሚውል ልብ ይበሉ። እና አንድ ተጨማሪ ትንሽ ልዩነት ፣ IE ን በ x64 ስርዓት ለመጠቀም ካቀዱ ፣ በተፈቀዱ ትግበራዎች ዝርዝር ውስጥ “ፕሮግራም ፋይሎችInternet Exploreriexplore.exe” እና “ፕሮግራም ፋይሎች (x86) በይነመረብ አሳሽ ኤክስፕሎር ሁለት መንገዶችን መግለጽ አለብዎት። exe"

የአቃፊዎችን መዳረሻ አልሰጥም፣ ስለዚህ "FileExplorerNamespaceRestrictions" የሚለውን ክፍል እየሰረዝኩ ነው።

የተግባር አሞሌውን ማሳየት አያስቸግረኝም, ስለዚህ ሁሉንም ነገር በ "የተግባር አሞሌ" ክፍል ውስጥ እተወዋለሁ.

በምሳሌው ውስጥ ሁለት መገለጫዎች ተገልጸዋል, ግን አንድ መገለጫ ብቻ ነው የሚኖረኝ, ስለዚህ ሁለተኛው መገለጫ ያለው ክፍል ሊሰረዝ ይችላል. ከማራገፍዎ በፊት መተግበሪያን ከክርክር ጋር በራስ ሰር ለመጀመር ምሳሌ ትኩረት ይስጡ።

በ"Configs" ክፍል ውስጥ፣ መለያዎች ከመገለጫ ጋር የተገናኙ ናቸው፣ እባክዎ ብዙ መለያዎች ከአንድ መገለጫ ጋር ሊገናኙ እንደሚችሉ ልብ ይበሉ። ግን ምክንያቱም የምፈልገው ለአንድ መለያ ብቻ ነው፣ ከዚያ ከመጀመሪያው በስተቀር ሁሉንም ማሰሪያዎች እሰርዛለሁ - “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>

የኤክስኤምኤል ውቅር ፋይሎችዎን ሲሰሩ እያንዳንዱ መገለጫ ልዩ መታወቂያ ሊኖረው እንደሚገባ እና በአንድ ኤክስኤምኤል ፋይል ውስጥ ብቻ ሳይሆን በአንድ ስርዓተ ክወና ውስጥ መሆን እንዳለበት አይርሱ። እነዚያ። በሐሳብ ደረጃ፣ ግራ መጋባትን ለማስወገድ፣ በእያንዳንዱ ጊዜ አዲስ መለያ መፍጠር ይችላሉ፣ ይህ በPowerShell አካባቢ የ"[መመሪያ]::NewGuid()" ትዕዛዝን በመጠቀም ሊከናወን ይችላል። እና ፋይሉን በ "UTF-8" ኢንኮዲንግ ውስጥ ማስቀመጥዎን እርግጠኛ ይሁኑ, ፋይሉ በ "ANSI" ኢንኮዲንግ ውስጥ ከተቀመጠ, የዝግጅት ፓኬጁን ሲገነቡ የኤክስኤምኤል ፋይል ሲሪሊክን ከያዘ ስህተት ይደርስዎታል.

ደረጃ 6 - መልቲኪዮስክ ቅንብሮችን መተግበር

በማዋቀሪያው ፋይል ውስጥ የተገለጹትን መቼቶች ተግባራዊ ለማድረግ ሁለት መንገዶችን እንመልከት. የመጀመሪያው በ ICD ውስጥ መፈጠር ያለበት በፕሮቪዥን ፓኬጅ በኩል ነው. ለአንዳንዶቹ ምናልባት ይህ ዘዴ የበለጠ የታወቀ ይሆናል. ሁለተኛው "ኤምዲኤም ብሪጅ WMI አቅራቢ" እየተጠቀመ ነው, ይህ ዘዴ ለእኔ የበለጠ አመቺ መስሎ ታየኝ.

ዘዴ # 1

ICD የሌለው ማነው? ADK አውርድ እና ጫን። ADK ን መጫን በጣም ቀላል ነው, የክፍሎች ስብስብ እንደ ነባሪ ሊተው ይችላል.

ICD ን ያስጀምሩ, "የላቀ ዝግጅት" ንጣፍ ላይ ጠቅ ያድርጉ, የፕሮጀክቱን ስም እና አቃፊ ይግለጹ እና "ቀጣይ" ን ጠቅ ያድርጉ. በሚቀጥለው መስኮት "ሁሉም የዊንዶውስ ዴስክቶፕ እትሞች" የሚለውን ይምረጡ እና "ቀጣይ" ን ጠቅ ያድርጉ. የዝግጅት ፓኬጁን ማስመጣት መዝለል ይችላሉ ፣ “ጨርስ” ን ጠቅ ያድርጉ።

የ"Runtime Settings" ተቆልቋይ ሜኑ ዘርጋ እና በመቀጠል "AssignedAccess" ንዑስ ሜኑ ዘርጋ እና "MultiAppAssignedAccessSettings" የሚለውን ምረጥ። በ ICD መስኮት መካከለኛ ክፍል አናት ላይ "አስስ" የሚለውን ቁልፍ ጠቅ ያድርጉ እና የኤክስኤምኤል ፋይሉን ከቅንብሮች ጋር ያመልክቱ. እንደ አጋጣሚ ሆኖ, "Ctrl + s" ን በመጫን ፕሮጀክቱን ማስቀመጥ ይችላሉ. በ ICD የላይኛው ግራ ክፍል ላይ "ወደ ውጪ ላክ" የሚለውን ምረጥ እና ከተቆልቋይ ምናሌ ውስጥ "Provisioning Package" የሚለውን ምረጥ. እንደ ባለቤት “የአይቲ አስተዳዳሪ”ን ምረጥ፤ ሌሎች ጥያቄዎችን ሁሉ “ቀጣይ”ን በመጫን መዝለል ይቻላል በመጨረሻ “ግንባ” እና “ጨርስ” የሚለውን ተጫን።

በተጫነው ስርዓት ውስጥ ተጠቃሚን መፍጠርን አይርሱ "ተጠቃሚ" , ወደ "አስተዳዳሪዎች" ቡድን መጨመር አይቻልም, አለበለዚያ መልቲኪዮስክ አይሰራም. በኮምፒዩተር አስተዳደር ውስጥ ተጠቃሚን የፈጠርኩት መቼም የማያልቅ የይለፍ ቃል ያለው ነው።

አሁን የዝግጅት ፓኬጁን ቀደም ሲል በተጫነው ስርዓት ላይ እናሰራለን. የዝግጅት ፓኬጁን ከተጠቀሙ በኋላ የጀምር ሜኑ እና የአስተዳዳሪው ምናሌ ይቀየራል። በግራ ጅምር ዓምድ ውስጥ አዝራሮቹ መጥፋት አለባቸው: "ሰነዶች", "ምስል", "አማራጮች". የመነሻ ምናሌው ካልተቀየረ, የሆነ ችግር ተፈጥሯል. የተጫነ ፓኬጅ Settings > Accounts > Work or school Account access > የአቅርቦት ፓኬጅ መስኮት በመጨመር ወይም በማስወገድ ማስወገድ ይቻላል።

የመነሻ ምናሌው ከተቀየረ ፣ ከዚያ ቅንብሮቹ በሲስተሙ ላይ ይተገበራሉ ፣ መልቲኪዮስክ እንደተዋቀረለት ተጠቃሚ ይግቡ እና ውጤቱን ይመልከቱ።

ዘዴ # 2

"MDM Bridge WMI Provider"ን በመጠቀም ቅንብሮችን በመተግበር ላይ እዚህ ተብራርቷል. የዚህ ዘዴ ምቾት የአጠቃቀም ተለዋዋጭነት እና የዝግጅት እሽግ ለመፍጠር የሚያስፈልጉትን ብዙ የእጅ ሥራዎችን የማስወገድ ችሎታ ነው። እዚህ ሁሉም ሰው ለእነሱ ምቹ የሆነ ውሳኔ ለራሱ ማድረግ ይችላል. ለራሴ ሁለት ስክሪፕቶችን ሠራሁ።

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” አቃፊ ይፍጠሩ እና መልቲኪዮስክን ወደ እሱ ለማዋቀር የኤክስኤምኤል ፋይሎችን ይቅዱ። ልክ እንደ መጀመሪያው ዘዴ ተመሳሳይ ፋይል እጠቀማለሁ.

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>

ስለ ስክሪፕቱ ባህሪዎች ትንሽ። ስክሪፕቱ የኤክስኤምኤል ፋይሎችን በ “UTF8” ኢንኮዲንግ ለመጠቀም የተነደፈ ነው፤ “ANSI” ኢንኮዲንግ ለመጠቀም ከፈለጉ “ኢንኮዲንግ UTF8” የሚለውን ከፋይል ንባብ አማራጭ ያስወግዱት። ቁምፊዎችን ሳይቀይሩ የኤክስኤምኤል ፋይሎችን በ “ኤክስኤምኤል” አቃፊ ውስጥ ማስቀመጥ አለብዎት ፣ ስክሪፕቱ ራሱ ልዩ ቁምፊዎችን በተገቢው ስያሜ ይተካል። ተጠቃሚዎችን ከመገለጫ ጋር በማገናኘት GUIDs ውስጥ ግራ እንዳትገባ በቀላሉ የተጠቃሚውን ቁጥር ወይም ስም በመጠምጠዣ ቅንፎች ውስጥ ማመልከት ይችላሉ፤ ሁሉም በጥምጥም ቅንፎች ውስጥ ያሉ ይዘቶች በ GUIDs ይተካሉ።

ስክሪፕቱን መጠቀም በጣም ቀላል ነው, ብቻ ያሂዱት እና አስፈላጊውን ንጥል ይምረጡ. የአሁኑን ውቅር ወደ አዲስ ለመቀየር የአሁኑን መሰረዝ አስፈላጊ አይደለም፤ ይገለበጣል። በማዋቀሪያው ፋይል ውስጥ የተገለጹ ተጠቃሚዎችን መፍጠርዎን አይርሱ።

የአሁኑን መልቲኪዮስክ ውቅር በተተገበረበት ተመሳሳይ ክፍለ ጊዜ ውስጥ ሲመለከቱ፣ ከልዩ ቁምፊዎች ይልቅ፣ የተተኪ ቁምፊዎች ጥምረት ይታያሉ። ክፍለ-ጊዜውን ከቀየሩ በኋላ (ስክሪፕቱን እንደገና ከጀመሩ በኋላ) ሁሉም ልዩ ቁምፊዎች በመጀመሪያው ቅፅ ውስጥ ይታያሉ።

ደረጃ 7 - ስርዓቱን ማተም

መልቲኪዮስክ ይሰራል፣ ጥሩ፣ ያ ብቻ ነው፣ የሚመስለው...

ሁሉም ነገር በእቅዱ መሰረት የሚሄድ ከሆነ, አንድ ነገር እያስተዋሉ አይደለም.

አሁንም ስርዓቱን ከኦዲት ሁነታ ወደ የእንኳን ደህና መጣችሁ ሁነታ መቀየር እንዳለብን አይርሱ. ደህና, ለዚህ ዝግጁ ነን, "Sysprep.bat" ን እንጀምራለን, ነጥብ 2 ን ይምረጡ, ስርዓቱ ተዘግቷል. መሣሪያውን እናበራለን, የስርዓት ቦት ጫማዎች, መልቲኪዮስክ ወደተዘጋጀበት የተጠቃሚ መለያ እንገባለን, ግን መግባት አንችልም. ከ "እንኳን ደህና መጣችሁ" መልእክት በኋላ "ውጣ" የሚለው መልእክት ይታያል.

መጀመሪያ ላይ የችግሩን መፍትሄ ብቻ ለመግለጽ ፈልጌ ነበር, በኋላ ግን ችግሩን ለመለየት እና ቀላሉን መፍትሄ ለማግኘት እርምጃዎችን ለመግለጽ ወሰንኩ ምክንያቱም ... በእርግጠኝነት ብዙ አንባቢዎች ግልጽ ባልሆኑ ጥርጣሬዎች ይሰቃያሉ - "እንዲህ ቢሆንስ ...". እኔ እንደማስበው የተለያዩ ሙከራዎችን መግለጽ ሌላ መፍትሄ ለማግኘት ከፈለጉ ብዙ ጊዜ ይቆጥብልዎታል። መረጃውን በተቻለ መጠን ትክክለኛ ለማድረግ እና ምንም ስህተቶች አለመኖራቸውን እንደገና ለማረጋገጥ ሙከራዎቹን በ "የተሰራ እና የተቀዳ" ቅርጸት እገልጻለሁ. እነዚያ። የተገለጹትን ሙከራዎች እንደገና አደርጋለሁ.

ሙከራዎች

ምን አደረግን? በስርዓቱ ውስጥ ሁለት መለያዎች አሉ-

"አስተዳዳሪ" - በ "አስተዳዳሪዎች" ቡድን ውስጥ
"ተጠቃሚ" - በ "ተጠቃሚዎች" ቡድን ውስጥ
በኦዲት ሁነታ, መልቲኪዮስክ ሰርቷል, ነገር ግን ሲዘጋ, አልሰራም.

ሙከራ 1

የተጫነውን የዝግጅት ጥቅል እንሰርዛለን ፣ በ “ኮምፒዩተር አስተዳደር” ቅጽበታዊ ገጽ እይታ ውስጥ ተጠቃሚውን “ተጠቃሚ” እንሰርዛለን እና “ተጠቃሚ” የሚል ስም ያለው አዲስ ተጠቃሚ እንፈጥራለን ፣ የዝግጅት ፓኬጁን ይተግብሩ ፣ ወደ “ተጠቃሚ” መለያ ይሂዱ - ያደርጋል ሥራ አይደለም. "አስተዳዳሪ" በሚለው ስም እንሄዳለን, ተጠቃሚውን "ተጠቃሚ" ከ "ተጠቃሚዎች" ቡድን ውስጥ እናስወግደዋለን, ወደ "አስተዳዳሪዎች" ቡድን እንጨምራለን, "ተጠቃሚ" በሚለው ስም ስር እንሄዳለን - አይሰራም. “አስተዳዳሪ” በሚለው ስም ገብተናል ፣ የዝግጅት ፓኬጁን ከብዙ ኪዮስክ ጋር ሰርዘናል ፣ “ተጠቃሚ” በሚለው ስም ገብተናል - ለመግባት ችለናል ፣ ግን በእርግጥ የመልቲኪዮስክ ሁኔታ አይሰራም ምክንያቱም የአቅርቦት ፓኬጅ ተወግዷል።

ሙከራ 2

የስርዓቱን ምስል እንሰቅላለን - በኦዲት ሁነታ ላይ Russified.

ስርዓተ ክወናው ተጭኗል, "Win +r" ን ይጫኑ, ምክንያቱም የእኛ የሲኤስፕሬፕ መስኮት በራስ-ሰር ተዘግቷል, የ "sysprep" ትዕዛዝን ያሂዱ እና በሚከፈተው መስኮት ውስጥ "sysprep" ያሂዱ. በመስኮቱ ውስጥ የ Sysprep ቅንብሮች: "ወደ ስርዓቱ የእንኳን ደህና መጡ መስኮት ይሂዱ (OOBE)", "ለአጠቃቀም በመዘጋጀት ላይ", "ዳግም አስነሳ". "እሺ" ን ጠቅ ያድርጉ እና የስርዓተ ክወና ሰላምታ ይጠብቁ. ስርዓቱ ለመጀመሪያ ጊዜ ሲነሳ ለጥያቄዎቹ መልስ እንሰጣለን: "በተመረጠው ቋንቋ ይቀጥሉ?" - "ራሺያኛ"; ክልል - ሩሲያ; የቁልፍ ሰሌዳ አቀማመጥ - ሩሲያኛ; ሁለተኛ የቁልፍ ሰሌዳ አቀማመጥ ያክሉ - መዝለል; "ከአውታረ መረቡ ጋር እናገናኝህ" - "ለአሁን ዝለል"; ከበይነመረቡ ጋር ይገናኙ - የለም; የፍቃድ ስምምነት - መቀበል; "ይህን ኮምፒውተር ማን ይጠቀማል" - "ሙከራ"; የይለፍ ቃል መፍጠር - መስኩን ባዶ መተው; በተለያዩ መሳሪያዎች ላይ ምቹ ክዋኔ - የለም; የግላዊነት ቅንብሮች - ተቀበል። የስርዓተ ክወናው ተጭኗል, በ "ኮምፒዩተር አስተዳደር" ስናፕ ውስጥ "ተጠቃሚ" የሚል ስም ያለው ተጠቃሚ እንፈጥራለን, የዝግጅት ፓኬጁን ይጨምሩ. ውጤቱም አይሰራም.

ሙከራ 3

የስርዓቱን ምስል እንሰቅላለን - በኦዲት ሁነታ ላይ Russified.

ስርዓተ ክወናው ተጭኗል ፣ ስርዓቱን ከበይነመረቡ ጋር ያገናኙ ፣ “gpedit.msc” የሚለውን ትዕዛዝ ያሂዱ እና በ “Windows Update” ክፍል ውስጥ “በአውቶማቲክ ዝመናዎች የተመከሩ ዝመናዎችን አንቃ” የሚለውን አማራጭ ያንቁ ፣ እንደዚያ ከሆነ እንደገና ያስነሱ። በዝማኔ ማእከል ውስጥ "ዝማኔዎችን ፈትሽ" ን ጠቅ ያድርጉ እና ሁሉም ዝመናዎች እስኪጫኑ ድረስ እንደገና ያስነሱ። ስርዓቱን ከበይነመረቡ ያላቅቁ። "sysprep" በግራፊክ ሁነታ እንጀምራለን እና የ "sysprep" መገልገያውን ከማስኬድ የዝግጅቱን እሽግ ለመጨመር በቀድሞው ደረጃ ላይ የተገለጹትን ሁሉንም እርምጃዎች መድገም. ውጤቱም አይሰራም.

ሙከራ 4

የስርዓቱን ምስል እንሰቅላለን - እንግሊዝኛ በኦዲት ሁነታ.

"sysprep" በግራፊክ ሁነታ እንጀምራለን, በሙከራ ጊዜ ስርዓተ ክወናውን በተመሳሳይ መመዘኛዎች እንዘጋዋለን 2. ሲስተሙ መጀመሪያ ሲነሳ, እንደ ሙከራ 2 ተመሳሳይ መለኪያዎችን እንመርጣለን, ከክልላዊ እና የቋንቋ መለኪያዎች በስተቀር ምክንያቱም የሩስያ ቋንቋ የለም. በተመሳሳይ መንገድ ተጠቃሚን ይፍጠሩ "ተጠቃሚ" እና የአቅርቦት ፓኬጅ ያክሉ. ውጤቱም ይሠራል. እነዚያ። ችግሩ ከአካባቢያዊነት ጋር የተያያዘ ነው.

ሙከራ 5

የስርዓቱን ምስል እንሰቅላለን - በኦዲት ሁነታ ላይ Russified.

በ "ኮምፒዩተር ማኔጅመንት" ቅንጣቢ ውስጥ ተጠቃሚን "ተጠቃሚ" ይፍጠሩ, የዝግጅት ፓኬጅ ያክሉ, ወደ "ተጠቃሚ" መለያ ይሂዱ, ባለብዙ ኪዮስክ ይሰራል.

ከመለያዎ ይውጡ እና በ "አስተዳዳሪ" መለያ ስር ይግቡ. PowerShellን ከአስተዳዳሪ መብቶች ጋር እናስጀምረዋለን ፣ “Dism/online/Get-Intl” የሚለውን ትዕዛዝ እንፈጽማለን እና “ነባሪ የተጠቃሚ በይነገጽ ቋንቋ: en-US” የሚለውን ይመልከቱ።

ከ ፍላሽ አንፃፊ ወደ ዊንፒኢ እንነሳለን, የተዘረጋው ስርዓተ ክወና በእኔ E ድራይቭ ላይ ነው "Dis / image: E: / Set-UILang: ru-ru" የሚለውን ትዕዛዝ እንፈጽማለን. ውጤቱን እንመለከታለን, "Dism /image:E: /Get-Intl" ን ያስፈጽሙ እና "ነባሪ የስርዓት UI ቋንቋ: ru-RU" የሚለውን ይመልከቱ.

ወደ ስርዓቱ እንጀምራለን, ወደ "ተጠቃሚ" መለያ እንገባለን, መልቲኪዮስክ አይሰራም.

የችግሩን መንስኤ-እና-ውጤት ግንኙነት በግልፅ ለመመስረት፣ ባለብዙ ኪዮስክ የሚሰራ እና የማይሰራ ለማድረግ እንደገና እንሞክር።

ከፍላሽ አንፃፊ ወደ ዊንፒኢ እንነሳለን፣የተዘረጋው OS በእኔ ኢ ድራይቭ ላይ ነው።"Dis/image:E:/Set-UILang:en-us" የሚለውን ትዕዛዝ እንፈጽማለን። ውጤቱን እንመለከታለን, "Dism /image:E: /Get-Intl" ን ያስፈጽሙ እና "ነባሪ የስርዓት UI ቋንቋ: en-US" የሚለውን ይመልከቱ.

ወደ ስርዓቱ እንጀምራለን, ወደ "ተጠቃሚ" መለያ እንገባለን, መልቲኪዮስክ ይሰራል.

ከ ፍላሽ አንፃፊ ወደ ዊንፒኢ እንነሳለን, የተዘረጋው ስርዓተ ክወና በእኔ E ድራይቭ ላይ ነው "Dis / image: E: / Set-UILang: ru-ru" የሚለውን ትዕዛዝ እንፈጽማለን. ውጤቱን እንመለከታለን, "Dism /image:E: /Get-Intl" ን ያስፈጽሙ እና "ነባሪ የስርዓት UI ቋንቋ: ru-RU" የሚለውን ይመልከቱ.

ወደ ስርዓቱ እንጀምራለን, ወደ "ተጠቃሚ" መለያ እንገባለን, መልቲኪዮስክ አይሰራም.

እነዚያ። በነባሪ የተጠቃሚ በይነገጽ ቋንቋ ላይ የኪዮስክ አፈጻጸም ግልጽ የሆነ ጥገኝነት ማየት ትችላለህ። ምናልባት የመልቲኪዮስክን አፈጻጸም የሚነኩ ሌሎች ምክንያቶች ሊኖሩ ይችላሉ?

ሙከራ 6

ለሙከራው ንጽሕና, ስርዓቱን እንደገና እንሞላለን. የስርዓቱን ምስል እንሰቅላለን - በኦዲት ሁነታ ላይ Russified.

በግራፊክ ሁነታ “sysprep”ን እናስጀምረዋለን፣ በሙከራ ጊዜ ስርዓተ ክወናውን በተመሳሳይ መመዘኛዎች እንዘጋዋለን 2. ስርዓተ ክወናው ሰላምታ እንዲሰጠን እና ለጥያቄዎቹ መልስ እስኪሰጥ ድረስ እንጠብቃለን፡ “በተመረጠው ቋንቋ ቀጥል?” - "እንግሊዘኛ (ዩናይትድ ስቴትስ)"; ክልል - ሩሲያ; የቁልፍ ሰሌዳ አቀማመጥ - ሩሲያኛ. በተጨማሪም፣ ሁሉም መለኪያዎች በሙከራ 2 ውስጥ ተመርጠዋል።

ነባሪ የተጠቃሚ በይነገጽ የቋንቋ ቅንብሮችን እንይ። "Dism /online /Get-Intl" የሚለውን ትዕዛዝ እንፈጽማለን እና "ነባሪ የስርዓት UI ቋንቋ: en-US" የሚለውን እንመለከታለን. በ "ኮምፒዩተር ማኔጅመንት" ቅንጣቢ ውስጥ ተጠቃሚን "ተጠቃሚ" ይፍጠሩ, የዝግጅት ፓኬጅ ያክሉ, ወደ "ተጠቃሚ" መለያ ይሂዱ, ባለብዙ ኪዮስክ ይሰራል.

ነባሪውን የተጠቃሚ በይነገጽ ቋንቋ በመቀየር ኪዮስክን ለመስበር እየሞከርን ነው። ወደ "ሙከራ" ተጠቃሚ ውስጥ እንገባለን, ስርዓቱ መጀመሪያ ሲነሳ የተፈጠረውን እና ስርዓቱ ወዲያውኑ ወደ "ተጠቃሚ" መለያ ውስጥ እንዳይገባ ለማድረግ አውቶማቲክ መግቢያን እናነቃለን. "netplwiz" ን ያስፈጽም, "ሙከራ" ተጠቃሚን ይምረጡ, "የተጠቃሚ ስም እና የይለፍ ቃል ጠይቅ" የሚለውን ምልክት ያንሱ እና ግቤቶችን ይተግብሩ.

ከ ፍላሽ አንፃፊ ወደ ዊንፒኢ አስነሳ። "Dim /image:E: /Set-UILang:ru-ru" የሚለውን ትዕዛዙን ያስፈጽም. ውጤቱን እንመለከታለን, "Dism /image:E: /Get-Intl" ን ያስፈጽሙ እና "ነባሪ የስርዓት UI ቋንቋ: ru-RU" የሚለውን ይመልከቱ.

ወደ ስርዓቱ እንነሳለን, ወደ "ተጠቃሚ" መለያ ለመግባት እንሞክራለን, መልቲኪዮስክ ይሰራል. እነዚያ። ሊሰበር አይችልም. በዚህ መንገድ እንዲሰራ ማድረግ ይቻላል?

ሙከራ 7

የስርዓቱን ምስል እንሰቅላለን - በኦዲት ሁነታ ላይ Russified.

“Sysprep.bat” ን እንጀምራለን ፣ ነጥብ 2 ን እንመርጣለን ። ወደ ስርዓቱ እንነሳለን ፣ ተጠቃሚውን “ተጠቃሚ” በ “ኮምፒዩተር አስተዳደር” ስናፕ ውስጥ እንፈጥራለን ፣ የዝግጅት ፓኬጁን ይጨምሩ ፣ ወደ “ተጠቃሚ” መለያ ይሂዱ ፣ ባለብዙ- ኪዮስክ አይሰራም.

ከ ፍላሽ አንፃፊ ወደ ዊንፒኢ ቡት. "Dim /image:E:/Set-UILang:en-us" የሚለውን ትዕዛዙን ያስፈጽሙ። ውጤቱን እንመለከታለን, "Dism /image:E: /Get-Intl" ን ያስፈጽሙ እና "ነባሪ የስርዓት UI ቋንቋ: en-US" የሚለውን ይመልከቱ.

ወደ ስርዓቱ እንነሳለን, ወደ "ተጠቃሚ" መለያ ለመግባት እንሞክራለን, መልቲኪዮስክ አይሰራም.

ነባሪውን የተጠቃሚ በይነገጽ ቋንቋ መቼት በመቀየር የብዙኪዮስክ አፈጻጸም ላይ ተጽዕኖ ሊያሳርፉ የሚችሉት ስርዓቱ በኦዲት ሁነታ ላይ ሲሆን ወይም ስርዓቱን ካዘጋ በኋላ በመጀመሪያ ቡት ላይ ብቻ ነው። ይህ ማለት ስርዓቱን በምላሽ ፋይል በእንግሊዘኛ ማተም ያስፈልግዎታል እና ከዚያ የስርዓት ቅንብሮችን ይለውጡ በይነገጹ ሩሲያኛ ነው። በጣም ጥሩ መፍትሔ አይደለም. ምናልባት ችግሩ የቋንቋ ጥቅል በመጫን ወይም ተጨማሪ የቋንቋ ጥቅሎችን በመጫን ሊፈታ ይችላል?

ሙከራ 8

የስርዓቱን ምስል እንሰቅላለን - እንግሊዝኛ በኦዲት ሁነታ.

ከበይነመረቡ ጋር እንገናኛለን ፣ በስርዓት መለኪያዎች ውስጥ ወደ “ቋንቋ” ክፍል ይሂዱ ፣ “ቋንቋ አክል” ን ይምረጡ ፣ “ሩሲያኛ” የሚለውን ቋንቋ ይምረጡ ፣ “ቀጣይ” ን ጠቅ ያድርጉ ፣ የመጫኛ መለኪያዎችን እንደ ነባሪ ይተዉ ፣ “ጫን” ን ጠቅ ያድርጉ ፣ ከጫኑ በኋላ የቋንቋ ጥቅል ስርዓቱን እንደገና እናስነሳዋለን፣ አሁን በ Russified። ስርዓቱን ከበይነመረቡ ያላቅቁት, "Sysprep.bat" ን ያሂዱ, ነጥብ 2 ን ይምረጡ.

ስርዓቱን ከጫኑ በኋላ በ "ኮምፒተር ማኔጅመንት" ስናፕ ውስጥ "ተጠቃሚ" ተጠቃሚን ይፍጠሩ, የዝግጅት ፓኬጁን ይጨምሩ, ወደ "ተጠቃሚ" መለያ ይሂዱ, ባለብዙ ኪዮስክ አይሰራም.

ሙከራ 9

ከመስመር ውጭ ሁነታ ከመጫንዎ በፊት ስርዓቱን Russify ለማድረግ እንሞክር. በተመሳሳይ ጊዜ ስለ ስርጭቱ አካባቢያዊነት አጭር ትምህርታዊ ፕሮግራም ይኖራል.

ንጹህ ኦሪጅናል ስርጭት ያለው ፍላሽ አንፃፊ እወስዳለሁ - X21-96381። ድራይቭ "ኢ" ይሆናል. ምስሎችን ለመጫን አቃፊዎችን እፈጥራለሁ፡ "c:MountInstall", "c:MountWinre", "c:MountBoot" የትርጉም ጥቅሎችን እወስዳለሁ - X21-87814። እና በ "c:Mount" አቃፊ ውስጥ ጥቅሎቹን ከእሱ እገለባለሁ: "ማይክሮሶፍት-ዊንዶውስ-ደንበኛ-ቋንቋ-ጥቅል_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" ይጫኑ። በ "ኮምፒተር ማኔጅመንት" ቅንጭብጭብ ውስጥ ተጠቃሚን "ተጠቃሚ" ይፍጠሩ, የዝግጅት ፓኬጅ ይጨምሩ, ወደ "ተጠቃሚ" መለያ ይሂዱ, ባለብዙ ኪዮስክ አይሰራም.

ከ ፍላሽ አንፃፊ ወደ ዊንፒኢ አስነሳ። "Dim /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" ይጫኑ። በ "የኮምፒዩተር አስተዳደር" ቅጽበታዊ ገጽ እይታ ውስጥ "ተጠቃሚ" ተጠቃሚን ይፍጠሩ, የአቅርቦት ፓኬጁን ይጨምሩ እና ወደ "ተጠቃሚ" መለያ ይግቡ. ለረጅም ጊዜ የተንጠለጠለ ጥቁር ስክሪን አገኘሁ, ስለዚህ ስርዓቱን ሞቅኩት.

የዝግጅት ፓኬጁን እንሰርዛለን, እንደ "ተጠቃሚ" ግባ, ስርዓቱን እንደገና አስነሳን, የዝግጅት ፓኬጁን እንጨምራለን, መልቲኪዮስክ አይሰራም.

ከ ፍላሽ አንፃፊ ወደ ዊንፒኢ አስነሳ። "Dim /image:E:/Set-UILang:en-us" የሚለውን ትዕዛዙን ያስፈጽሙ።

ወደ ስርዓቱ እንነሳለን, ወደ "ተጠቃሚ" መለያ ለመግባት እንሞክራለን, መልቲኪዮስክ ይሰራል.

የማጣራት ስራ

መደበኛ ጀግኖች። ሁልጊዜ አቅጣጫቸውን ይቀያይራሉ!

የትርጉም እሽጎችን የመትከል የተለያዩ ዘዴዎች ችግሩን አልፈቱም, ይህም ማለት ከማተም በኋላ በመጀመሪያው ቡት ላይ "en-us" የሚለውን ቋንቋ መጫን አለብዎት, እና ከመጀመሪያው ቡት በኋላ የቋንቋ ቅንብሮችን ይቀይሩ.

የስርዓቱን ምስል እንሰቅላለን - በኦዲት ሁነታ ላይ Russified.

በ "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" መተግበር የተሻለ ነው. ይህንን ለማድረግ በቀላሉ የማዋቀሪያ ፋይልን የሚፈጥር ትዕዛዝ ማስኬድ ያስፈልግዎታል. በ "cmd" አካባቢ ውስጥ "echo" የሚለውን ትዕዛዝ በመጠቀም የማዋቀሪያ ፋይል እፈጥራለሁ ብዬ አስባለሁ, ነገር ግን የማዕዘን ቅንፎችን በሰርክፍሌክስ ማምለጥ ያስፈልገዋል. እነዚያ። የማዋቀሪያ ፋይል ለመፍጠር የሚከተለው ትዕዛዝ ተገኝቷል.

echo ^<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend"^>^<gs:UserList^>^<gs:User UserID="Current" CopySettingsToSystemAcct="true"/^>^</gs:UserList^>^</gs:GlobalizationServices^>>Config.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>

እንፈትሽ...

የስርዓቱን ምስል እንሰቅላለን - በኦዲት ሁነታ ላይ Russified.

የ Unttend.xml ፋይልን ወደ አዲስ እንለውጣለን, "Sysprep.bat" ን አስኪድነው, ነጥብ 2 ን ምረጥ እና ያገኘነውን ተመልከት. መጀመሪያ ሲነሳ የእንኳን ደህና መጣችሁ ስክሪን በእንግሊዝኛ ነው እና ስርዓቱ እንደገና ይነሳል። የእንኳን ደህና መጣችሁ ማያ ገጽ በሩሲያኛ ነው ፣ መልቲኪዮስክ ይሰራል።

ዊንዶውስ 10 አይኦ ኢንተርፕራይዝን ስለማዋቀር እና ስለ ፍቃድ ስለመስጠት ማንኛውም አይነት ጥያቄ ካለዎት እባክዎን ያነጋግሩ፡- [ኢሜል የተጠበቀ] ወይም ወደ ድር ጣቢያው quarta-embedded.ru.
ለአንዳንድ ጥያቄዎች መልስ ማግኘት ይችላሉ። የኛ ዊኪ ወይም በእኛ ላይ የዩቲዩብ ቻናል

የጽሁፉ ደራሲ: ቭላድሚር ቦሪሰንኮቭ, የኳታር ቴክኖሎጂዎች የቴክኒክ ባለሙያ.

ምንጭ: hab.com