Windows 10 IoT Enterprise 2019 - حالت چند کیوسک

معرفی

Windows 10 IoT Enterprise 2019 نام بازاریابی نسخه بعدی ویندوز 10 است. انتشار این نسخه در سپتامبر 2018 اعلام شد، به ترتیب دارای نسخه 1809، 18 سال، 09 ماه است. مقالات زیادی در مورد نسخه جدید ویندوز 10 1809 نوشته شده است ، اما بیشتر آنها به "کمان ها" ، "زیبایی ها" و عملکردهای مختلفی اختصاص دارد که در خانه مورد تقاضا هستند.
این مقاله فقط به بحث در مورد عملکردی می‌پردازد که ممکن است در میان سازندگان دستگاه‌های با هدف ثابت مورد تقاضا باشد. یعنی در مورد قابلیت های جدید حالت "Kiosk". موضوع تغییر نام طرح های خدمات برای نسخه های ویندوز بخش سازمانی نیز مورد بررسی قرار خواهد گرفت.

طرح خدمات قدیمی با نام جدید

اجازه دهید با یک توضیح کوتاه شروع کنم: در بخش شرکتی نسخه های ویندوز دو طرح خدماتی وجود دارد که طبق آنها ویندوز به روز رسانی ها را دریافت می کند. دیاگرام های سرویس دارای یک نام نامه هستند. در حال حاضر شعب خدمات LTSC و SAC نامیده می شوند.

LTSC مخفف کانال خدمات طولانی مدت (با نگهداری طولانی مدت). قبلاً چنین کانالی LTSB - Long Term Servicing Branch نامیده می شد. مایکروسافت به سادگی نام کانال سرویس را تغییر داد و خود سرویس همان سرویس باقی ماند.

مایکروسافت همچنین نام شاخه خدمات CBB - Current Branch for Business را تغییر داد، اکنون این شاخه خدمات SAC نامیده می شود - کانال نیمه سالانه. باز هم فقط اسمش عوض شده

اما لازم به ذکر است که شعبه های سرویس LTSC و SAC از توزیع های مختلف ویندوز استفاده می کنند.

کمی در مورد حالت کیوسک جدید در SAC

همانطور که قبلاً گفتم، LTSC و SAC توزیع های متفاوتی دارند. LTSC برنامه های جهانی استاندارد یا فروشگاه برنامه ندارد، اما SAC دارد. بر این اساس، LTSC مرورگر Edge ندارد، اما SAC دارد. اگر هنگام راه‌اندازی کیوسک، مرورگر Edge را انتخاب کنید، اکنون دو حالت در دسترس است:

  1. به عنوان یک علامت دیجیتال یا نمایشگر تعاملی
  2. مانند یک مرورگر عمومی

من به تنظیم این حالت ها نمی پردازم، زیرا ... راه اندازی بسیار ساده است و در یک رابط گرافیکی انجام می شود. فقط یک کاربری بسازید که عضو گروه Administrators نیست، با استفاده از EDGE حالت کیوسک را برای او فعال کنید و ببینید این حالت ها چگونه کار می کنند.

کیوسک با کاربردهای فراوان

برخی از مردم فکر می کنند که استفاده از مجوز Windows 10 IoT Enterprise به معنای عملکرد تنها یک برنامه بر روی دستگاه است، در واقع اینطور نیست. دستگاه باید برای انجام یک کار تجاری واحد طراحی شده باشد و کاربر نباید به دسکتاپ دسترسی داشته باشد. حالا خود مایکروسافت این ابزار را برای استفاده از بسیاری از برنامه ها داده است. این حالت «کیوسک چند برنامه‌ای» نامیده می‌شود؛ از این پس، برای اختصار، آن را «مولتی کیوسک» می‌نامم. در این مقاله به راه اندازی این حالت با استفاده از بسته نرم افزاری و برخی از ویژگی های این حالت می پردازیم.

کمی در مورد حالت Multikiosk

هنگامی که به حساب کاربری وارد می شوید که حالت چند کیوسک برای آن پیکربندی شده است، سیستم در حالت تبلت کار می کند. منوی شروع به تمام صفحه گسترش می یابد و کاشی های برنامه را نمایش می دهد.

لیست تنظیمات اولیه و قابلیت های حالت:

  1. راه اندازی برای چندین کاربر یا گروه
  2. به هر کاربر یا گروه می توان تنظیمات فردی اختصاص داد
  3. امکان استفاده از اپلیکیشن های جهانی و کلاسیک
  4. امکان راه اندازی خودکار یکی از برنامه ها هنگام ورود کاربر
  5. برنامه های در لیست سفید
  6. دسترسی به پوشه ها با استفاده از لیست سفید

توجه به نکته 5 قابل توجه است. به طور پیش فرض، تنها برنامه هایی که برای عملکرد سیستم ضروری هستند مجاز به کار خواهند بود؛ برنامه های دیگر باید به لیست برنامه های مجاز اضافه شوند. آن ها اکنون نیازی به پیکربندی AppLocker به طور جداگانه ندارید. به هر حال، برای جلوگیری از درگیری با تنظیمات AppLocker، در حالت چند کیوسک، همه قوانین AppLocker پیکربندی شده اعمال نمی شوند.

نقطه 6 گزینه خوبی را نشان می دهد، اما در حال حاضر فقط اجازه نوشتن به پوشه "Downloads" امکان پذیر است. حالت به شما امکان می دهد از برنامه های جهانی و کلاسیک استفاده کنید. تمام تنظیمات حالت در یک فایل XML مشخص شده است، که در آن می توانید تنظیمات یک کیوسک برنامه را نیز مشخص کنید.

حالا بیایید سعی کنیم همه چیز را تنظیم کنیم ...

چه نیازی داریم...

  1. اول از همه، ما به خود سیستم نیاز داریم که از حالت multikiosk پشتیبانی می کند. در اینجا می توانید دانلود کنید نسخه آزمایشی
  2. دستورالعمل راه اندازی مولتی کیوسک
  3. هر ویرایشگر XML
  4. برای اعمال تنظیمات چند کیوسک:
    1. برای روش شماره 1 - ICD که بخشی از ADK است. ADK امکان پذیر است اینجا دانلود کنید
    2. برای روش شماره 2 - ابزار 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

هنگام راه‌اندازی، اسکریپت وجود حساب «Admin» را بررسی می‌کند و در صورت عدم وجود آن، یکی را ایجاد می‌کند. حساب کاربری به گروه Administrators اضافه خواهد شد.

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" را در جلد اول در پوشه "RecoveryWindowsRE" کپی کنید. این کار باید قبل از بارگیری سیستم عامل انجام شود. پس از بارگیری سیستم عامل، فهرست "WindowsSystem32Recovery" از قبل خالی خواهد بود.

مرحله 3 - روسی سازی سیستم

اگر این بسته را دارید، بسته زبان بدون اتصال به اینترنت قابل نصب است. در غیر این صورت، وقتی زبان را در تنظیمات اضافه کنید، خود سیستم آن را از اینترنت دانلود می کند. فقط لازم نیست بسته زبان را از نسخه های قبلی سیستم عامل بگیرید. برای ویندوز 10 1809 باید یک بسته زبان مخصوص ویندوز 10 1809 وجود داشته باشد.

مایکروسافت برنامه خود را برای انتقال تدریجی تنظیمات از منوی کلاسیک به منوی جدید دنبال می کند، بنابراین در کنترل پنل کلاسیک دیگر تنظیماتی برای تغییر زبان و نصب بسته زبان پیدا نخواهید کرد. این تنظیمات اکنون فقط در پارامترهای سیستم هستند.

در حالت ممیزی، ممکن است در باز کردن تنظیمات سیستم از منوی استارت با مشکل مواجه شوید؛ برای باز کردن تنظیمات سیستم، دستور - "ms-settings:" را اجرا کنید، به نقطه دوم در انتهای دستور توجه کنید، بدون آن دستور انجام می شود. کار نمیکند. پس از یک بار باز کردن پارامترهای سیستم با استفاده از این دستور، می توان آن را با استفاده از منوی گرافیکی باز کرد.

اما در تنظیمات سیستم می توانید بسته زبانی را نصب کنید اگر سیستم به اینترنت متصل باشد، گزینه ای برای انتخاب بسته زبانی از فایل محلی وجود ندارد.

من روند بومی سازی سیستم را شرح نمی دهم زیرا ... این به طور قابل توجهی مقاله را پیچیده می کند، به خصوص که فرآیند بومی سازی مفصل است در اینجا شرح داده شده است. اما من می خواهم توجه شما را به ویژگی تغییر زبان سیستم پس از نصب بسته زبان با استفاده از کنسول جلب کنم. این ویژگی در همان ویکی که قبلاً پیوندی به آن ارائه کردم، در بخش فرعی توضیح داده شده است "افزودن یک زبان به لیست زبان ها".

من بسته زبان را بدون اتصال به اینترنت نصب خواهم کرد.

پس از بومی سازی کامل سیستم، حتما تصویری از سیستم ایجاد کنید.

مرحله 4 - برنامه های لازم را نصب کنید

زیرا از آنجایی که سیستم های LTSB و LTSC فروشگاه برنامه ندارند، نصب برنامه ها از فروشگاه مایکروسافت باعث ایجاد برخی مشکلات، یعنی دانلود برنامه می شود. برای دانلود برنامه ها، شرکت Adguard یک سرویس بسیار راحت ارائه کرده است - "فروشگاه Adguard"، که با آن می توانید لینک دانلود موقت اپلیکیشن ها و اجزای آن را دریافت کنید.

برای نصب اپلیکیشن به فایل هایی با پسوندهای “Appx” و “AppxBundle” نیاز دارید. قبل از نصب خود برنامه، باید اجزای آن را نصب کنید. به عنوان یک قاعده، اجزای یک برنامه کاربردی را می توان به طور مستقیم با نام فایل تشخیص داد.

برای اینکه مقاله خیلی طولانی نشود، روند نصب برنامه ها را با جزئیات شرح نمی دهم، به خصوص که اطلاعاتی در مورد نصب وجود دارد. دستورالعمل های دقیق. اما من یک راه دیگر برای نصب برنامه ها در حساب فعلی شما اضافه می کنم. برنامه ها را می توان با استفاده از برنامه نصب کرد "نصب کننده برنامه"، اما برای نصب برنامه ها نیاز به اتصال به اینترنت دارید، اما برنامه ها را می توان با دوبار کلیک نصب کرد و به اجزای آن نیازی نخواهید داشت، تمام اجزای لازم دانلود و نصب می شوند. "نصب کننده برنامه".

و یک یادآوری کوچک، هنگام نصب برنامه در حساب جاری، نمی توانید سیستم را مهر و موم کنید. چگونه برنامه ها را نصب کنید تا بتوانید سیستم را مهر و موم کنید، دستورالعمل های بالا را ببینید. و برای بررسی عملکرد مولتی کیوسک، برنامه های موجود کاملاً کافی هستند.

مرحله 5 - ایجاد یک فایل پیکربندی برای multikiosk

اکنون به جالب ترین قسمت می رسیم - تنظیم حالت کیوسک. بیایید نگاهی بیندازیم به دستورالعمل با توجه به تنظیماتی که می بینیم. اول از همه، ما باید یک فایل پیکربندی XML ایجاد کنیم که نمونه کامل آن را می توانید در اینجا بیابید. اینجا نگاه کن.

بیایید با تنظیم طرح کاشی شروع کنیم. ساده ترین راه برای ایجاد پیکربندی سفارشی سازی کاشی XML این است وضعیت فعلی خود را صادر کنند.

اول از همه، بیایید کاشی های برنامه های مورد نیاز خود را به منوی Start اضافه کنیم. جستجوی "Win+s" را فراخوانی کنید، برنامه مورد نظر را پیدا کنید، روی آن کلیک راست کرده و "Pin to Start Screen" را انتخاب کنید.

من برنامه های زیر را پین کرده ام:

  • دفترچه یادداشت
  • ماشین حساب
  • اینترنت اکسپلورر
  • نقاشی
  • دفترچه واژگان
  • پارامترهای
  • Windows Security

دو برنامه آخر پین شدند زیرا... به سادگی هیچ برنامه جهانی دیگری در بسته استاندارد LTSC وجود ندارد. توجه داشته باشید که کاشی های دسکتاپ به میانبرها پیوند دارند. حالا با جابجایی مستقیم کاشی ها در منوی استارت، کاشی های پین شده را به دو گروه تقسیم می کنم. برای ایجاد گروه جدیدی از کاشی ها، کاشی را به طور قابل توجهی بالاتر یا پایین تر از کاشی های دیگر بکشید، که یک تقسیم کننده بصری را برجسته می کند. می‌توانید گروه‌ها را بنا به صلاحدید خود نام‌گذاری کنید؛ برای انجام این کار، مکان‌نمای ماوس را بالای گروه قرار دهید و هنگامی که کتیبه «نام گروه» ظاهر شد، روی دکمه سمت چپ ماوس کلیک کنید. من گروه اول را "تنظیمات" می نامم، که شامل کاشی های "تنظیمات" و "امنیت ویندوز" می شود. من گروه دوم را "برنامه های اداری" می نامم که شامل تمام کاشی های دیگر می شود. به هر حال، می‌توانید کل گروه‌های کاشی‌ها را با کشیدن آنها با استفاده از دو نوار که در سمت راست بالای نام گروه قرار دارند، جابه‌جا کنید.

زیرا در کاشی "Windows Security" نام کاملاً مناسب نیست، اندازه آن را به "Wide" تغییر می دهم. برای تغییر اندازه یک کاشی، روی کاشی کلیک راست کرده و “Resize” را انتخاب کنید.

پس از پیکربندی، وضعیت فعلی را صادر می کنیم و دستور را در محیط PowerShell اجرا می کنیم - "Export-StartLayout - مسیر C:SysprepStartLayout.xml".

بعد، ساده ترین راه این است که خودتان فایل تنظیمات را ایجاد نکنید، بلکه یک فایل نمونه از اینجا بگیرید تنظیمات - روی دکمه "Copy" کلیک کنید، محتویات را در دفترچه یادداشت قرار دهید و به عنوان "MultiAppKiosk.xml" ذخیره کنید. حالا تنظیمات را به تنظیمات خودمان تغییر می دهیم. برای تغییر تنظیمات کاشی های پیوست شده، کل بلوک «StartLayoutCollection» را از «StartLayout.xml» به «MultiAppKiosk.xml» کپی کنید. برای افزودن برنامه‌ها به برنامه‌های مجاز، باید شناسه‌های جهانی برنامه را در بخش «AllowedApps» وارد کنید و در همان بلوک، مسیر کامل را به فایل‌های اجرایی برنامه‌های کلاسیک اضافه کنید، که در ویژگی‌های میانبرها مشخص شده است. کاشی اشاره دارد. برای دسترسی سریع به یک میانبر، روی کاشی پین شده راست کلیک کرده و به More > Go to File Location بروید. توجه داشته باشید که پارامتر "AppUserModelId" برای تعیین شناسه برنامه جهانی و پارامتر "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 خود را می سازید، فراموش نکنید که هر نمایه باید یک شناسه منحصر به فرد داشته باشد، و نه تنها در یک فایل XML، بلکه در یک سیستم عامل. آن ها در حالت ایده آل، برای جلوگیری از سردرگمی، می توانید هر بار یک شناسه جدید ایجاد کنید؛ این کار را می توان در محیط PowerShell با استفاده از دستور "[guid]::NewGuid()" انجام داد. و مطمئن شوید که فایل را در رمزگذاری "UTF-8" ذخیره کنید؛ اگر فایل در رمزگذاری "ANSI" ذخیره شده است، در هنگام ساخت بسته آماده سازی اگر فایل XML حاوی سیریلیک باشد، خطا دریافت خواهید کرد.

مرحله 6 - اعمال تنظیمات چند کیوسک

بیایید به دو روش برای اعمال تنظیمات توضیح داده شده در فایل پیکربندی نگاه کنیم. اولین مورد از طریق یک بسته تدارکاتی است که باید در ICD ایجاد شود. برای برخی، شاید این روش بیشتر آشنا باشد. روش دوم استفاده از "MDM Bridge WMI Provider" است، این روش برای من راحت تر به نظر می رسید.

روش # 1

چه کسی ICD ندارد؟ ADK را دانلود کنید و نصب کنید. نصب ADK بسیار ساده است؛ مجموعه ای از مؤلفه ها را می توان به عنوان پیش فرض رها کرد.

ICD را راه اندازی کنید، روی کاشی "آماده سازی پیشرفته" کلیک کنید، نام و پوشه پروژه را مشخص کنید و روی "بعدی" کلیک کنید. در پنجره بعدی، "All editions of Windows desktop" را انتخاب کرده و روی "Next" کلیک کنید. می‌توانید از وارد کردن بسته آماده‌سازی صرفنظر کنید؛ روی «پایان» کلیک کنید.

منوی کشویی «تنظیمات زمان اجرا» را باز کنید، سپس زیر منوی «AssignedAccess» را گسترش دهید و «MultiAppAssignedAccessSettings» را انتخاب کنید. در بالای بخش میانی پنجره ICD، روی دکمه "Browse" کلیک کنید و محل فایل XML را با تنظیمات مشخص کنید. در هر صورت، می توانید پروژه را با فشار دادن "Ctrl+s" ذخیره کنید. در قسمت سمت چپ بالای ICD، "Export" را انتخاب کنید و "Provisioning Package" را از منوی کشویی انتخاب کنید. به عنوان مالک، «مدیر فناوری اطلاعات» را انتخاب کنید؛ تمام سؤالات دیگر را می توان با کلیک کردن روی «بعدی» رد کرد و در پایان روی «ساخت» و «پایان» کلیک کنید.

در سیستم نصب شده، فراموش نکنید که یک کاربر "کاربر" ایجاد کنید؛ او را نمی توان به گروه "مدیران" اضافه کرد، در غیر این صورت مولتی کیوسک کار نخواهد کرد. من یک کاربر در مدیریت کامپیوتر با یک رمز عبور ایجاد کردم که هرگز منقضی نمی شود.

اکنون بسته آماده سازی را روی سیستم نصب شده قبلی اجرا می کنیم. پس از اعمال بسته آماده سازی، منوی استارت و منوی مدیر تغییر می کند. در ستون شروع سمت چپ، دکمه ها باید ناپدید شوند: "اسناد"، "تصویر"، "گزینه ها". اگر منوی شروع تغییر نکرده باشد، مشکلی پیش آمده است. یک بسته نصب شده را می توان با باز کردن تنظیمات > حساب ها > دسترسی به حساب محل کار یا مدرسه > افزودن یا حذف پنجره تهیه بسته حذف کرد.

اگر منوی شروع تغییر کرده است، تنظیمات بر روی سیستم اعمال می شود، به عنوان کاربری که چند کیوسک برای او پیکربندی شده است وارد شوید و به نتیجه نگاه کنید.

روش # 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" ایجاد کنید و فایل های 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 را انتخاب می کنیم، سیستم مهر و موم شده است. دستگاه را روشن می کنیم، سیستم بوت می شود، به حساب کاربری که مولتی کیوسک برای آن پیکربندی شده است وارد می شویم، اما نمی توانیم وارد شویم. پس از پیام "خوش آمدید"، پیام "خروج" ظاهر می شود.

در ابتدا می خواستم تنها راه حل مشکل را شرح دهم، اما بعداً تصمیم گرفتم مراحل شناسایی مشکل و یافتن ساده ترین راه حل را شرح دهم زیرا ... مطمئناً بسیاری از خوانندگان با تردیدهای مبهم عذاب می کشند - "چه می شود اگر اینطور باشد ...". من فکر می کنم که اگر می خواهید راه حل دیگری پیدا کنید، توصیف آزمایش های مختلف باعث صرفه جویی قابل توجهی در زمان شما می شود. برای اینکه اطلاعات تا حد امکان دقیق باشد و یک بار دیگر مطمئن شوید که هیچ خطایی وجود ندارد، آزمایش ها را در قالب "انجام شده و ثبت شده" شرح خواهم داد. آن ها آزمایش های توصیف شده را دوباره انجام خواهم داد.

آزمایش

چه کار کردیم؟ دو حساب در سیستم وجود دارد:

"Admin" - در گروه "Administrators".
"کاربر" - در گروه "کاربران".
در حالت ممیزی، مولتی کیوسک کار می کرد، اما وقتی مهر و موم شد، کار نمی کرد.

آزمایش 1

ما بسته آماده سازی نصب شده را حذف می کنیم، در "مدیریت رایانه" کاربر "کاربر" را حذف می کنیم و یک کاربر جدید با نام "کاربر" ایجاد می کنیم، بسته آماده سازی را اعمال می کنیم، به حساب "کاربر" می رویم - این کار را انجام می دهد. کار نمیکند. ما تحت نام "Admin" می رویم، کاربر "User" را از گروه "Users" حذف می کنیم، آن را به گروه "Administrators" اضافه می کنیم، تحت نام "User" می رویم - کار نمی کند. ما با نام "Admin" وارد می شویم، بسته آماده سازی را با چند کیوسک حذف می کنیم، با نام "کاربر" وارد می شویم - ما موفق شدیم وارد شوید، اما البته حالت چند کیوسک کار نمی کند زیرا بسته تامین حذف شده است.

آزمایش 2

ما تصویر سیستم را آپلود می کنیم - روسی شده در حالت ممیزی.

سیستم عامل بارگذاری شده است، "Win+r" را فشار دهید، زیرا پنجره sysprep ما به طور خودکار بسته شده است، دستور "sysprep" را اجرا کنید و "sysprep" را در پنجره باز شده اجرا کنید. تنظیمات Sysprep در پنجره: "رفتن به پنجره استقبال از سیستم (OOBE)"، "آماده سازی برای استفاده"، "راه اندازی مجدد". روی «OK» کلیک کنید و منتظر پیام تبریک سیستم عامل باشید. هنگامی که سیستم برای اولین بار بوت می شود به این سوالات پاسخ می دهیم: "به زبان انتخابی ادامه دهید؟" - "روسی"؛ منطقه - روسیه؛ طرح صفحه کلید - روسی؛ اضافه کردن طرح بندی صفحه کلید دوم - رد شوید. "بیایید شما را به شبکه متصل کنیم" - "در حال حاضر پرش کنید"؛ اتصال به اینترنت - خیر؛ موافقت نامه مجوز - قبول؛ "چه کسی از این کامپیوتر استفاده خواهد کرد" - "تست"؛ ایجاد رمز عبور - فیلد را خالی بگذارید. عملکرد راحت در دستگاه های مختلف - خیر. تنظیمات حریم خصوصی - قبول کنید. سیستم عامل بارگیری شده است، در بخش فوری "Computer Management" یک کاربر با نام "User" ایجاد می کنیم، بسته آماده سازی را اضافه می کنیم. نتیجه این است که کار نمی کند.

آزمایش 3

ما تصویر سیستم را آپلود می کنیم - روسی شده در حالت ممیزی.

سیستم عامل بارگذاری شده است، سیستم را به اینترنت وصل کنید، دستور "gpedit.msc" را اجرا کنید و در قسمت "Windows Update" گزینه "فعال کردن به روز رسانی های توصیه شده از طریق به روز رسانی خودکار" را فعال کنید، در هر صورت راه اندازی مجدد شود. در مرکز به‌روزرسانی، روی «Check for updates» کلیک کنید و تا زمانی که همه به‌روزرسانی‌ها نصب شوند، راه‌اندازی مجدد کنید. سیستم را از اینترنت جدا کنید. "sysprep" را در حالت گرافیکی راه اندازی می کنیم و تمام مراحل توضیح داده شده در مرحله قبل از اجرای ابزار "sysprep" تا افزودن بسته آماده سازی را تکرار می کنیم. نتیجه این است که کار نمی کند.

آزمایش 4

ما تصویر سیستم را آپلود می کنیم - انگلیسی در حالت ممیزی.

ما «sysprep» را در حالت گرافیکی راه‌اندازی می‌کنیم، سیستم‌عامل را با همان پارامترهایی که در آزمایش 2 انجام می‌شود مهر و موم می‌کنیم. وقتی سیستم برای اولین بار راه‌اندازی می‌شود، همان پارامترهای آزمایش 2 را انتخاب می‌کنیم، به استثنای پارامترهای منطقه‌ای و زبانی. زبان روسی وجود ندارد. به همین ترتیب، یک کاربر "کاربر" ایجاد کنید و یک بسته تامین کننده اضافه کنید. نتیجه این است که کار می کند. آن ها مشکل مربوط به بومی سازی است.

آزمایش 5

ما تصویر سیستم را آپلود می کنیم - روسی شده در حالت ممیزی.

در بخش "مدیریت رایانه"، یک کاربر "کاربر" ایجاد کنید، یک بسته آماده سازی اضافه کنید، به حساب "کاربر" بروید، کیوسک چندگانه کار می کند.

از حساب کاربری خود خارج شوید و در قسمت "Admin" وارد حساب کاربری خود شوید. ما PowerShell را با حقوق سرپرست راه اندازی می کنیم، دستور "Dism /online /Get-Intl" را اجرا می کنیم و "زبان رابط کاربری پیش فرض: en-US" را می بینیم.

ما از درایو فلش به WinPE بوت می شویم، سیستم عامل مستقر در درایو E من است. ما دستور "Dism /image:E: /Set-UILang:ru-ru" را اجرا می کنیم. ما به نتیجه نگاه می کنیم، "Dism /image:E: /Get-Intl" را اجرا می کنیم و "زبان پیش فرض سیستم UI: ru-RU" را می بینیم.

ما به سیستم بوت می شویم، به حساب "کاربر" وارد می شویم، مولتی کیوسک کار نمی کند.

برای اینکه رابطه علت و معلولی مشکل را به وضوح مشخص کنیم، بیایید دوباره سعی کنیم کیوسک چندگانه کار کند و کار نکند.

ما از درایو فلش به WinPE بوت می‌شویم، سیستم عامل مستقر در درایو E من است. دستور "Dism /image:E: /Set-UILang:en-us" را اجرا می‌کنیم. ما به نتیجه نگاه می کنیم، "Dism /image:E: /Get-Intl" را اجرا می کنیم و "Default system UI language: en-US" را می بینیم.

ما به سیستم بوت می شویم، به حساب "کاربر" وارد می شویم، مولتی کیوسک کار می کند.

ما از درایو فلش به WinPE بوت می شویم، سیستم عامل مستقر در درایو E من است. ما دستور "Dism /image:E: /Set-UILang:ru-ru" را اجرا می کنیم. ما به نتیجه نگاه می کنیم، "Dism /image:E: /Get-Intl" را اجرا می کنیم و "زبان پیش فرض سیستم UI: ru-RU" را می بینیم.

ما به سیستم بوت می شویم، به حساب "کاربر" وارد می شویم، مولتی کیوسک کار نمی کند.

آن ها می توانید وابستگی واضح عملکرد کیوسک به زبان رابط کاربری پیش فرض را مشاهده کنید. شاید عوامل دیگری وجود داشته باشد که بر عملکرد مولتی کیوسک تأثیر بگذارد؟

آزمایش 6

برای خلوص آزمایش، سیستم را دوباره پر می کنیم. ما تصویر سیستم را آپلود می کنیم - روسی شده در حالت ممیزی.

ما "sysprep" را در حالت گرافیکی راه اندازی می کنیم، سیستم عامل را با همان پارامترهایی که در آزمایش 2 انجام دادیم مهر و موم می کنیم. منتظر می مانیم تا سیستم عامل به ما خوش آمد بگوید و به سوالات پاسخ دهد: "به زبان انتخابی ادامه دهید؟" - "ایالات متحده انگلیسی)"؛ منطقه - روسیه؛ چیدمان صفحه کلید - روسی. علاوه بر این، تمام پارامترها مانند آزمایش 2 انتخاب شدند.

بیایید تنظیمات زبان رابط کاربری پیش فرض را بررسی کنیم. ما دستور "Dism /online /Get-Intl" را اجرا می کنیم و "Default system UI language: en-US" را می بینیم. در بخش "مدیریت رایانه"، یک کاربر "کاربر" ایجاد کنید، یک بسته آماده سازی اضافه کنید، به حساب "کاربر" بروید، کیوسک چندگانه کار می کند.

ما سعی می کنیم با تغییر زبان رابط کاربری پیش فرض، کیوسک را بشکنیم. ما وارد کاربر "تست" می شویم که در هنگام بوت شدن سیستم ایجاد شد و ورود خودکار را برای آن فعال می کنیم تا سیستم بلافاصله به حساب "کاربر" بوت نشود. “netplwiz” را اجرا کنید، کاربر “Test” را انتخاب کنید، تیک گزینه “Require username and password” را بردارید و پارامترها را اعمال کنید.

بوت از یک درایو فلش به WinPE. دستور "Dism /image:E: /Set-UILang:ru-ru" را اجرا کنید. ما به نتیجه نگاه می کنیم، "Dism /image:E: /Get-Intl" را اجرا می کنیم و "زبان پیش فرض سیستم UI: ru-RU" را می بینیم.

ما به سیستم بوت می شویم، سعی می کنیم به حساب کاربری "کاربر" وارد شویم، multikiosk کار می کند. آن ها نمی توان آن را شکست. امکانش هست اینجوری کار کنه؟

آزمایش 7

ما تصویر سیستم را آپلود می کنیم - روسی شده در حالت ممیزی.

"Sysprep.bat" را راه اندازی می کنیم، نقطه 2 را انتخاب می کنیم. ما به سیستم بوت می شویم، کاربر "User" را در "Computer Management" ایجاد می کنیم، بسته آماده سازی را اضافه می کنیم، به حساب "User" می رویم، چند کیوسک کار نمی کند

بوت از یک درایو فلش به WinPE. دستور "Dism /image:E: /Set-UILang:en-us" را اجرا کنید. ما به نتیجه نگاه می کنیم، "Dism /image:E: /Get-Intl" را اجرا می کنیم و "Default system UI language: en-US" را می بینیم.

ما به سیستم بوت می شویم ، سعی می کنیم به حساب "کاربر" وارد شوید ، مولتی کیوسک کار نمی کند.

به نظر می رسد که با تغییر تنظیمات زبان رابط کاربری پیش فرض، می توانید عملکرد مولتی کیوسک را تنها زمانی که سیستم در حالت ممیزی قرار دارد یا در اولین بوت پس از مهر و موم کردن سیستم تحت تأثیر قرار دهید. این بدان معنی است که شما باید سیستم را با یک فایل پاسخ مهر و موم کنید که در آن زبان سیستم به زبان انگلیسی انتخاب می شود و سپس تنظیمات سیستم را طوری تغییر دهید که رابط روسی باشد. راه حل خیلی خوبی نیست شاید با نصب بسته زبان یا نصب بسته های زبان اضافی مشکل حل شود؟

آزمایش 8

ما تصویر سیستم را آپلود می کنیم - انگلیسی در حالت ممیزی.

ما به اینترنت وصل می شویم، در پارامترهای سیستم به بخش "زبان" بروید، "افزودن زبان" را انتخاب کنید، زبان "روسی" را انتخاب کنید، روی "بعدی" کلیک کنید، پارامترهای نصب را به عنوان پیش فرض بگذارید، پس از نصب روی "نصب" کلیک کنید. بسته زبان ما سیستم را راه اندازی مجدد می کنیم، اکنون در Russified. سیستم را از اینترنت جدا کنید، "Sysprep.bat" را اجرا کنید، نقطه 2 را انتخاب کنید.

پس از بارگیری سیستم، در اسنپ "مدیریت رایانه"، کاربر "کاربر" را ایجاد کنید، بسته آماده سازی را اضافه کنید، به حساب "کاربر" بروید، چند کیوسک کار نمی کند.

آزمایش 9

بیایید سعی کنیم قبل از نصب، در حالت آفلاین، سیستم را Russify کنیم. در همان زمان یک برنامه آموزشی کوتاه در مورد محلی سازی توزیع وجود خواهد داشت.

من یک درایو فلش با توزیع اصلی تمیز می گیرم - 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" را اجرا کنید.

ما به سیستم بوت می شویم، سعی می کنیم به حساب کاربری "کاربر" وارد شویم، multikiosk کار می کند.

ظاهرا مشکل در روش های اضافه کردن بسته نیست، بیایید سعی کنیم بسته های اضافی را اضافه کنیم.

آزمایش 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" را اجرا کنید.

ما به سیستم بوت می شویم، سعی می کنیم به حساب کاربری "کاربر" وارد شویم، multikiosk کار می کند.

راه حل

قهرمانان عادی آنها همیشه یک مسیر انحرافی می گیرند!

روش‌های مختلف نصب بسته‌های محلی‌سازی مشکل را حل نکردند، به این معنی که پس از مهر و موم کردن باید زبان “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 رسیدم.

Unattend.xml

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="specialize">
        <component name="Microsoft-Windows-Deployment" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <RunSynchronous>
                <RunSynchronousCommand wcm:action="add">
                    <Path>reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v SetupDisplayedProductKey /t REG_DWORD /d 1 /f</Path>
                    <Order>1</Order>
                    <Description>Dont show key page</Description>
                </RunSynchronousCommand>
                <RunSynchronousCommand wcm:action="add">
                    <Path>reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v UnattendCreatedUser /t REG_DWORD /d 1 /f</Path>
                    <Order>2</Order>
                    <Description>Dont make account</Description>
                </RunSynchronousCommand>
                <RunSynchronousCommand wcm:action="add">
                    <Path>cmd.exe /c rd %systemdrive%Sysprep /s /q</Path>
                    <Order>3</Order>
                    <Description>Del Folder</Description>
                </RunSynchronousCommand>
            </RunSynchronous>
        </component>
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <AutoLogon>
                <Enabled>true</Enabled>
                <Username>Admin</Username>
            </AutoLogon>
        </component>
    </settings>
    <settings pass="oobeSystem">
        <component name="Microsoft-Windows-International-Core" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <InputLocale>en-US; ru-RU</InputLocale>
            <SystemLocale>ru-RU</SystemLocale>
            <UILanguage>en-US</UILanguage>
            <UILanguageFallback></UILanguageFallback>
            <UserLocale>ru-RU</UserLocale>
        </component>
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <OOBE>
                <HideEULAPage>true</HideEULAPage>
                <HideLocalAccountScreen>true</HideLocalAccountScreen>
                <HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
                <HideOnlineAccountScreens>true</HideOnlineAccountScreens>
                <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
                <ProtectYourPC>1</ProtectYourPC>
            </OOBE>
            <FirstLogonCommands>
                <SynchronousCommand wcm:action="add">
                    <CommandLine>cmd.exe /c echo ^&lt;gs:GlobalizationServices xmlns:gs=&quot;urn:longhornGlobalizationUnattend&quot;^&gt;^&lt;gs:UserList^&gt;^&lt;gs:User UserID=&quot;Current&quot; CopySettingsToSystemAcct=&quot;true&quot;/^&gt;^&lt;/gs:UserList^&gt;^&lt;/gs:GlobalizationServices^&gt;&gt;&quot;%TMP%Config.xml&quot;</CommandLine>
                    <Description>CreateConfig</Description>
                    <Order>1</Order>
                </SynchronousCommand>
                <SynchronousCommand wcm:action="add">
                    <CommandLine>control intl.cpl,,/f:&quot;%TMP%Config.xml&quot;</CommandLine>
                    <Description>UseConfig</Description>
                    <Order>2</Order>
                </SynchronousCommand>
                <SynchronousCommand wcm:action="add">
                    <CommandLine>cmd.exe /c del &quot;%TMP%Config.xml&quot; /q&amp;shutdown /r /f /t 00</CommandLine>
                    <Description>DelConfig</Description>
                    <Order>3</Order>
                </SynchronousCommand>
            </FirstLogonCommands>
        </component>
    </settings>

بیایید بررسی کنیم ...

ما تصویر سیستم را آپلود می کنیم - روسی شده در حالت ممیزی.

فایل Unattend.xml را به یک فایل جدید تغییر می دهیم، "Sysprep.bat" را اجرا می کنیم، نقطه 2 را انتخاب می کنیم و می بینیم که چه چیزی به دست آوردیم. هنگامی که برای اولین بار بوت می شوید، صفحه خوش آمدگویی به زبان انگلیسی است و سیستم راه اندازی مجدد می شود. صفحه خوش آمدگویی به زبان روسی است، مولتی کیوسک کار می کند.

اگر در مورد راه اندازی و مجوز Windows 10 IoT Enterprise سؤالی دارید، لطفاً با: [ایمیل محافظت شده] یا به وب سایت quarta-embedded.ru.
شما می توانید پاسخ برخی از سوالات را در ویکی ما یا روی مال ما YouTube-کانالیل

نویسنده مقاله: ولادیمیر بوریسنکوف، کارشناس فنی شرکت Quarta Technologies.

منبع: www.habr.com