Windows 10 IoT Enterprise 2019 - ملٹی کیوسک موڈ

تعارف

ونڈوز 10 IoT انٹرپرائز 2019 ونڈوز 10 کی اگلی ریلیز کا مارکیٹنگ نام ہے۔ اس ورژن کی ریلیز کا اعلان بالترتیب ستمبر 2018 میں کیا گیا تھا، اس کا ورژن 1809 ہے، 18 سال ہے، 09 مہینہ ہے۔ ونڈوز 10 1809 کی نئی ریلیز پر بہت سے مضامین لکھے گئے ہیں، لیکن ان میں سے زیادہ تر مختلف "بوز"، "خوبصورتی" اور مختلف فنکشنلٹی کے لیے وقف ہیں جن کی گھر پر مانگ ہے۔
اس مضمون میں صرف اس فعالیت پر بات کی جائے گی جس کی فکسڈ پرپز ڈیوائسز کے مینوفیکچررز میں مانگ ہو سکتی ہے۔ یعنی، "کیوسک" موڈ کی نئی صلاحیتوں کے بارے میں۔ انٹرپرائز سیگمنٹ کے ونڈوز ایڈیشنز کے لیے سروس اسکیموں کے نام تبدیل کرنے کے موضوع پر بھی بات کی جائے گی۔

نئے نام کے ساتھ پرانی سروس سکیم

مجھے ایک مختصر وضاحت کے ساتھ شروع کرنے دو: ونڈوز ایڈیشن کے کارپوریٹ سیگمنٹ میں دو سروس اسکیمیں ہیں جن کے مطابق ونڈوز اپ ڈیٹس حاصل کرتا ہے۔ سروس اسکیموں میں ایک خط کا عہدہ ہوتا ہے۔ فی الحال سروس برانچوں کو LTSC اور SAC کہا جاتا ہے۔

LTSC کا مطلب ہے۔ طویل مدتی سروسنگ چینل (طویل مدتی دیکھ بھال کے ساتھ)۔ پہلے ایسے چینل کو ایل ٹی ایس بی - لانگ ٹرم سروِسنگ برانچ کہا جاتا تھا۔مائیکروسافٹ نے سروس چینل کا نام ہی بدل دیا، سروس خود وہی رہی۔

مائیکروسافٹ نے سروس برانچ کا نام بھی تبدیل کر دیا CBB - موجودہ برانچ فار بزنس، اب اس سروس برانچ کو SAC کہا جاتا ہے۔ نیم سالانہ چینل. ایک بار پھر، صرف نام بدل گیا ہے۔

لیکن یہ ذکر کرنا چاہیے کہ LTSC اور SAC سروسنگ برانچیں مختلف ونڈوز ڈسٹری بیوشنز استعمال کرتی ہیں۔

SAC میں نئے کیوسک موڈ کے بارے میں تھوڑا سا

جیسا کہ میں پہلے ہی کہہ چکا ہوں، LTSC اور SAC کی تقسیم مختلف ہے۔ LTSC کے پاس معیاری یونیورسل ایپس یا ایپ اسٹور نہیں ہے، لیکن SAC کے پاس ہے۔ اس کے مطابق، LTSC کے پاس Edge براؤزر نہیں ہے، لیکن SAC کے پاس ہے۔ اگر آپ کیوسک سیٹ اپ کرتے وقت ایج براؤزر کا انتخاب کرتے ہیں، تو اب دو موڈ دستیاب ہیں:

  1. ڈیجیٹل سائن یا انٹرایکٹو ڈسپلے کے طور پر
  2. ایک عوامی براؤزر کی طرح

میں ان طریقوں کو ترتیب دینے پر غور نہیں کروں گا، کیونکہ... سیٹ اپ بہت آسان ہے اور گرافیکل انٹرفیس میں کیا جاتا ہے۔ بس ایک ایسا صارف بنائیں جو ایڈمنسٹریٹرز گروپ کا ممبر نہ ہو، اس کے لیے EDGE کا استعمال کرتے ہوئے کیوسک موڈ کو فعال کریں اور دیکھیں کہ یہ طریقے کیسے کام کرتے ہیں۔

بہت سے ایپلی کیشنز کے ساتھ کیوسک

کچھ لوگوں کا خیال ہے کہ لائسنس یافتہ استعمال ونڈوز 10 آئی او ٹی انٹرپرائز آلہ پر صرف ایک ایپلیکیشن کے آپریشن کا مطلب ہے، حقیقت میں ایسا نہیں ہے۔ ڈیوائس کو ایک کاروباری کام انجام دینے کے لیے ڈیزائن کیا جانا چاہیے اور صارف کو ڈیسک ٹاپ تک رسائی نہیں ہونی چاہیے۔ اب خود مائیکروسافٹ نے بہت سی ایپلی کیشنز کو استعمال کرنے کا ٹول دیا ہے۔ اس موڈ کو "ملٹی ایپ کیوسک" کہا جاتا ہے؛ اس کے بعد، اختصار کے لیے، میں اسے "ملٹی کیوسک" کہوں گا۔ اس مضمون میں ہم سافٹ ویئر پیکج اور اس موڈ کی کچھ خصوصیات کا استعمال کرتے ہوئے اس موڈ کو ترتیب دینے پر غور کریں گے۔

ملٹی کیوسک موڈ کے بارے میں تھوڑا سا

جب آپ کسی ایسے صارف اکاؤنٹ میں لاگ ان ہوتے ہیں جس کے لیے ملٹی کیوسک موڈ کنفیگر ہوتا ہے، تو سسٹم ٹیبلیٹ موڈ میں کام کرے گا۔ اسٹارٹ مینو پوری اسکرین پر پھیل جائے گا، ایپلیکیشن ٹائلز دکھائے گا۔

بنیادی ترتیبات اور موڈ کی صلاحیتوں کی فہرست:

  1. متعدد صارفین یا گروپس کے لیے ترتیب دینا
  2. ہر صارف یا گروپ کو انفرادی ترتیبات تفویض کی جا سکتی ہیں۔
  3. یونیورسل اور کلاسک ایپلی کیشنز کو استعمال کرنے کی صلاحیت
  4. صارف کے لاگ ان ہونے پر ایپلیکیشنز میں سے ایک کو خود بخود لانچ کرنے کی صلاحیت
  5. وائٹ لسٹ شدہ ایپلی کیشنز
  6. سفید فہرست کا استعمال کرتے ہوئے فولڈرز تک رسائی حاصل کرنا

پوائنٹ 5 پر توجہ دینے کے قابل ہے۔ پہلے سے طے شدہ طور پر، صرف وہی ایپلی کیشنز جو سسٹم کو چلانے کے لیے ضروری ہیں کام کرنے کی اجازت دی جائے گی؛ دیگر ایپلی کیشنز کو اجازت دی گئی فہرست میں شامل کرنا ضروری ہے۔ وہ. اب آپ کو AppLocker کو الگ سے کنفیگر کرنے کی ضرورت نہیں ہے۔ ویسے، AppLocker سیٹنگز کے ساتھ تنازعات سے بچنے کے لیے، ملٹی کیوسک موڈ میں، AppLocker کے تمام کنفیگر کردہ قوانین لاگو نہیں ہوں گے۔

پوائنٹ 6 ایک اچھے آپشن کی نشاندہی کرتا ہے، لیکن اس وقت صرف "ڈاؤن لوڈز" فولڈر کو تحریری اجازت دینا ممکن ہے۔ موڈ آپ کو یونیورسل اور کلاسک ایپلی کیشنز استعمال کرنے کی اجازت دیتا ہے۔ تمام موڈ سیٹنگز ایک XML فائل میں بتائی گئی ہیں، جس میں آپ ایک ایپلیکیشن کیوسک کے لیے سیٹنگز بھی بتا سکتے ہیں۔

اب ہم سب کو ترتیب دینے کی کوشش کرتے ہیں...

ہمیں کیا چاہیے...

  1. سب سے پہلے، ہمیں خود سسٹم کی ضرورت ہے، جو ملٹی کیوسک موڈ کو سپورٹ کرتا ہے۔ یہاں آپ ڈاؤن لوڈ کر سکتے ہیں۔ ڈیمو ورژن
  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

لانچ ہونے پر، اسکرپٹ "ایڈمن" اکاؤنٹ کی موجودگی کی جانچ کرے گا اور اگر یہ غائب ہے تو ایک بنائے گا۔ اکاؤنٹ کو ایڈمنسٹریٹرز گروپ میں شامل کر دیا جائے گا۔

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" فولڈر میں کاپی کرنا نہ بھولیں۔ یہ OS لوڈ کرنے سے پہلے کرنے کی ضرورت ہوگی۔ OS لوڈ کرنے کے بعد، "WindowsSystem32Recovery" ڈائریکٹری پہلے سے ہی خالی ہو جائے گی۔

مرحلہ 3 - سسٹم کی رسیفیکیشن

اگر آپ کے پاس یہ پیک ہے تو لینگویج پیک کو انٹرنیٹ کنکشن کے بغیر انسٹال کیا جا سکتا ہے۔ اگر نہیں، تو سسٹم خود اسے انٹرنیٹ سے ڈاؤن لوڈ کرے گا جب آپ سیٹنگز میں زبان شامل کریں گے۔ صرف OS کے پچھلے ورژن سے لینگویج پیک لینے کی ضرورت نہیں ہے۔ Windows 10 1809 کے لیے خاص طور پر Windows 10 1809 کے لیے ایک زبان کا پیک ہونا ضروری ہے۔

مائیکروسافٹ کلاسک مینو سے بتدریج سیٹنگز کو نئے میں منتقل کرنے کے اپنے منصوبے پر عمل کر رہا ہے، اس لیے کلاسک کنٹرول پینل میں آپ کو اب زبان تبدیل کرنے اور لینگویج پیک انسٹال کرنے کی سیٹنگز نہیں ملیں گی۔ یہ ترتیبات اب صرف سسٹم کے پیرامیٹرز میں ہیں۔

آڈٹ موڈ میں، آپ کو اسٹارٹ مینو سے سسٹم سیٹنگ کھولنے میں دشواری کا سامنا کرنا پڑ سکتا ہے؛ سسٹم سیٹنگز کو کھولنے کے لیے، کمانڈ چلائیں - "ms-settings:"، کمانڈ کے آخر میں بڑی آنت پر توجہ دیں، اس کے بغیر کمانڈ کام نہیں. اس کمانڈ کو استعمال کرنے کے بعد سسٹم کے پیرامیٹرز کو کھولنے کے بعد، اسے گرافیکل مینو کا استعمال کرتے ہوئے کھولا جا سکتا ہے۔

لیکن سسٹم سیٹنگز میں آپ لینگویج پیک انسٹال کر سکتے ہیں اگر سسٹم انٹرنیٹ سے کنیکٹ ہو تو مقامی فائل سے لینگویج پیک انسٹال کرنے کا انتخاب کرنے کا کوئی آپشن نہیں ہے۔

میں سسٹم کو لوکلائز کرنے کے عمل کی وضاحت نہیں کروں گا کیونکہ... یہ مضمون کو نمایاں طور پر پیچیدہ کر دے گا، خاص طور پر چونکہ لوکلائزیشن کا عمل مفصل ہے۔ یہاں بیان کیا گیا ہے. لیکن میں آپ کی توجہ کنسول کا استعمال کرتے ہوئے لینگویج پیک انسٹال کرنے کے بعد سسٹم لینگویج کو تبدیل کرنے کی خاصیت کی طرف مبذول کرانا چاہتا ہوں۔ یہ خصوصیت اسی ویکی میں بیان کی گئی ہے جس کا میں نے پہلے ذیلی حصے میں لنک فراہم کیا تھا۔ "زبانوں کی فہرست میں ایک زبان کا اضافہ".

میں انٹرنیٹ کنکشن کے بغیر لینگویج پیک انسٹال کروں گا۔

سسٹم کی مکمل لوکلائزیشن کے بعد، سسٹم کی تصویر بنانا یقینی بنائیں۔

مرحلہ 4 - ضروری ایپلیکیشنز انسٹال کریں۔

کیونکہ چونکہ LTSB اور LTSC سسٹم میں ایپلیکیشن اسٹور نہیں ہوتا ہے، اس لیے مائیکروسافٹ اسٹور سے ایپلی کیشنز کو انسٹال کرنے میں کچھ مشکلات پیدا ہوتی ہیں، یعنی ایپلی کیشن ڈاؤن لوڈ کرنا۔ ایپلی کیشنز ڈاؤن لوڈ کرنے کے لیے ایڈگارڈ کمپنی نے ایک بہت ہی آسان سروس فراہم کی ہے۔ "ایڈگارڈ اسٹور"جس کے ساتھ آپ ایپلیکیشنز اور ان کے اجزاء کے لیے عارضی ڈاؤن لوڈ لنکس حاصل کر سکتے ہیں۔

ایپلیکیشن انسٹال کرنے کے لیے، آپ کو "Appx" اور "AppxBundle" ایکسٹینشن والی فائلز کی ضرورت ہوگی۔ ایپلی کیشن کو انسٹال کرنے سے پہلے، آپ کو اس کے اجزاء کو انسٹال کرنا ہوگا۔ ایک اصول کے طور پر، کسی ایپلیکیشن کے اجزاء کو فائل کے نام سے بدیہی طور پر پہچانا جا سکتا ہے۔

مضمون کو زیادہ لمبا نہ کرنے کے لیے، میں ایپلی کیشنز کو انسٹال کرنے کے عمل کو تفصیل سے نہیں بتاؤں گا، خاص طور پر چونکہ انسٹالیشن کے بارے میں معلومات موجود ہیں۔ تفصیلی ہدایات. لیکن میں آپ کے کرنٹ اکاؤنٹ میں ایپلیکیشنز انسٹال کرنے کا ایک اور طریقہ شامل کروں گا۔ پروگرام کا استعمال کرتے ہوئے ایپلی کیشنز انسٹال کی جا سکتی ہیں۔ "ایپ انسٹالر"، لیکن ایپلی کیشنز کو انسٹال کرنے کے لیے آپ کو انٹرنیٹ کنکشن کی ضرورت ہوگی، لیکن ایپلی کیشنز کو ڈبل کلک سے انسٹال کیا جا سکتا ہے اور آپ کو اس کے اجزاء کی ضرورت نہیں ہوگی، تمام ضروری اجزاء ڈاؤن لوڈ اور انسٹال ہوں گے۔ "ایپ انسٹالر".

اور ایک چھوٹی سی یاد دہانی، کرنٹ اکاؤنٹ میں ایپلیکیشن انسٹال کرتے وقت، آپ سسٹم کو سیل نہیں کر پائیں گے۔ ایپلی کیشنز کو کیسے انسٹال کریں تاکہ آپ سسٹم کو سیل کر سکیں، اوپر دی گئی ہدایات دیکھیں۔ اور ملٹی کیوسک کے آپریشن کو چیک کرنے کے لیے، موجودہ ایپلی کیشنز کافی ہیں۔

مرحلہ 5 – ملٹی کیوسک کے لیے کنفیگریشن فائل بنانا

اب ہم سب سے دلچسپ حصے پر آتے ہیں - کیوسک موڈ کو ترتیب دینا۔ آئیے دیکھتے ہیں۔ ہدایات ترتیبات کے مطابق جو ہم دیکھتے ہیں۔ سب سے پہلے، ہمیں ایک XML کنفیگریشن فائل بنانے کی ضرورت ہوگی، جس کی مکمل مثال یہاں دیکھی جا سکتی ہے۔ یہاں دیکھو.

آئیے ٹائل لے آؤٹ کو ترتیب دے کر شروع کریں۔ XML ٹائل حسب ضرورت کنفیگریشن بنانے کا سب سے آسان طریقہ ہے۔ ان کی موجودہ حالت برآمد کریں۔.

سب سے پہلے، آئیے ان ایپلی کیشنز کی ٹائلیں شامل کریں جن کی ہمیں اسٹارٹ مینو میں ضرورت ہے۔ تلاش "Win+s" کو کال کریں، مطلوبہ ایپلیکیشن تلاش کریں، اس پر دائیں کلک کریں اور "Pin to Start Screen" کو منتخب کریں۔

میں نے درج ذیل ایپس کو پن کیا ہے:

  • نوٹ پیڈ۔
  • کیلکولیٹر۔
  • انٹرنیٹ ایکسپلورر
  • پینٹ
  • ورڈ پیڈ
  • پیرامیٹر
  • ونڈوز سیکیورٹی۔

آخری دو ایپلیکیشنز کو پن کیا گیا تھا کیونکہ... معیاری LTSC پیکج میں محض کوئی اور یونیورسل ایپلی کیشنز نہیں ہیں۔ نوٹ کریں کہ ڈیسک ٹاپ ٹائلیں شارٹ کٹ سے منسلک ہوتی ہیں۔ اب، ٹائلوں کو براہ راست سٹارٹ مینو میں منتقل کر کے، میں پن کی ہوئی ٹائلوں کو دو گروپوں میں الگ کروں گا۔ ٹائلوں کا ایک نیا گروپ بنانے کے لیے، ایک ٹائل کو دیگر ٹائلوں سے نمایاں طور پر اونچا یا نیچے گھسیٹیں، جو ایک بدیہی تقسیم کو نمایاں کرے گا۔ آپ اپنی صوابدید پر گروپوں کے نام رکھ سکتے ہیں؛ ایسا کرنے کے لیے، ماؤس کرسر کو گروپ کے اوپر رکھیں، اور جب "گروپ کو نام دیں" لکھا ہوا ظاہر ہو تو بائیں ماؤس کے بٹن پر کلک کریں۔ میں پہلے گروپ کو "Settings" کہوں گا، اس میں "Settings" اور "Windows Security" ٹائلیں شامل ہوں گی۔ میں دوسرے گروپ کو "آفس ایپلی کیشنز" کہوں گا، جس میں دیگر تمام ٹائلیں شامل ہوں گی۔ ویسے، آپ گروپ کے نام کے اوپری دائیں جانب واقع دو پٹیوں کا استعمال کرتے ہوئے ٹائلوں کے پورے گروپ کو گھسیٹ کر منتقل کر سکتے ہیں۔

کیونکہ "Windows Security" ٹائل پر یہ نام مکمل طور پر فٹ نہیں ہے، میں اس کا سائز بدل کر "Wide" کر دوں گا۔ ٹائل کا سائز تبدیل کرنے کے لیے، ٹائل پر دائیں کلک کریں اور "سائز تبدیل کریں" کو منتخب کریں۔

کنفیگریشن کے بعد، ہم موجودہ حالت کو ایکسپورٹ کرتے ہیں اور پاور شیل ماحول میں کمانڈ پر عمل کرتے ہیں - "Export-StartLayout - پاتھ C:SysprepStartLayout.xml"۔

اگلا، سب سے آسان طریقہ یہ نہیں ہے کہ سیٹنگز فائل خود بنائیں، لیکن یہاں سے ایک مثال فائل لیں۔ ترتیبات - "کاپی" بٹن پر کلک کریں، مواد کو نوٹ پیڈ میں پیسٹ کریں اور "MultiAppKiosk.xml" کے بطور محفوظ کریں۔ اب ہم اپنی سیٹنگز کو تبدیل کرتے ہیں۔ منسلک ٹائلوں کی سیٹنگز کو تبدیل کرنے کے لیے، پورے "StartLayoutCollection" بلاک کو "StartLayout.xml" سے "MultiAppKiosk.xml" میں کاپی کریں۔ اجازت یافتہ ایپلی کیشنز میں ایپلی کیشنز کو شامل کرنے کے لیے، آپ کو "AllowedApps" سیکشن میں یونیورسل ایپلیکیشن شناخت کنندگان کو داخل کرنے کی ضرورت ہے اور اسی بلاک میں کلاسک ایپلی کیشنز کی ایگزیکیوٹیبل فائلوں کا مکمل راستہ شامل کرنا ہوگا، جو کہ شارٹ کٹس کی خصوصیات میں بیان کیا گیا ہے۔ ٹائل کا حوالہ دیتے ہیں. فوری طور پر شارٹ کٹ تک پہنچنے کے لیے، پن کی ہوئی ٹائل پر دائیں کلک کریں اور مزید > فائل لوکیشن پر جائیں۔ نوٹ کریں کہ "AppUserModelId" پیرامیٹر یونیورسل ایپ ID کی وضاحت کرنے کے لیے استعمال کیا جاتا ہے، اور "DesktopAppPath" پیرامیٹر کا استعمال ڈیسک ٹاپ ایپلیکیشن کا پورا راستہ بتانے کے لیے کیا جاتا ہے۔ اور ایک اور چھوٹی بات، اگر آپ x64 سسٹم پر IE استعمال کرنے کا ارادہ رکھتے ہیں، تو اجازت یافتہ ایپلی کیشنز کی فہرست میں آپ کو قابل عمل فائل "Program FilesInternet Exploreriexplore.exe" اور "Program Files (x86)Internet Exploreriexplore کے لیے دو راستے بتانا ہوں گے۔ exe"۔

میں فولڈرز تک رسائی نہیں دوں گا، اس لیے میں "FileExplorerNamespaceRestrictions" سیکشن کو حذف کر رہا ہوں۔

ٹاسک بار کو ڈسپلے کرنا مجھے پریشان نہیں کرتا، اس لیے میں ہر چیز کو اسی طرح چھوڑ دیتا ہوں جیسا کہ یہ "ٹاسک بار" سیکشن میں ہے۔

مثال میں، دو پروفائلز بیان کیے گئے ہیں، لیکن میرے پاس صرف ایک پروفائل ہو گا، اس لیے دوسرے پروفائل والے حصے کو حذف کیا جا سکتا ہے۔ ان انسٹال کرنے سے پہلے، دلائل کے ساتھ ایپلیکیشن کو خود بخود شروع کرنے کی مثال پر توجہ دیں۔

"Configs" سیکشن میں، اکاؤنٹس پروفائلز سے منسلک ہوتے ہیں؛ براہ کرم نوٹ کریں کہ ایک سے زیادہ اکاؤنٹس کو ایک پروفائل سے منسلک کیا جا سکتا ہے۔ لیکن کیونکہ میں صرف ایک اکاؤنٹ میں دلچسپی رکھتا ہوں، پھر میں پہلے والے کو چھوڑ کر تمام پابندیوں کو حذف کر دوں گا - "Config" بلاکس۔ باقی بائنڈنگ میں میں صارف کا نام "User" لکھوں گا۔

مجھے یہ فائل پیرامیٹرز کے ساتھ ملی ہے۔

MultiAppKiosk.xml

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

جب آپ اپنی XML کنفیگریشن فائلیں بناتے ہیں تو یہ نہ بھولیں کہ ہر پروفائل کی ایک منفرد ID ہونی چاہیے، اور نہ صرف ایک XML فائل میں، بلکہ ایک OS کے اندر۔ وہ. مثالی طور پر، الجھن سے بچنے کے لیے، آپ ہر بار ایک نیا شناخت کنندہ بنا سکتے ہیں؛ یہ "[guid]::NewGuid()" کمانڈ کا استعمال کرتے ہوئے پاور شیل ماحول میں کیا جا سکتا ہے۔ اور فائل کو "UTF-8" انکوڈنگ میں محفوظ کرنا یقینی بنائیں؛ اگر فائل "ANSI" انکوڈنگ میں محفوظ کی گئی ہے، تو تیاری پیکج بناتے وقت آپ کو ایک غلطی موصول ہوگی اگر XML فائل میں Cyrillic شامل ہے۔

مرحلہ 6 – ملٹی کیوسک سیٹنگز کا اطلاق کرنا

آئیے کنفیگریشن فائل میں بیان کردہ سیٹنگز کو لاگو کرنے کے دو طریقے دیکھتے ہیں۔ پہلا ایک پروویژننگ پیکج کے ذریعے ہے، جسے ICD میں بنایا جانا چاہیے۔ کچھ کے لئے، شاید یہ طریقہ زیادہ واقف ہو جائے گا. دوسرا "MDM Bridge WMI Provider" استعمال کر رہا ہے، یہ طریقہ مجھے زیادہ آسان معلوم ہوا۔

طریقہ نمبر 1۔

کس کے پاس ICD نہیں ہے؟ ADK ڈاؤن لوڈ کریں۔ اور انسٹال کریں. ADK انسٹال کرنا بہت آسان ہے؛ اجزاء کے سیٹ کو بطور ڈیفالٹ چھوڑا جا سکتا ہے۔

آئی سی ڈی لانچ کریں، "ایڈوانسڈ تیاری" ٹائل پر کلک کریں، پروجیکٹ کا نام اور فولڈر بتائیں اور "اگلا" پر کلک کریں۔ اگلی ونڈو میں، "ونڈوز ڈیسک ٹاپ کے تمام ایڈیشنز" کو منتخب کریں اور "اگلا" پر کلک کریں۔ آپ تیاری کے پیکیج کو درآمد کرنا چھوڑ سکتے ہیں؛ "ختم" پر کلک کریں۔

"رن ٹائم سیٹنگز" ڈراپ ڈاؤن مینو کو پھیلائیں، پھر "AssignedAccess" ذیلی مینیو کو پھیلائیں اور "MultiAppAssignedAccessSettings" کو منتخب کریں۔ آئی سی ڈی ونڈو کے درمیانی حصے کے اوپری حصے میں، "براؤز" بٹن پر کلک کریں اور سیٹنگز کے ساتھ XML فائل کے مقام کی نشاندہی کریں۔ صرف اس صورت میں، آپ "Ctrl+s" دبا کر پروجیکٹ کو محفوظ کر سکتے ہیں۔ ICD کے اوپری بائیں حصے میں، "Export" کو منتخب کریں اور ڈراپ ڈاؤن مینو سے "Provisioning Package" کو منتخب کریں۔ بطور مالک، "IT ایڈمنسٹریٹر" کو منتخب کریں؛ باقی تمام سوالات کو "اگلا" پر کلک کرکے چھوڑا جا سکتا ہے اور آخر میں "تعمیر" اور "ختم" پر کلک کریں۔

انسٹال کردہ سسٹم میں، صارف "صارف" بنانا نہ بھولیں؛ اسے "ایڈمنسٹریٹرز" گروپ میں شامل نہیں کیا جا سکتا، ورنہ ملٹی کیوسک کام نہیں کرے گا۔ میں نے کمپیوٹر مینجمنٹ میں ایک ایسا صارف بنایا جس کی میعاد ختم نہیں ہوتی۔

اب ہم پہلے سے نصب شدہ سسٹم پر تیاری کا پیکج چلاتے ہیں۔ تیاری کے پیکیج کو لاگو کرنے کے بعد، اسٹارٹ مینو اور ایڈمنسٹریٹر کا مینو بدل جائے گا۔ بائیں اسٹارٹ کالم میں بٹنوں کو غائب ہونا چاہئے: "دستاویزات"، "تصویر"، "اختیارات"۔ اگر اسٹارٹ مینو تبدیل نہیں ہوا ہے، تو کچھ غلط ہو گیا ہے۔ انسٹال کردہ پیکیج کو سیٹنگز > اکاؤنٹس > کام یا اسکول اکاؤنٹ تک رسائی > پروویژننگ پیکج ونڈو شامل کریں یا ہٹائیں کو کھول کر ہٹایا جا سکتا ہے۔

اگر اسٹارٹ مینو بدل گیا ہے، تو سیٹنگز سسٹم پر لاگو ہوتی ہیں، اس صارف کے طور پر لاگ ان ہوں جس کے لیے ملٹی کیوسک کو کنفیگر کیا گیا ہے اور نتیجہ دیکھیں۔

طریقہ نمبر 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>

اسکرپٹ کی خصوصیات کے بارے میں تھوڑا سا۔ اسکرپٹ کو "UTF8" انکوڈنگ کے ساتھ XML فائلوں کو استعمال کرنے کے لیے ڈیزائن کیا گیا ہے؛ اگر آپ "ANSI" انکوڈنگ استعمال کرنا چاہتے ہیں، تو فائل پڑھنے کے اختیار سے "انکوڈنگ UTF8" پیرامیٹر کو ہٹا دیں۔ آپ کو XML فائلوں کو "XML" فولڈر میں حروف کو تبدیل کیے بغیر رکھنا چاہیے؛ اسکرپٹ خود خاص حروف کو مناسب عہدوں کے ساتھ بدل دے گا۔ صارفین کو پروفائلز سے منسلک کرنے کے GUIDs میں الجھن میں نہ پڑنے کے لیے، آپ صرف گھوبگھرالی منحنی خطوط وحدانی میں صارف کے نمبر یا نام کی نشاندہی کر سکتے ہیں؛ گھوبگھرالی منحنی خطوط وحدانی میں موجود تمام مواد کو GUIDs سے بدل دیا جائے گا۔

اسکرپٹ کا استعمال بہت آسان ہے، بس اسے چلائیں اور مطلوبہ آئٹم منتخب کریں۔ موجودہ کنفیگریشن کو نئی میں تبدیل کرنے کے لیے، موجودہ کو حذف کرنا ضروری نہیں ہے؛ اسے اوور رائٹ کر دیا جائے گا۔ کنفیگریشن فائل میں بیان کردہ صارفین کو بنانا نہ بھولیں۔

موجودہ ملٹی کیوسک کنفیگریشن کو اسی سیشن میں دیکھتے وقت جس میں اسے لاگو کیا گیا تھا، خاص حروف کی بجائے، متبادل حروف کے مجموعے ظاہر ہوں گے۔ سیشن کو تبدیل کرنے کے بعد (اسکرپٹ کو دوبارہ شروع کرنا)، تمام خصوصی حروف اپنی اصل شکل میں ظاہر ہوں گے۔

مرحلہ 7 - سسٹم کو سیل کرنا

ملٹی کیوسک کام کرتا ہے، ٹھیک ہے، بس، ایسا لگتا ہے...

اگر سب کچھ منصوبہ بندی کے مطابق ہوتا ہے، تو آپ کو کچھ نظر نہیں آرہا ہے۔

یہ نہ بھولیں کہ ہمیں ابھی بھی سسٹم کو آڈٹ موڈ سے ویلکم موڈ میں تبدیل کرنے کی ضرورت ہے۔ ٹھیک ہے، ہم اس کے لیے تیار ہیں، ہم "Sysprep.bat" لانچ کرتے ہیں، پوائنٹ 2 کو منتخب کرتے ہیں، سسٹم کو سیل کر دیا جاتا ہے۔ ہم ڈیوائس کو آن کرتے ہیں، سسٹم بوٹ ہوتا ہے، ہم اس صارف کے اکاؤنٹ میں لاگ ان کرتے ہیں جس کے لیے ملٹی کیوسک کو کنفیگر کیا گیا ہے، لیکن ہم لاگ ان نہیں کر سکتے۔ "خوش آمدید" پیغام کے بعد، "لاگ آؤٹ" پیغام ظاہر ہوتا ہے۔

پہلے میں صرف مسئلے کا حل بیان کرنا چاہتا تھا لیکن بعد میں میں نے مسئلہ کی نشاندہی کرنے اور آسان ترین حل تلاش کرنے کے اقدامات بیان کرنے کا فیصلہ کیا کیونکہ... یقیناً بہت سے قارئین کو مبہم شکوک و شبہات کا سامنا کرنا پڑے گا - "کیا ہوگا اگر ایسا ہو..."۔ میرا خیال ہے کہ اگر آپ کوئی دوسرا حل تلاش کرنا چاہتے ہیں تو مختلف تجربات کو بیان کرنے سے آپ کا کافی وقت بچ جائے گا۔ معلومات کو ہر ممکن حد تک درست بنانے کے لیے، اور ایک بار پھر اس بات کو یقینی بنانے کے لیے کہ کوئی غلطیاں نہیں ہیں، میں تجربات کو "مکمل اور ریکارڈ شدہ" فارمیٹ میں بیان کروں گا۔ وہ. میں بیان کردہ تجربات دوبارہ کروں گا۔

تجربات

ہم نے کیا کیا؟ سسٹم میں دو اکاؤنٹس ہیں:

"ایڈمن" - "ایڈمنسٹریٹرز" گروپ میں
"صارف" - "صارفین" گروپ میں
آڈٹ موڈ میں، ملٹی کیوسک نے کام کیا، لیکن سیل ہونے پر، یہ کام نہیں کرتا تھا۔

تجربہ 1

ہم انسٹال کردہ تیاری کے پیکیج کو حذف کرتے ہیں، "کمپیوٹر مینجمنٹ" کے اسنیپ ان میں ہم صارف "صارف" کو حذف کرتے ہیں اور "صارف" کے نام سے ایک نیا صارف بناتے ہیں، تیاری کے پیکیج کو لاگو کرتے ہیں، "صارف" اکاؤنٹ پر جاتے ہیں - ایسا ہوتا ہے۔ کام نہیں. ہم "ایڈمن" کے نام سے جاتے ہیں، "صارف" گروپ سے صارف "صارف" کو ہٹاتے ہیں، اسے "ایڈمنسٹریٹرز" گروپ میں شامل کرتے ہیں، "صارف" کے نام سے جاتے ہیں - یہ کام نہیں کرتا ہے۔ ہم "ایڈمن" کے نام سے لاگ ان ہوتے ہیں، ملٹی کیوسک کے ساتھ تیاری کے پیکیج کو حذف کرتے ہیں، "صارف" کے نام سے لاگ ان ہوتے ہیں - ہم لاگ ان کرنے میں کامیاب ہو گئے، لیکن یقیناً ملٹی کیوسک موڈ کام نہیں کرتا کیونکہ فراہمی کا پیکیج ہٹا دیا گیا ہے۔

تجربہ 2

ہم سسٹم کی تصویر اپ لوڈ کرتے ہیں - آڈٹ موڈ میں Russified.

OS لوڈ ہو گیا ہے، "Win+r" دبائیں، کیونکہ ہماری sysprep ونڈو خود بخود بند ہو گئی ہے، "sysprep" کمانڈ کو چلائیں، اور کھلنے والی ونڈو میں "sysprep" چلائیں۔ ونڈو میں Sysprep کی ترتیبات: "سسٹم ویلکم ونڈو (OOBE) پر جائیں"، "استعمال کی تیاری"، "ریبوٹ"۔ "OK" پر کلک کریں اور OS کے سلام کا انتظار کریں۔ جب سسٹم پہلی بار بوٹ ہوتا ہے تو ہم ان سوالوں کے جواب دیتے ہیں: "منتخب زبان میں جاری رکھیں؟" - "روسی"؛ خطے - روس؛ کی بورڈ لے آؤٹ - روسی؛ دوسرا کی بورڈ لے آؤٹ شامل کریں - چھوڑیں؛ "آئیے آپ کو نیٹ ورک سے جوڑتے ہیں" - "ابھی کے لیے چھوڑ دیں"؛ انٹرنیٹ سے جڑیں - نہیں؛ لائسنس کا معاہدہ - قبول کریں؛ "اس کمپیوٹر کو کون استعمال کرے گا" - "ٹیسٹ"؛ پاس ورڈ بنانا - فیلڈ کو خالی چھوڑ دیں؛ مختلف آلات پر آسان آپریشن - نہیں؛ رازداری کی ترتیبات - قبول کریں۔ OS لوڈ ہو چکا ہے، "کمپیوٹر مینجمنٹ" اسنیپ ان میں ہم "صارف" کے نام سے ایک صارف بناتے ہیں، تیاری کا پیکیج شامل کرتے ہیں۔ نتیجہ یہ ہے کہ یہ کام نہیں کرتا ہے۔

تجربہ 3

ہم سسٹم کی تصویر اپ لوڈ کرتے ہیں - آڈٹ موڈ میں Russified.

OS لوڈ ہو چکا ہے، سسٹم کو انٹرنیٹ سے جوڑیں، کمانڈ "gpedit.msc" چلائیں اور "Windows Update" سیکشن میں "Anable Recommended updates through automatic updates" آپشن کو فعال کریں، صرف اس صورت میں ریبوٹ کریں۔ اپ ڈیٹ سینٹر میں، "اپ ڈیٹس کے لیے چیک کریں" پر کلک کریں اور تمام اپ ڈیٹس انسٹال ہونے تک ریبوٹ کریں۔ سسٹم کو انٹرنیٹ سے منقطع کریں۔ ہم گرافیکل موڈ میں "sysprep" لانچ کرتے ہیں اور "sysprep" یوٹیلیٹی کو چلانے سے لے کر تیاری کے پیکیج کو شامل کرنے تک پچھلے مرحلے میں بیان کردہ تمام مراحل کو دہراتے ہیں۔ نتیجہ یہ ہے کہ یہ کام نہیں کرتا ہے۔

تجربہ 4

ہم سسٹم کی تصویر - انگریزی آڈٹ موڈ میں اپ لوڈ کرتے ہیں۔

ہم "sysprep" کو گرافیکل موڈ میں لانچ کرتے ہیں، OS کو ان ہی پیرامیٹرز کے ساتھ سیل کرتے ہیں جو کہ تجربہ 2 کے دوران تھا۔ جب سسٹم پہلی بار بوٹ ہوتا ہے، تو ہم علاقائی اور زبان کے پیرامیٹرز کو چھوڑ کر وہی پیرامیٹرز منتخب کرتے ہیں جو تجربہ 2 میں ہوتے ہیں۔ کوئی روسی زبان نہیں ہے۔ اسی طرح، ایک صارف "صارف" بنائیں اور ایک پروویژننگ پیکج شامل کریں۔ نتیجہ یہ ہے کہ یہ کام کرتا ہے۔ وہ. مسئلہ لوکلائزیشن سے متعلق ہے۔

تجربہ 5

ہم سسٹم کی تصویر اپ لوڈ کرتے ہیں - آڈٹ موڈ میں Russified.

"کمپیوٹر مینجمنٹ" اسنیپ ان میں، ایک صارف "صارف" بنائیں، تیاری کا پیکیج شامل کریں، "صارف" اکاؤنٹ پر جائیں، ملٹی کیوسک کام کرتا ہے۔

اپنے اکاؤنٹ سے لاگ آؤٹ کریں اور "ایڈمن" اکاؤنٹ کے تحت لاگ ان کریں۔ ہم ایڈمنسٹریٹر کے حقوق کے ساتھ پاور شیل لانچ کرتے ہیں، "Dism/online/Get-Intl" کمانڈ پر عمل کرتے ہیں اور "ڈیفالٹ یوزر انٹرفیس لینگویج: en-US" دیکھیں۔

ہم فلیش ڈرائیو سے WinPE میں بوٹ کرتے ہیں، تعینات OS میری E ڈرائیو پر ہے۔ ہم "Dism/image:E: /Set-UILang:ru-ru" کمانڈ پر عمل کرتے ہیں۔ ہم نتیجہ دیکھتے ہیں، "Dism/image:E: /Get-Intl" کو عمل میں لاتے ہیں اور "ڈیفالٹ سسٹم UI زبان: ru-RU" دیکھیں۔

ہم سسٹم میں بوٹ کرتے ہیں، "صارف" اکاؤنٹ میں لاگ ان ہوتے ہیں، ملٹی کیوسک کام نہیں کرتا ہے۔

مسئلہ کی وجہ اور اثر کے تعلق کو واضح طور پر قائم کرنے کے لیے، آئیے ملٹی کیوسک کو کام کرنے اور غیر کام کرنے کے لیے دوبارہ کوشش کریں۔

ہم فلیش ڈرائیو سے WinPE میں بوٹ کرتے ہیں، تعینات OS میری E ڈرائیو پر ہے۔ ہم "Dism/image:E: /Set-UILang:en-us" کمانڈ پر عمل کرتے ہیں۔ ہم نتیجہ دیکھتے ہیں، "Dism/image:E: /Get-Intl" کو عمل میں لاتے ہیں اور "ڈیفالٹ سسٹم UI زبان: en-US" دیکھیں۔

ہم سسٹم میں بوٹ کرتے ہیں، "صارف" اکاؤنٹ میں لاگ ان ہوتے ہیں، ملٹی کیوسک کام کرتا ہے۔

ہم فلیش ڈرائیو سے WinPE میں بوٹ کرتے ہیں، تعینات OS میری E ڈرائیو پر ہے۔ ہم "Dism/image:E: /Set-UILang:ru-ru" کمانڈ پر عمل کرتے ہیں۔ ہم نتیجہ دیکھتے ہیں، "Dism/image:E: /Get-Intl" کو عمل میں لاتے ہیں اور "ڈیفالٹ سسٹم UI زبان: ru-RU" دیکھیں۔

ہم سسٹم میں بوٹ کرتے ہیں، "صارف" اکاؤنٹ میں لاگ ان ہوتے ہیں، ملٹی کیوسک کام نہیں کرتا ہے۔

وہ. آپ ڈیفالٹ یوزر انٹرفیس لینگویج پر کیوسک کی کارکردگی کا واضح انحصار دیکھ سکتے ہیں۔ ہوسکتا ہے کہ کچھ اور عوامل ہوں جو ملٹی کیوسک کی کارکردگی کو متاثر کرتے ہیں؟

تجربہ 6

تجربے کی پاکیزگی کے لیے، ہم سسٹم کو دوبارہ بھرتے ہیں۔ ہم سسٹم کی تصویر اپ لوڈ کرتے ہیں - آڈٹ موڈ میں Russified.

ہم گرافیکل موڈ میں "sysprep" کو لانچ کرتے ہیں، OS کو انہی پیرامیٹرز کے ساتھ سیل کرتے ہیں جو تجربہ 2 کے دوران تھا۔ ہم OS کے ہمیں سلام کرنے اور سوالات کے جوابات دینے کا انتظار کرتے ہیں: "منتخب زبان میں جاری رکھیں؟" - "امریکی انگریزی)"؛ خطے - روس؛ کی بورڈ لے آؤٹ – روسی۔ مزید، تمام پیرامیٹرز کو تجربہ 2 کی طرح منتخب کیا گیا تھا۔

آئیے ڈیفالٹ یوزر انٹرفیس لینگویج سیٹنگز کو دیکھتے ہیں۔ ہم "Dism/online/Get-Intl" کمانڈ پر عمل کرتے ہیں اور "ڈیفالٹ سسٹم UI زبان: en-US" دیکھیں۔ "کمپیوٹر مینجمنٹ" اسنیپ ان میں، ایک صارف "صارف" بنائیں، تیاری کا پیکیج شامل کریں، "صارف" اکاؤنٹ پر جائیں، ملٹی کیوسک کام کرتا ہے۔

ہم پہلے سے طے شدہ صارف انٹرفیس کی زبان کو تبدیل کرکے کیوسک کو توڑنے کی کوشش کر رہے ہیں۔ ہم "ٹیسٹ" صارف میں جاتے ہیں، جو اس وقت بنایا گیا تھا جب سسٹم نے پہلی بار بوٹ کیا تھا اور اس کے لیے خودکار لاگ ان کو فعال کرتے ہیں تاکہ سسٹم فوراً "صارف" اکاؤنٹ میں بوٹ نہ ہو۔ "netplwiz" کو عمل میں لائیں، "Test" صارف کو منتخب کریں، "Require username and password" چیک باکس کو غیر چیک کریں اور پیرامیٹرز کو لاگو کریں۔

فلیش ڈرائیو سے WinPE میں بوٹ کریں۔ "Dism/image:E: /Set-UILang:ru-ru" کمانڈ پر عمل کریں۔ ہم نتیجہ دیکھتے ہیں، "Dism/image:E: /Get-Intl" کو عمل میں لاتے ہیں اور "ڈیفالٹ سسٹم UI زبان: ru-RU" دیکھیں۔

ہم سسٹم میں بوٹ کرتے ہیں، "صارف" اکاؤنٹ میں لاگ ان کرنے کی کوشش کرتے ہیں، ملٹی کیوسک کام کرتا ہے۔ وہ. اسے توڑا نہیں جا سکتا. کیا اس طرح کام کرنا ممکن ہے؟

تجربہ 7

ہم سسٹم کی تصویر اپ لوڈ کرتے ہیں - آڈٹ موڈ میں Russified.

ہم "Sysprep.bat" لانچ کرتے ہیں، پوائنٹ 2 کو منتخب کرتے ہیں۔ ہم سسٹم میں بوٹ کرتے ہیں، "کمپیوٹر مینجمنٹ" اسنیپ ان میں صارف "صارف" بناتے ہیں، تیاری کا پیکیج شامل کرتے ہیں، "صارف" اکاؤنٹ پر جاتے ہیں، ملٹی- کیوسک کام نہیں کرتا۔

فلیش ڈرائیو سے WinPE میں بوٹ کریں۔ "Dism/image:E: /Set-UILang:en-us" کمانڈ پر عمل کریں۔ ہم نتیجہ دیکھتے ہیں، "Dism/image:E: /Get-Intl" کو عمل میں لاتے ہیں اور "ڈیفالٹ سسٹم UI زبان: 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" کمانڈ پر عمل کریں۔

ہم سسٹم میں بوٹ کرتے ہیں، "صارف" اکاؤنٹ میں لاگ ان کرنے کی کوشش کرتے ہیں، ملٹی کیوسک کام کرتا ہے۔

بظاہر مسئلہ پیکیج کو شامل کرنے کے طریقوں میں نہیں ہے، آئیے اضافی پیکجز شامل کرنے کی کوشش کرتے ہیں۔

تجربہ 10

ہم فلیش ڈرائیو لیتے ہیں جو ہم نے پچھلے مرحلے میں تیار کی تھی۔

ہم "فیٹ آن ڈیمانڈ" پیکج - 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" لینگویج انسٹال کرنی ہوگی، اور پہلے بوٹ کے بعد لینگویج سیٹنگز کو تبدیل کرنا ہوگا۔

ہم سسٹم کی تصویر اپ لوڈ کرتے ہیں - آڈٹ موڈ میں Russified.

"Unattend.xml" فائل میں، پیرامیٹر میں "en-US" درج کریں، "Sysprep.bat" چلائیں، پوائنٹ 2 کو منتخب کریں اور دیکھیں کہ ہمیں کیا ملا ہے۔ ویلکم اسکرین انگریزی میں ہے، ملٹی کیوسک کام کرتی ہے۔ اس کا مطلب ہے کہ آپ کو سلام کی زبان کو تبدیل کرنے کے لیے "Unattend.xml" میں کمانڈ شامل کرنے کی ضرورت ہے۔ اور ایسا کرنے کے لیے، آپ کو کمانڈ "control intl.cpl,, /f:" چلانے کی ضرورت ہے جو کنفیگریشن فائل کی نشاندہی کرتی ہے، جو موجودہ پیرامیٹرز کو ویلکم اسکرین پر کاپی کرنے کی وضاحت کرے گی۔ کنفیگریشن فائل کا مواد اس طرح نظر آئے گا۔

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

کیونکہ موجودہ صارف کی ترتیبات کو کاپی کرے گا، پھر صارف کے لاگ ان ہونے کے بعد کمانڈ کو عمل میں لانا ہوگا، جس کا مطلب ہے کہ ہمیں ضرورت ہوگی۔ ایک چھوٹا سا "لیکن" ہے، ایڈمنسٹریٹر کے حقوق والے صارف کے لاگ ان ہونے کے بعد عمل درآمد ہوگا۔ اور میں ایک اضافی فائل نہیں بنانا چاہوں گا جس کی کمانڈ کو کامیابی سے چلانے کے لیے درکار ہو گی۔ بہتر ہے کہ پورے حل کو ایک فائل میں لاگو کیا جائے - "Unattend.xml"۔ ایسا کرنے کے لیے، آپ کو صرف ایک کمانڈ چلانے کی ضرورت ہوگی جو کنفیگریشن فائل بناتی ہے۔ مجھے لگتا ہے کہ میں "cmd" ماحول میں "echo" کمانڈ کا استعمال کرتے ہوئے ایک کنفیگریشن فائل بناؤں گا، لیکن اسے سرکم فلیکس کے ساتھ زاویہ بریکٹ سے بچنے کی ضرورت ہے۔ وہ. کنفیگریشن فائل بنانے کے لیے درج ذیل کمانڈ حاصل کی جاتی ہے۔

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

لیکن ہمیں اس کمانڈ کو 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>

آؤ دیکھیں...

ہم سسٹم کی تصویر اپ لوڈ کرتے ہیں - آڈٹ موڈ میں Russified.

ہم Unattend.xml فائل کو ایک نئی فائل میں تبدیل کرتے ہیں، "Sysprep.bat" چلائیں، پوائنٹ 2 کو منتخب کریں اور دیکھیں کہ ہمیں کیا ملا ہے۔ جب آپ پہلی بار بوٹ کرتے ہیں تو ویلکم اسکرین انگریزی میں ہوتی ہے اور سسٹم ریبوٹ ہوجاتا ہے۔ ویلکم اسکرین روسی زبان میں ہے، ملٹی کیوسک کام کرتی ہے۔

اگر آپ کے Windows 10 IoT انٹرپرائز کو ترتیب دینے اور لائسنس دینے کے بارے میں کوئی سوالات ہیں، تو براہ کرم رابطہ کریں: [ای میل محفوظ] یا ویب سائٹ پر quarta-embedded.ru.
آپ کو کچھ سوالات کے جوابات مل سکتے ہیں۔ ہماری ویکی یا ہمارے پر YouTube--

مضمون کے مصنف: ولادیمیر بوریسنکوف، کوارٹا ٹیکنالوجیز کے تکنیکی ماہر۔

ماخذ: www.habr.com