Windows 10 IoT Enterprise 2019 - وضع Multikiosk

مقدمة

ويندوز 10 إنترنت الأشياء المؤسسة 2019 هو الاسم التسويقي للإصدار التالي من Windows 10. تم الإعلان عن إصدار هذا الإصدار في سبتمبر 2018، على التوالي، وهو يحتوي على الإصدار 1809، 18 هو العام، 09 هو الشهر. تمت كتابة العديد من المقالات حول الإصدار الجديد من Windows 10 1809، لكن معظمها مخصص لمختلف "الأقواس" و"الجمال" والوظائف المختلفة المطلوبة في المنزل.
ستناقش هذه المقالة فقط الوظائف التي قد تكون مطلوبة بين الشركات المصنعة للأجهزة ذات الأغراض الثابتة. وهي تتعلق بالإمكانيات الجديدة لوضع "الكشك". سيتم أيضًا التطرق إلى موضوع تغيير أسماء أنظمة الخدمة لإصدارات Windows الخاصة بقطاع المؤسسات.

مخطط الخدمة القديم بالاسم الجديد

اسمحوا لي أن أبدأ بشرح قصير: يوجد في قطاع الشركات في إصدارات Windows نظامان للخدمة يتلقى Windows من خلالهما التحديثات. تحتوي مخططات الخدمة على تعيين حرف. تسمى فروع الخدمة حاليًا LTSC وSAC.

LTSC لتقف علي قناة الخدمة طويلة المدى (مع صيانة طويلة الأمد). في السابق، كانت هذه القناة تسمى LTSB - فرع الخدمة طويل الأجل، قامت Microsoft ببساطة بتغيير اسم قناة الخدمة، وظلت الخدمة نفسها كما هي.

قامت مايكروسوفت أيضًا بتغيير اسم فرع الخدمة CBB - الفرع الحالي للأعمال، والآن يسمى فرع الخدمة هذا SAC - قناة نصف سنوية. مرة أخرى، تغير الاسم فقط.

ولكن تجدر الإشارة إلى أن فروع الخدمة LTSC وSAC تستخدم توزيعات Windows مختلفة.

القليل عن وضع الكشك الجديد في SAC

كما قلت من قبل، LTSC وSAC لهما توزيعات مختلفة. ليس لدى LTSC تطبيقات عالمية قياسية أو متجر تطبيقات، لكن SAC تمتلكه. وفقًا لذلك، لا يحتوي LTSC على متصفح Edge، ولكن SAC لديه. إذا قمت بتحديد متصفح Edge عند إعداد كشك، فسيتوفر الآن وضعان:

  1. كعلامة رقمية أو شاشة تفاعلية
  2. مثل المتصفح العام

لن أطيل الحديث عن هذه الأوضاع، لأن... الإعداد بسيط للغاية ويتم من خلال واجهة رسومية. ما عليك سوى إنشاء مستخدم ليس عضوًا في مجموعة المسؤولين، وتمكين وضع الكشك له باستخدام EDGE ومعرفة كيفية عمل هذه الأوضاع.

كشك مع العديد من التطبيقات

بعض الناس يعتقدون أن الاستخدام المرخص نظام التشغيل Windows 10 IoT Enterprise يعني تشغيل تطبيق واحد فقط على الجهاز، في الواقع هذا ليس هو الحال. يجب أن يكون الجهاز مصممًا لأداء مهمة عمل واحدة ويجب ألا يتمكن المستخدم من الوصول إلى سطح المكتب. الآن أعطت Microsoft نفسها الأداة لاستخدام العديد من التطبيقات. يُسمى هذا الوضع "كشك متعدد التطبيقات"، وسأسميه فيما يلي، للإيجاز، "كشك متعدد التطبيقات". سنلقي نظرة في هذه المقالة على إعداد هذا الوضع باستخدام حزمة البرامج وبعض ميزات هذا الوضع.

قليلا عن وضع Multikiosk

عند تسجيل الدخول إلى حساب مستخدم تم تكوين وضع الأكشاك المتعددة له، سيعمل النظام في وضع الكمبيوتر اللوحي. سيتم توسيع القائمة "ابدأ" إلى وضع ملء الشاشة، وستعرض مربعات التطبيق.

قائمة الإعدادات الأساسية وإمكانيات الوضع:

  1. الإعداد لعدة مستخدمين أو مجموعات
  2. يمكن تعيين إعدادات فردية لكل مستخدم أو مجموعة
  3. القدرة على استخدام التطبيقات العالمية والكلاسيكية
  4. إمكانية تشغيل أحد التطبيقات تلقائيًا عند قيام المستخدم بتسجيل الدخول
  5. التطبيقات المدرجة في القائمة البيضاء
  6. الوصول إلى المجلدات باستخدام القائمة البيضاء

يجدر الانتباه إلى النقطة 5. بشكل افتراضي، سيتم السماح فقط لتلك التطبيقات الضرورية لتشغيل النظام، ويجب إضافة التطبيقات الأخرى إلى قائمة التطبيقات المسموح بها. أولئك. الآن لا تحتاج إلى تكوين AppLocker بشكل منفصل. بالمناسبة، لتجنب التعارض مع إعدادات AppLocker، في وضع الأكشاك المتعددة، لن يتم تطبيق جميع قواعد AppLocker التي تم تكوينها.

تشير النقطة 6 إلى خيار جيد، ولكن في الوقت الحالي لا يمكن إلا منح إذن الكتابة إلى مجلد "التنزيلات". يتيح لك الوضع استخدام التطبيقات العالمية والكلاسيكية. يتم تحديد كافة إعدادات الوضع في ملف XML، حيث يمكنك أيضًا تحديد إعدادات لكشك تطبيق واحد.

الآن دعونا نحاول إعداد كل شيء ...

ماذا نحتاج...

  1. بادئ ذي بدء، نحن بحاجة إلى النظام نفسه، الذي يدعم وضع multikiosk. هنا يمكنك التنزيل النسخة التجريبية
  2. تعليمات لإعداد multikiosk
  3. أي محرر XML
  4. لتطبيق إعدادات الأكشاك المتعددة:
    1. بالنسبة للطريقة رقم 1 - التصنيف الدولي للأمراض، وهو جزء من 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

عند إطلاقه، سيتحقق البرنامج النصي من وجود حساب "المسؤول" ويقوم بإنشاء حساب إذا كان مفقودًا. سيتم إضافة الحساب إلى مجموعة المسؤولين.

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 يدويًا في كل مرة. عند إغلاقه في وضع الترحيب، سيقوم البرنامج النصي بإزالة الأمر الخاص بإغلاق النافذة من السجل وسيقوم بنفسه بتغيير قيمة البنية في ملف الإجابات إلى القيمة الحالية. يحتوي ملف الإجابات على معلمات لتشغيل النظام دون تدخل المستخدم وأمر لحذف المجلد "Sysprep" الموجود في جذر محرك أقراص النظام.

الآن سأقوم بإغلاق النظام في وضع التدقيق باستخدام "Sysprep.bat" والتقاط صورة للنظام. سوف أقوم بتصوير النظام باستخدام DISM وسوف أقوم بتصوير حجم النظام فقط. إذا كنت ستقوم بتصوير وحدة تخزين النظام فقط، وليس القرص بأكمله، فلا تنس نسخ محتويات دليل "WindowsSystem32Recovery" إلى المجلد الأول في مجلد "RecoveryWindowsRE" بعد نشر النظام. يجب القيام بذلك قبل تحميل نظام التشغيل. بعد تحميل نظام التشغيل، سيكون دليل "WindowsSystem32Recovery" فارغًا بالفعل.

الخطوة 3 – ترويس النظام

يمكن تثبيت حزمة اللغة دون الاتصال بالإنترنت إذا كانت لديك هذه الحزمة. إذا لم يكن الأمر كذلك، فسيقوم النظام نفسه بتنزيله من الإنترنت عند إضافة اللغة في الإعدادات. لا تحتاج فقط إلى أخذ حزمة اللغة من الإصدارات السابقة من نظام التشغيل. بالنسبة لنظام التشغيل Windows 10 1809، يجب أن تكون هناك حزمة لغة مخصصة لنظام التشغيل Windows 10 1809.

تتبع Microsoft خطتها لنقل الإعدادات تدريجيًا من القائمة الكلاسيكية إلى القائمة الجديدة، لذلك لن تجد في لوحة التحكم الكلاسيكية بعد الآن إعدادات تغيير اللغة وتثبيت حزمة اللغة. هذه الإعدادات موجودة الآن فقط في معلمات النظام.

في وضع التدقيق، قد تواجه مشكلة في فتح إعدادات النظام من قائمة "ابدأ"، لفتح إعدادات النظام، قم بتشغيل الأمر - "ms-settings:"، انتبه إلى النقطتين في نهاية الأمر، فبدونها سيظهر الأمر لا يعمل. بعد فتح معلمات النظام بمجرد استخدام هذا الأمر، يمكن فتحه باستخدام القائمة الرسومية.

لكن في إعدادات النظام يمكنك تثبيت حزمة لغة إذا كان النظام متصلاً بالإنترنت، ولا يوجد خيار لاختيار تثبيت حزمة لغة من ملف محلي.

لن أصف عملية توطين النظام لأن ... سيؤدي ذلك إلى تعقيد المقالة بشكل كبير، خاصة وأن عملية التعريب مفصلة موصوفة هنا. ولكن أود أن ألفت انتباهكم إلى خصوصية تغيير لغة النظام بعد تثبيت حزمة اللغة باستخدام وحدة التحكم. تم وصف هذه الميزة في نفس الويكي الذي قدمت رابطًا إليه سابقًا، في القسم الفرعي "إضافة لغة إلى قائمة اللغات".

سأقوم بتثبيت حزمة اللغة دون الاتصال بالإنترنت.

بعد التوطين الكامل للنظام، تأكد من إنشاء صورة للنظام.

الخطوة 4 – تثبيت التطبيقات الضرورية

لأن نظرًا لأن أنظمة LTSB وLTSC لا تحتوي على متجر تطبيقات، فإن تثبيت التطبيقات من متجر Microsoft يسبب بعض الصعوبات، وهي تنزيل التطبيق. لتنزيل التطبيقات، قدمت شركة Adguard خدمة مريحة للغاية - "متجر Adguard"والتي يمكنك من خلالها الحصول على روابط تنزيل مؤقتة للتطبيقات ومكوناتها.

لتثبيت التطبيق، ستحتاج إلى ملفات ذات الامتدادات "Appx" و"AppxBundle". قبل تثبيت التطبيق نفسه، يجب عليك تثبيت مكوناته. كقاعدة عامة، يمكن تمييز مكونات التطبيق بشكل بديهي من خلال اسم الملف.

لكي لا أطيل المقال، لن أصف بالتفصيل عملية تثبيت التطبيقات، خاصة وأن هناك معلومات عن التثبيت تعليمات مفصلة. لكنني سأضيف طريقة أخرى لتثبيت التطبيقات في حسابك الحالي. يمكن تثبيت التطبيقات باستخدام البرنامج "مثبت التطبيق"ولكن لتثبيت التطبيقات ستحتاج إلى اتصال بالإنترنت، ولكن يمكن تثبيت التطبيقات بنقرة مزدوجة ولن تحتاج إلى مكوناتها، سيتم تنزيل جميع المكونات الضرورية وتثبيتها "مثبت التطبيق".

وتذكير صغير، عند تثبيت التطبيق في الحساب الجاري، لن تتمكن من إغلاق النظام. كيفية تثبيت التطبيقات بحيث يمكنك إغلاق النظام، راجع التعليمات المذكورة أعلاه. وللتحقق من تشغيل الأكشاك المتعددة، فإن التطبيقات الموجودة كافية تمامًا.

الخطوة 5 – إنشاء ملف تكوين للأكشاك المتعددة

نصل الآن إلى الجزء الأكثر إثارة للاهتمام - إعداد وضع الكشك. دعنا ننظر إلى تعليمات وفقا للإعدادات التي نراها. أولاً، سنحتاج إلى إنشاء ملف تكوين XML، ويمكن العثور على مثال كامل له هنا. انظر هنا.

لنبدأ بإعداد تخطيط البلاط. أسهل طريقة لإنشاء تكوين تخصيص تجانب XML هي تصدير حالتهم الحالية.

أولاً، دعونا نضيف مربعات التطبيقات التي نحتاجها إلى قائمة ابدأ. اتصل بالبحث "Win+s"، وابحث عن التطبيق المطلوب، ثم انقر بزر الماوس الأيمن عليه وحدد "Pin to Start Screen".

لقد قمت بتثبيت التطبيقات التالية:

  • مفكرة
  • آلة حاسبة
  • إنترنت إكسبلورر
  • مستلزمات الرسم
  • الدفتر
  • المعلمات
  • أمن Windows

تم تثبيت الطلبين الأخيرين بسبب... ببساطة لا توجد تطبيقات عالمية أخرى في حزمة LTSC القياسية. لاحظ أن مربعات سطح المكتب ترتبط بالاختصارات. الآن، من خلال نقل المربعات مباشرةً في قائمة "ابدأ"، سأفصل المربعات المثبتة إلى مجموعتين. لإنشاء مجموعة جديدة من المربعات، اسحب مربعًا أعلى أو أقل بكثير من المربعات الأخرى، مما سيؤدي إلى تمييز فاصل بديهي. يمكنك تسمية المجموعات حسب تقديرك، للقيام بذلك، ضع مؤشر الماوس فوق المجموعة، وعندما يظهر النقش "اسم المجموعة"، انقر فوق زر الماوس الأيسر. سأطلق على المجموعة الأولى اسم "الإعدادات"، وستتضمن مربعي "الإعدادات" و"أمان Windows". سأطلق على المجموعة الثانية اسم "تطبيقات Office"، والتي ستشمل جميع المربعات الأخرى. بالمناسبة، يمكنك نقل مجموعات كاملة من المربعات عن طريق سحبها باستخدام الخطين الموجودين في الجزء العلوي الأيمن من اسم المجموعة.

لأن في بلاط "Windows Security"، الاسم غير مناسب تمامًا، وسأغير حجمه إلى "واسع". لتغيير حجم البلاط، انقر بزر الماوس الأيمن على البلاط وحدد "تغيير الحجم".

بعد التكوين، نقوم بتصدير الحالة الحالية وتنفيذ الأمر في بيئة PowerShell – “Export-StartLayout – path C:SysprepStartLayout.xml”.

بعد ذلك، أسهل طريقة هي عدم إنشاء ملف الإعدادات بنفسك، ولكن خذ ملف مثال من هنا الإعدادات - انقر فوق الزر "نسخ"، والصق المحتويات في المفكرة واحفظها باسم "MultiAppKiosk.xml". الآن نقوم بتغيير الإعدادات إلى إعداداتنا الخاصة. لتغيير إعدادات المربعات المرفقة، انسخ كتلة "StartLayoutCollection" بأكملها من "StartLayout.xml" إلى "MultiAppKiosk.xml". لإضافة تطبيقات إلى التطبيقات المسموح بها، تحتاج إلى إدراج معرفات التطبيقات العامة في قسم "AllowedApps" وفي نفس الكتلة أضف المسار الكامل إلى الملفات القابلة للتنفيذ للتطبيقات الكلاسيكية، والتي تم تحديدها في خصائص الاختصارات التي تشير البلاط. للوصول بسرعة إلى الاختصار، انقر بزر الماوس الأيمن على المربع المثبت وانتقل إلى المزيد > الانتقال إلى موقع الملف. لاحظ أنه يتم استخدام المعلمة "AppUserModelId" لتحديد معرف التطبيق العالمي، ويتم استخدام المعلمة "DesktopAppPath" لتحديد المسار الكامل لتطبيق سطح المكتب. وهناك فارق بسيط آخر، إذا كنت تخطط لاستخدام IE على نظام x64، فيجب عليك في قائمة التطبيقات المسموح بها تحديد مسارين للملف القابل للتنفيذ "Program FilesInternet Exploreriexplore.exe" و "Program Files (x86)Internet Exploreriexplore. إملف تنفيذى".

لن أمنح حق الوصول إلى المجلدات، لذا سأقوم بحذف قسم "FileExplorerNamespaceRestrictions".

عرض شريط المهام لا يزعجني، لذا أترك كل شيء كما هو في قسم "شريط المهام".

في المثال، تم تحديد ملفين شخصيين، ولكن سيكون لدي ملف تعريف واحد فقط، لذلك يمكن حذف القسم الذي يحتوي على ملف التعريف الثاني. قبل إلغاء التثبيت، انتبه إلى مثال بدء تشغيل التطبيق تلقائيًا باستخدام الوسائط.

في قسم "الإعدادات"، يتم ربط الحسابات بملفات التعريف، يرجى ملاحظة أنه يمكن ربط حسابات متعددة بملف تعريف واحد. ولكن أنا مهتم بحساب واحد فقط، ثم سأحذف جميع الارتباطات باستثناء الحساب الأول - كتل "التكوين". في التجليد المتبقي سأكتب اسم المستخدم "المستخدم".

حصلت على هذا الملف مع المعلمات

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 – تطبيق إعدادات الأكشاك المتعددة

دعونا نلقي نظرة على طريقتين لتطبيق الإعدادات الموضحة في ملف التكوين. الأول هو من خلال حزمة التزويد، والتي يجب إنشاؤها في التصنيف الدولي للأمراض. بالنسبة للبعض، ربما تكون هذه الطريقة أكثر دراية. والثاني هو استخدام "MDM Bridge WMI Provider"، وقد بدت هذه الطريقة أكثر ملاءمة بالنسبة لي.

الطريقة # شنومك

من ليس لديه ICD؟ تحميل ADK وتثبيت. يعد تثبيت ADK أمرًا بسيطًا للغاية، ويمكن ترك مجموعة المكونات كإعداد افتراضي.

قم بتشغيل ICD، وانقر فوق مربع "الإعداد المتقدم"، وحدد اسم المشروع ومجلده وانقر فوق "التالي". في النافذة التالية، حدد "جميع إصدارات سطح مكتب Windows" وانقر فوق "التالي". يمكنك تخطي استيراد حزمة التحضير، انقر فوق "إنهاء".

قم بتوسيع القائمة المنسدلة "إعدادات وقت التشغيل"، ثم قم بتوسيع القائمة الفرعية "AssignedAccess" وحدد "MultiAppAssignedAccessSettings". في الجزء العلوي من القسم الأوسط لنافذة ICD، انقر فوق الزر "استعراض" وحدد موقع ملف XML باستخدام الإعدادات. تحسبًا لذلك، يمكنك حفظ المشروع بالضغط على "Ctrl+s". في الجزء العلوي الأيسر من التصنيف الدولي للأمراض، حدد "تصدير" وحدد "حزمة التزويد" من القائمة المنسدلة. بصفتك المالك، حدد "مسؤول تكنولوجيا المعلومات"؛ ويمكن تخطي جميع الأسئلة الأخرى بالنقر فوق "التالي" وفي النهاية انقر فوق "إنشاء" و"إنهاء".

في النظام المثبت، لا تنس إنشاء مستخدم "مستخدم"، ولا يمكن إضافته إلى مجموعة "المسؤولين"، وإلا فلن يعمل الأكشاك المتعددة. لقد قمت بإنشاء مستخدم في إدارة الكمبيوتر بكلمة مرور لا تنتهي صلاحيتها أبدًا.

نقوم الآن بتشغيل حزمة التحضير على النظام المثبت مسبقًا. بعد تطبيق حزمة التحضير، ستتغير قائمة ابدأ وقائمة المسؤول. في عمود البداية الأيسر، يجب أن تختفي الأزرار: "المستندات"، "الصورة"، "الخيارات". إذا لم تتغير قائمة البداية، فهذا يعني أن هناك خطأ ما. يمكن إزالة الحزمة المثبتة من خلال فتح الإعدادات > الحسابات > الوصول إلى حساب العمل أو المدرسة > نافذة إضافة أو إزالة حزمة التوفير.

إذا تغيرت قائمة البداية، فسيتم تطبيق الإعدادات على النظام، وقم بتسجيل الدخول كمستخدم تم تكوين Multikiosk له وإلقاء نظرة على النتيجة.

الطريقة # شنومك

تطبيق الإعدادات باستخدام "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"، فقم بإزالة معلمة "تشفير UTF8" من خيار قراءة الملف. يجب عليك وضع ملفات XML في المجلد "XML" دون استبدال الأحرف؛ حيث سيقوم البرنامج النصي نفسه باستبدال الأحرف الخاصة بالتسميات المناسبة. لكي لا يتم الخلط بين المعرفات الفريدة العمومية (GUIDs) الخاصة بربط المستخدمين بملفات التعريف، يمكنك ببساطة الإشارة إلى رقم المستخدم أو اسمه بين قوسين متعرجين؛ وسيتم استبدال كافة المحتويات الموجودة في الأقواس المتعرجة بمعرفات GUID (معرفات فريدة عمومية).

يعد استخدام البرنامج النصي أمرًا بسيطًا للغاية، ما عليك سوى تشغيله وتحديد العنصر المطلوب. لتغيير التكوين الحالي إلى تكوين جديد، ليس من الضروري حذف التكوين الحالي، حيث سيتم الكتابة فوقه. لا تنس إنشاء المستخدمين المحددين في ملف التكوين.

عند عرض تكوين الأكشاك المتعددة الحالي في نفس الجلسة التي تم تطبيقه فيها، بدلاً من الأحرف الخاصة، سيتم عرض مجموعات من الأحرف البديلة. بعد تغيير الجلسة (إعادة تشغيل البرنامج النصي)، سيتم عرض كافة الأحرف الخاصة في شكلها الأصلي.

الخطوة 7 – إغلاق النظام

الأكشاك المتعددة تعمل، حسنًا، هذا كل شيء، على ما يبدو...

إذا سار كل شيء وفقًا للخطة، فأنت لا تلاحظ شيئًا ما.

لا تنس أننا مازلنا بحاجة إلى تحويل النظام من وضع التدقيق إلى وضع الترحيب. حسنًا، نحن جاهزون لذلك، أطلقنا "Sysprep.bat"، حدد النقطة 2، النظام مغلق. نقوم بتشغيل الجهاز، ويقوم النظام بالتمهيد، ونقوم بتسجيل الدخول إلى حساب المستخدم الذي تم تكوين الأكشاك المتعددة له، لكن لا يمكننا تسجيل الدخول. بعد رسالة "الترحيب"، تظهر رسالة "تسجيل الخروج".

في البداية أردت أن أصف حل المشكلة فقط، لكن قررت فيما بعد أن أصف خطوات التعرف على المشكلة وإيجاد الحل الأبسط لأن... من المؤكد أن العديد من القراء سوف يتعذبون بسبب الشكوك الغامضة - "ماذا لو كان الأمر هكذا...". أعتقد أن وصف التجارب المختلفة سيوفر لك قدرًا كبيرًا من الوقت إذا كنت تريد إيجاد حل آخر. ولجعل المعلومات دقيقة قدر الإمكان، وللتأكد مرة أخرى من عدم وجود أخطاء، سأصف التجارب بالتنسيق "المنجز والمسجل". أولئك. سأقوم بالتجارب الموصوفة مرة أخرى.

تجارب

ماذا فعلنا؟ هناك حسابان في النظام:

"المسؤول" - في مجموعة "المسؤولين".
"المستخدم" - في مجموعة "المستخدمين".
في وضع التدقيق، كان الأكشاك المتعددة يعمل، ولكن عند إغلاقه، لم يعمل.

التجربة 1

نقوم بحذف حزمة التحضير المثبتة، في الأداة الإضافية "إدارة الكمبيوتر"، نحذف المستخدم "المستخدم" وننشئ مستخدمًا جديدًا باسم "المستخدم"، ونطبق حزمة التحضير، وننتقل إلى حساب "المستخدم" - إنه يفعل لا يعمل. نذهب تحت اسم "المسؤول"، ونزيل المستخدم "المستخدم" من مجموعة "المستخدمين"، ونضيفه إلى مجموعة "المسؤولين"، وننتقل تحت اسم "المستخدم" - فهو لا يعمل. نقوم بتسجيل الدخول تحت اسم "Admin"، ونحذف حزمة الإعداد باستخدام الأكشاك المتعددة، ونسجل الدخول تحت اسم "المستخدم" - تمكنا من تسجيل الدخول، لكن وضع الأكشاك المتعددة لا يعمل بالطبع لأنه تمت إزالة حزمة التوفير.

التجربة 2

نقوم بتحميل صورة النظام - سكانها ينالون الجنسية الروسية في وضع التدقيق.

تم تحميل نظام التشغيل، اضغط على "Win+r"، لأنه تم إغلاق نافذة sysprep تلقائيًا، قم بتشغيل الأمر "sysprep"، ثم قم بتشغيل "sysprep" في النافذة التي تفتح. إعدادات Sysprep في النافذة: "انتقل إلى نافذة ترحيب النظام (OOBE)"، "التحضير للاستخدام"، "إعادة التشغيل". انقر فوق "موافق" وانتظر تحية نظام التشغيل. نجيب على الأسئلة عند تشغيل النظام لأول مرة: "المتابعة باللغة المحددة؟" - "الروسية"؛ المنطقة – روسيا; تخطيط لوحة المفاتيح - الروسية؛ إضافة تخطيط لوحة المفاتيح الثاني - تخطي؛ "دعونا نوصلك بالشبكة" - "تخطي الآن"؛ الاتصال بالإنترنت - لا؛ اتفاقية الترخيص - قبول؛ "من سيستخدم هذا الكمبيوتر" - "اختبار"؛ إنشاء كلمة مرور - اترك الحقل فارغًا؛ عملية مريحة على أجهزة مختلفة – لا؛ إعدادات الخصوصية - قبول. تم تحميل نظام التشغيل، في الأداة الإضافية "إدارة الكمبيوتر"، نقوم بإنشاء مستخدم باسم "المستخدم"، ونضيف حزمة الإعداد. والنتيجة هي أنه لا يعمل.

التجربة 3

نقوم بتحميل صورة النظام - سكانها ينالون الجنسية الروسية في وضع التدقيق.

تم تحميل نظام التشغيل، وقم بتوصيل النظام بالإنترنت، وتشغيل الأمر "gpedit.msc" وفي قسم "Windows Update" قم بتمكين خيار "تمكين التحديثات الموصى بها من خلال التحديثات التلقائية"، وأعد التشغيل فقط في حالة حدوث ذلك. في مركز التحديث، انقر فوق "التحقق من وجود تحديثات" وأعد التشغيل حتى يتم تثبيت كافة التحديثات. افصل النظام عن الإنترنت. نقوم بتشغيل "sysprep" في الوضع الرسومي ونكرر جميع الخطوات الموضحة في الخطوة السابقة بدءًا من تشغيل الأداة المساعدة "sysprep" وحتى إضافة حزمة التحضير. والنتيجة هي أنه لا يعمل.

التجربة 4

نقوم بتحميل صورة النظام - باللغة الإنجليزية في وضع التدقيق.

نقوم بتشغيل "sysprep" في الوضع الرسومي، ونغلق نظام التشغيل بنفس المعلمات كما في التجربة 2. عند تشغيل النظام لأول مرة، نختار نفس المعلمات كما في التجربة 2، باستثناء المعلمات الإقليمية ومعلمات اللغة لأن لا توجد لغة روسية. بنفس الطريقة، قم بإنشاء مستخدم "مستخدم" وأضف حزمة التزويد. والنتيجة هي أنه يعمل. أولئك. المشكلة تتعلق بالتوطين.

التجربة 5

نقوم بتحميل صورة النظام - سكانها ينالون الجنسية الروسية في وضع التدقيق.

في الأداة الإضافية "إدارة الكمبيوتر"، قم بإنشاء مستخدم "مستخدم"، وأضف حزمة إعداد، وانتقل إلى حساب "المستخدم"، وسيعمل الأكشاك المتعددة.

قم بتسجيل الخروج من حسابك وقم بتسجيل الدخول تحت حساب "المسؤول". نقوم بتشغيل PowerShell مع حقوق المسؤول، وننفذ الأمر "Dism /online /Get-Intl" ونرى "لغة واجهة المستخدم الافتراضية: en-US".

نقوم بالتمهيد من محرك الأقراص المحمول إلى WinPE، ونظام التشغيل المنشور موجود على محرك الأقراص E. نقوم بتنفيذ الأمر "Dism /image:E: /Set-UILang:ru-ru". نحن ننظر إلى النتيجة وننفذ "Dism /image:E: /Get-Intl" ونرى "لغة واجهة المستخدم الافتراضية للنظام: ru-RU".

نقوم بالتمهيد إلى النظام، ونقوم بتسجيل الدخول إلى حساب "المستخدم"، ولا يعمل الأكشاك المتعددة.

لتحديد العلاقة بين السبب والنتيجة للمشكلة بوضوح، فلنحاول مرة أخرى جعل الأكشاك المتعددة تعمل وغير عاملة.

نقوم بالتمهيد من محرك الأقراص المحمول إلى WinPE، ونظام التشغيل المنشور موجود على محرك الأقراص E. نقوم بتنفيذ الأمر "Dism /image:E: /Set-UILang:en-us". نحن ننظر إلى النتيجة وننفذ "Dism /image:E: /Get-Intl" ونرى "لغة واجهة المستخدم الافتراضية للنظام: en-US".

نقوم بالتمهيد إلى النظام، ونقوم بتسجيل الدخول إلى حساب "المستخدم"، ويعمل الأكشاك المتعددة.

نقوم بالتمهيد من محرك الأقراص المحمول إلى WinPE، ونظام التشغيل المنشور موجود على محرك الأقراص E. نقوم بتنفيذ الأمر "Dism /image:E: /Set-UILang:ru-ru". نحن ننظر إلى النتيجة وننفذ "Dism /image:E: /Get-Intl" ونرى "لغة واجهة المستخدم الافتراضية للنظام: ru-RU".

نقوم بالتمهيد إلى النظام، ونقوم بتسجيل الدخول إلى حساب "المستخدم"، ولا يعمل الأكشاك المتعددة.

أولئك. يمكنك رؤية اعتماد واضح لأداء الكشك على لغة واجهة المستخدم الافتراضية. ربما هناك بعض العوامل الأخرى التي تؤثر على أداء الأكشاك المتعددة؟

التجربة 6

لنقاء التجربة، نقوم بإعادة ملء النظام. نقوم بتحميل صورة النظام - سكانها ينالون الجنسية الروسية في وضع التدقيق.

نطلق "sysprep" في الوضع الرسومي، ونغلق نظام التشغيل بنفس المعلمات كما في التجربة 2. وننتظر حتى يرحب بنا نظام التشغيل ويجيب على الأسئلة: "المتابعة باللغة المحددة؟" - "انجليزية الولايات المتحدة)"؛ المنطقة – روسيا; تخطيط لوحة المفاتيح – الروسية. وعلاوة على ذلك، تم اختيار جميع المعلمات كما في التجربة 2.

دعونا نلقي نظرة على إعدادات لغة واجهة المستخدم الافتراضية. نقوم بتنفيذ الأمر "Dism /online /Get-Intl" ونرى "لغة واجهة المستخدم الافتراضية للنظام: en-US". في الأداة الإضافية "إدارة الكمبيوتر"، قم بإنشاء مستخدم "مستخدم"، وأضف حزمة إعداد، وانتقل إلى حساب "المستخدم"، وسيعمل الأكشاك المتعددة.

نحن نحاول كسر الكشك عن طريق تغيير لغة واجهة المستخدم الافتراضية. نذهب إلى المستخدم "الاختباري"، الذي تم إنشاؤه عند تشغيل النظام لأول مرة ونقوم بتمكين تسجيل الدخول التلقائي له حتى لا يتم تشغيل النظام في حساب "المستخدم" على الفور. قم بتنفيذ "netplwiz"، وحدد المستخدم "اختبار"، وقم بإلغاء تحديد خانة الاختيار "يلزم اسم المستخدم وكلمة المرور" وقم بتطبيق المعلمات.

التمهيد من محرك أقراص فلاش إلى WinPE. قم بتنفيذ الأمر "Dism /image:E: /Set-UILang:ru-ru". نحن ننظر إلى النتيجة وننفذ "Dism /image:E: /Get-Intl" ونرى "لغة واجهة المستخدم الافتراضية للنظام: ru-RU".

نقوم بالتمهيد إلى النظام، ونحاول تسجيل الدخول إلى حساب "المستخدم"، ويعمل الأكشاك المتعددة. أولئك. لا يمكن كسره. هل من الممكن جعل الأمر يعمل بهذه الطريقة؟

التجربة 7

نقوم بتحميل صورة النظام - سكانها ينالون الجنسية الروسية في وضع التدقيق.

نطلق "Sysprep.bat"، حدد النقطة 2. نقوم بالتمهيد إلى النظام، وننشئ المستخدم "مستخدم" في الأداة الإضافية "إدارة الكمبيوتر"، ونضيف حزمة الإعداد، وننتقل إلى حساب "المستخدم"، متعدد كشك لا يعمل.

التمهيد من محرك أقراص فلاش إلى WinPE. قم بتنفيذ الأمر "Dism /image:E: /Set-UILang:en-us". ننظر إلى النتيجة وننفذ "Dism /image:E: /Get-Intl" ونرى "لغة واجهة المستخدم الافتراضية للنظام: en-US".

نقوم بالتمهيد إلى النظام، نحاول تسجيل الدخول إلى حساب "المستخدم"، لا يعمل Multikiosk.

اتضح أنه من خلال تغيير إعداد لغة واجهة المستخدم الافتراضية، يمكنك التأثير على أداء الأكشاك المتعددة فقط عندما يكون النظام في وضع التدقيق أو عند التمهيد الأول بعد إغلاق النظام. هذا يعني أنه سيتعين عليك إغلاق النظام بملف استجابة يتم فيه تحديد لغة النظام باللغة الإنجليزية، ثم تغيير إعدادات النظام بحيث تكون الواجهة روسية. ليس حلاً جيدًا جدًا. ربما يمكن حل المشكلة عن طريق تثبيت حزمة لغة أو تثبيت حزم لغات إضافية؟

التجربة 8

نقوم بتحميل صورة النظام - باللغة الإنجليزية في وضع التدقيق.

نحن نتصل بالإنترنت، في معلمات النظام، انتقل إلى قسم "اللغة"، وحدد "إضافة لغة"، وحدد اللغة "الروسية"، وانقر فوق "التالي"، واترك معلمات التثبيت كإعداد افتراضي، وانقر فوق "تثبيت"، بعد التثبيت حزمة اللغة التي نقوم بإعادة تشغيل النظام، والآن على سكانها ينالون الجنسية الروسية. افصل النظام عن الإنترنت، قم بتشغيل "Sysprep.bat"، حدد النقطة 2.

بعد تحميل النظام، في الأداة الإضافية "إدارة الكمبيوتر"، قم بإنشاء مستخدم "المستخدم"، وأضف حزمة التحضير، وانتقل إلى حساب "المستخدم"، فالكشك المتعدد لا يعمل.

التجربة 9

دعونا نحاول ترويس النظام قبل التثبيت، في وضع غير متصل بالشبكة. وفي الوقت نفسه سيكون هناك برنامج تعليمي قصير حول توطين التوزيع.

آخذ محرك أقراص فلاش بتوزيع أصلي نظيف - X21-96381. سيكون محرك الأقراص "E". لتحميل الصور، أقوم بإنشاء مجلدات: "c:MountInstall"، "c:MountWinre"، "c:MountBoot". وأغتنم مجموعة من حزم الترجمة - X21-87814. وفي المجلد "c:Mount" أنسخ الحزم منه: "Microsoft-Windows-Client-Language-Pack_x86_ru-ru.cab"، "lp.cab"، "WinPE-Setup_ru-ru.cab". أقوم بتشغيل وحدة التحكم بحقوق المسؤول. أعتقد أن الأوامر الأخرى ستكون واضحة دون تعليق.

أوامر الترجمة

cd c:mount
dism /Mount-Wim /WimFile:e:sourcesinstall.wim /index:1 /MountDir:Installcode
dism /Image:Install /Add-Package /PackagePath:Microsoft-Windows-Client-Language-Pack_x86_ru-ru.cabcode
dism /Image:Installcode /Set-AllIntl:ru-ru
dism /Image:Install /Set-TimeZone:"Russian Standard Time"code

dism /Mount-Wim /WimFile:InstallWindowsSystem32RecoveryWinre.wim /index:1 /MountDir:Winrecode
dism /Image:Winre /Add-Package /PackagePath:lp.cabcode
dism /Image:Winrecode /Set-AllIntl:ru-ru
dism /Image:Winre /Set-TimeZone:"Russian Standard Time"code
dism /Unmount-Image /MountDir:Winre /Commitcode

dism /Image:Install /Gen-LangINI /distribution:E: /Set-AllIntl:ru-RUcode
dism /image:Install /Set-SetupUILang:RU-ru /distribution:E:code
dism /Unmount-Image /MountDir:Install /Commitcode

dism /mount-wim /wimfile:e:sourcesboot.wim /index:1 /mountdir:Bootcode
dism /Image:Boot /Add-Package /PackagePath:lp.cabcode
dism /Image:Bootcode /Set-AllIntl:ru-ru
copy e:sourceslang.ini Bootsourceslang.inicode
dism /Unmount-Image /MountDir:Boot /Commitcode

dism /mount-wim /wimfile:e:sourcesboot.wim /index:2 /mountdir:Bootcode
dism /Image:Boot /Add-Package /PackagePath:lp.cabcode
dism /Image:Boot /Add-Package /PackagePath:WinPE-Setup_ru-ru.cabcode
dism /Image:Bootcode /Set-AllIntl:ru-ru
copy e:sourceslang.ini Bootsourceslang.ini /ycode
dism /Unmount-Image /MountDir:Boot /Commit

نقوم بالتمهيد من محرك الأقراص المحمول واختيار اللغة الروسية وتثبيت النظام على قرص فارغ. عندما يطلب منك النظام تحديد منطقة، اضغط على "Ctrl+Shift+F3". في الأداة الإضافية "إدارة الكمبيوتر"، قم بإنشاء مستخدم "مستخدم"، وأضف حزمة إعداد، وانتقل إلى حساب "المستخدم"، فالكشك المتعدد لا يعمل.

التمهيد من محرك أقراص فلاش إلى WinPE. قم بتنفيذ الأمر "Dism /image:E: /Set-UILang:en-us".

نقوم بالتمهيد إلى النظام، ونحاول تسجيل الدخول إلى حساب "المستخدم"، ويعمل الأكشاك المتعددة.

يبدو أن المشكلة ليست في طرق إضافة الحزمة، فلنحاول إضافة حزم إضافية.

التجربة 10

نأخذ محرك الأقراص المحمول الذي أعددناه في الخطوة السابقة.

نحن نأخذ حزمة "Feat on Demand" - X21-87815. أقوم بنسخ الحزم منه إلى المجلد "c:Mount": «Microsoft-Windows-LanguageFeatures-Basic-ru-ru-Package~31bf3856ad364e35~x86~~.cab», «Microsoft-Windows-LanguageFeatures-OCR-ru-ru-Package~31bf3856ad364e35~x86~~.cab», «Microsoft-Windows-LanguageFeatures-Handwriting-ru-ru-Package~31bf3856ad364e35~x86~ ~.cab», «Microsoft-Windows-LanguageFeatures-TextToSpeech-ru-ru-Package~31bf3856ad364e35~x86~~.cab».

Берем пакет «Feat on Demand RDX Updt» – X21-99781. В папку «c:Mount» копирую из него пакеты: «Microsoft-Windows-RetailDemo-OfflineContent-Content-Package~31bf3856ad364e35~x86~~.cab», « Microsoft-Windows-RetailDemo-OfflineContent-Content-ru-ru-Package~31bf3856ad364e35~x86~~.cab».

قم بتشغيل وحدة التحكم بحقوق المسؤول وقم بتنفيذ الأوامر:

الأوامر

cd c:mount
dism /Mount-Wim /WimFile:e:sourcesinstall.wim /index:1 /MountDir:Install
dism /Add-Package /Image:Install /PackagePath:Microsoft-Windows-LanguageFeatures-Basic-ru-ru-Package~31bf3856ad364e35~x86~~.cab
dism /Add-Package /Image:Install /PackagePath:Microsoft-Windows-LanguageFeatures-OCR-ru-ru-Package~31bf3856ad364e35~x86~~.cab
dism /Add-Package /Image:Install /PackagePath:Microsoft-Windows-LanguageFeatures-Handwriting-ru-ru-Package~31bf3856ad364e35~x86~~.cab
dism /Add-Package /Image:Install /PackagePath:Microsoft-Windows-LanguageFeatures-TextToSpeech-ru-ru-Package~31bf3856ad364e35~x86~~.cab
dism /Add-Package /Image:Install /PackagePath:Microsoft-Windows-RetailDemo-OfflineContent-Content-Package~31bf3856ad364e35~x86~~.cab
dism /Add-Package /Image:Install /PackagePath:Microsoft-Windows-RetailDemo-OfflineContent-Content-ru-ru-Package~31bf3856ad364e35~x86~~.cab
dism /Unmount-Image /MountDir:Install /Commit

نقوم بالتمهيد من محرك الأقراص المحمول واختيار اللغة الروسية وتثبيت النظام على قرص فارغ. عندما يطلب منك النظام تحديد منطقة، اضغط على "Ctrl+Shift+F3". في الأداة الإضافية "إدارة الكمبيوتر"، قم بإنشاء مستخدم "المستخدم"، وأضف حزمة التزويد، وقم بتسجيل الدخول إلى حساب "المستخدم". حصلت على شاشة سوداء معلقة لفترة طويلة، لذلك قمت بتشغيل النظام بسرعة.

نقوم بحذف حزمة التحضير، وتسجيل الدخول باسم "المستخدم"، وإعادة تشغيل النظام، وإضافة حزمة التحضير، ولا يعمل الأكشاك المتعددة.

التمهيد من محرك أقراص فلاش إلى WinPE. قم بتنفيذ الأمر "Dism /image:E: /Set-UILang:en-us".

نقوم بالتمهيد إلى النظام، ونحاول تسجيل الدخول إلى حساب "المستخدم"، ويعمل الأكشاك المتعددة.

الحل البديل

أبطال عاديون. إنهم دائما يأخذون منعطفا!

لم تحل الطرق المختلفة لتثبيت حزم الترجمة المشكلة، مما يعني أنه سيتعين عليك تثبيت لغة "en-us" في التمهيد الأول بعد الختم، وتغيير إعدادات اللغة بعد التمهيد الأول.

نقوم بتحميل صورة النظام - سكانها ينالون الجنسية الروسية في وضع التدقيق.

في ملف "Unattend.xml"، أدخل "en-US" في المعلمة، وقم بتشغيل "Sysprep.bat"، وحدد النقطة 2 وشاهد ما حصلنا عليه. شاشة الترحيب باللغة الإنجليزية، وتعمل الأكشاك المتعددة. هذا يعني أنك بحاجة إلى إضافة أمر إلى "Unattend.xml" لتغيير لغة الترحيب. وللقيام بذلك، تحتاج إلى تشغيل الأمر "control intl.cpl,, /f:" الذي يشير إلى ملف التكوين، والذي سيحدد نسخ المعلمات الحالية إلى شاشة الترحيب. سوف تبدو محتويات ملف التكوين بهذا الشكل.

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

لأن سوف نقوم بنسخ إعدادات المستخدم الحالي، ثم يجب تنفيذ الأمر بعد تسجيل دخول المستخدم، مما يعني أننا سنحتاج. هناك علامة "لكن" صغيرة واحدة، سيتم التنفيذ بعد أن يقوم المستخدم الذي لديه حقوق المسؤول بتسجيل الدخول. ولا أرغب في إنشاء ملف إضافي ضروري لتشغيل الأمر بنجاح. من الأفضل تنفيذ الحل بأكمله في ملف واحد - "Unattend.xml". للقيام بذلك، ستحتاج ببساطة إلى تشغيل أمر يقوم بإنشاء ملف التكوين. أعتقد أنني سأقوم بإنشاء ملف تكوين باستخدام الأمر "echo" في بيئة "cmd"، ولكنه يحتاج إلى الهروب من الأقواس الزاوية باستخدام محيط. أولئك. لإنشاء ملف التكوين، يتم الحصول على الأمر التالي.

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.
يمكنك العثور على إجابات لبعض الأسئلة في ويكي لدينا أو على موقعنا قناة يوتيوب

كاتب المقال: فلاديمير بوريسينكوف، الخبير الفني في شركة Quarta Technologies.

المصدر: www.habr.com