Windows 10 IoT Enterprise 2019 — kiosk-lĂ€get

Introduktion

Windows 10 IoT Enterprise 2019 – den marknadsföringsnamn för nĂ€sta release av Windows 10. Denna version tillkĂ€nnagavs i september 2018 och har version 1809, dĂ€r 18 stĂ„r för Ă„r och 09 för mĂ„nad. MĂ„nga artiklar har skrivits om den nya versionen av Windows 10 1809, men de flesta fokuserar pĂ„ olika "detaljer", "estetik" och olika funktioner som efterfrĂ„gas i hemmiljö.
I denna artikel kommer vi att fokusera pÄ funktioner som kan vara av intresse för producenter av inrÀttade enheter. Specifikt de nya möjligheterna i "Kiosk"-lÀget. Vi kommer ocksÄ att ta upp Àmnet om namnÀndringar för servicemodeller av Windows-redigeringar för företagssegmentet.

Den gamla servicemodellen med ett nytt namn

LÄt mig börja med en kort förklaring: inom företagssegmentet av Windows-redigeringar finns det tvÄ servicemodeller som Windows fÄr uppdateringar genom. Servicemodellerna har bokstavsbenÀmningar. Nu kallas servicelinjerna LTSC och SAC.

LTSC stĂ„r för Long Term Servicing Channel (med lĂ„ngsiktig service). Tidigare kallades denna kanal LTSB – Long Term Servicing Branch. Microsoft har bara Ă€ndrat namnet pĂ„ servicekanalen; sjĂ€lva servicen kvarstĂ„r oförĂ€ndrad.

Microsoft har ocksĂ„ Ă€ndrat namnet pĂ„ servicelinjen CBB – Current Branch for Business; nu kallas denna servicelinje SAC – Semi-Annual Channel. Än en gĂ„ng har det endast skett en namnförĂ€ndring.

Det Àr vÀrt att nÀmna att olika Windows-distributioner anvÀnds för servicelinjerna LTSC och SAC.

Lite om det nya kiosk-lÀget i SAC

Som jag redan nÀmnt har LTSC och SAC olika distributioner. LTSC har inga standardappar och ingen appbutik, medan SAC har det. DÀrför finns det ingen Edge-webblÀsare i LTSC, men det finns i SAC. Om du vÀljer webblÀsaren Edge vid kioskinstÀllningen, finns det nu tvÄ tillgÄngar till lÀgena:

  1. Som en digital skylt eller interaktiv skÀrm
  2. Som en offentlig webblÀsare

Jag kommer inte att gÄ in pÄ hur man stÀller in dessa lÀgen, eftersom instÀllningen Àr mycket enkel och görs i det grafiska grÀnssnittet. Skapa bara en anvÀndare som inte Àr en del av "Administratörer", aktivera kiosk-lÀget med EDGE och se hur dessa lÀgen fungerar.

Kiosk med mÄnga appar

Vissa tror att licensierad anvÀndning av Windows 10 IoT Enterprise förutsÀtter att endast en applikation fungerar pÄ enheten, men i verkligheten Àr det inte sÄ. Enheten bör vara avsedd för att utföra en specifik affÀrsuppgift och anvÀndaren ska inte ha tillgÄng till skrivbordet. Nu har Microsoft sjÀlva gett ett verktyg för att anvÀnda flera applikationer. Det hÀr lÀget kallas "multi-app kiosk", och för korthetens skull kommer jag att kalla det "multikiosk". I denna artikel kommer vi att titta pÄ hur man stÀller in detta lÀge med hjÀlp av ett konfigurationspaket och vissa egenskaper av detta lÀge.

Lite om lÀget "Multikiosk"

Vid inloggning till anvÀndarkontot för vilket multikiosklÀget Àr konfigurerat, kommer systemet att fungera i surfplattelÀge. Startmenyn kommer att expandera till hela skÀrmen, dÀr applikationernas plattor kommer att visas.

Lista över de viktigaste instÀllningarna och funktionerna i lÀget:

  1. Konfiguration för flera anvÀndare eller grupper
  2. Varje anvÀndare eller grupp kan tilldelas individuella instÀllningar
  3. Möjlighet att anvÀnda universella och klassiska applikationer
  4. Möjlighet till automatisk start av en av applikationerna vid inloggning
  5. Applikationernas drift enligt vit lista
  6. TillgÄng till mappar enligt vit lista

Det Àr vÀrt att notera punkt 5. Som standard kommer endast applikationer som Àr nödvÀndiga för systemets funktionalitet att tillÄtas, övriga applikationer mÄste lÀggas till i listan över tillÄtna. D.v.s. nu behöver man inte separat konfigurera AppLocker. För övrigt, för att undvika konflikter med AppLocker-instÀllningar, kommer alla konfigurerade AppLocker-regler i multikiosklÀget att vara inaktiva.

I punkt 6 anges en bra möjlighet, men för nÀrvarande kan man endast ge skrivbehörighet för mappen "Downloads". LÀget tillÄter anvÀndning av bÄde universella och klassiska applikationer. Alla instÀllningar för lÀget anges i en XML-fil, dÀr man ocksÄ kan ange instÀllningar för en kiosk med en applikation.

Och nu ska vi försöka stÀlla in allt detta...

Vad vi behöver...

  1. Först och frÀmst behöver vi sjÀlva systemet som stöder multikiosklÀget. HÀr kan du ladda ner demoversionen
  2. Instruktion för att konfigurera multikiosken
  3. Valfri XML-redigerare
  4. För att tillÀmpa instÀllningarna för multikiosken:
    1. För metod nr 1 – ICD, som ingĂ„r i ADK. ADK kan hĂ€r
    2. För metod nr 2 – verktyget PsExec. Verktyget kan hĂ€r

Han sa – «LĂ„t oss Ă„ka!»

Alla experiment kommer jag att genomföra pÄ Windows 10 IoT Enterprise 1809 LTSC x32 kommersiell version, inte demonstrationsversion. Systemet kommer att vara utan aktivering eftersom avsaknaden av aktivering inte pÄverkar systemets funktionalitet. Jag valde 32 bitar bara för att det tar mindre plats och att arbeta med systemavbilder blir snabbare.

Steg 1 – installation

Installation av Win 10 IoT Enterprise skiljer sig inte frÄn installation av Win 10 Enterprise, sÄ jag kommer inte att beskriva hela installationsprocessen, jag kommer bara att nÀmna nÄgra nyanser.

Som en pÄminnelse, installera inte systemet ovanpÄ en befintlig installation. NÀr installationsprogrammet frÄgar om installationsplatsen, ta bort alla partitioner pÄ den framtida systemdisken och ange oallokerad disk.

Installera systemet utan att koppla upp mot internet, sÄ att systemet inte laddar ner nÄgot onödigt.

Eftersom vi kommer att skapa sĂ€kerhetskopior av systemet och för detta kommer vi att försegla det i revisionslĂ€ge, kan vi spara lite tid genom att ladda systemet i revisionslĂ€ge direkt efter installationen. NĂ€r systemet ber er att vĂ€lja region «LĂ„t oss börja med regionen. Är detta korrekt» tryck bara pĂ„ «Ctrl+Shift+F3».

Steg 2 – skapa systemavbild

Eftersom vi kommer att experimentera med systemet och försöka olika nya instĂ€llningar, Ă€r det inte uteslutet att nĂ„got kan gĂ„ fel och vi behöver Ă„terstĂ€lla systemet till ursprungligt skick. För en snabb Ă„terstĂ€llning till ursprungligt skick behöver vi skapa en systemavbild. Det enda jag kommer att göra Ă€r att kopiera «gentlemannapaketet» – skriptet och svarsfilerna. Alla filer finns i mappen «Sysprep», som jag kommer att kopiera till roten av systemdisken. SjĂ€lvklart kommer jag att dela detta «gentlemannapaket» med er.

Sysprep.bat – för att försegla systemet.

@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

Vid körning kommer skriptet att kontrollera om kontot "Admin" finns och skapa det om det inte finns. Kontot kommer att lÀggas till i gruppen "Administratörer".

Unattend.xml – svarfil för sysprep.

reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v SetupDisplayedProductKey /t REG_DWORD /d 1 /f
                    1
                    Visa inte nyckelsidan
                
                
                    reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v UnattendCreatedUser /t REG_DWORD /d 1 /f
                    2
                    Skapa inte konto
                
                
                    cmd.exe /c rd %systemdrive%Sysprep /s /q
                    3
                    Ta bort mappen
                
            
        
        
            
                true
                Admin
            
        
    
    
        
            en-US; sv-SE
            sv-SE
            sv-SE
            
            sv-SE
        
        
            
                true
                true
                true
                true
                true
                1

Vid försegling i granskningslÀge kommer skriptet att lÀgga till en post i registret för att avsluta processen "sysprep.exe" sÄ att du inte manuellt behöver stÀnga sysprep-fönstret varje gÄng. Vid försegling i vÀlkomstlÀge kommer skriptet att ta bort kommandot för att stÀnga fönstret frÄn registret och sjÀlv Àndra arkitekturen i svarsfilerna till den aktuella. Svarsfilerna innehÄller parametrar för att ladda systemet utan anvÀndarinteraktion och kommandot för att ta bort "Sysprep"-mappen i roten av systemdisken.

Nu kommer jag att försegla systemet i granskningslÀge med hjÀlp av "Sysprep.bat" och ta en systemavbild. Jag kommer att ta systemavbilden med DISM och enbart ta avbilden av systemvolymen. Om du tar en avbild av enbart systemvolymen och inte hela disken, kom ihÄg att kopiera innehÄllet av katalogen "WindowsSystem32Recovery" till den första volymen i mappen "RecoveryWindowsRE" efter att systemet har rullats ut. Det hÀr behöver göras innan operativsystemet startas, eftersom katalogen "WindowsSystem32Recovery" kommer att vara tom efter att operativsystemet har startats.

Steg 3 – lokalisering av systemet

SprÄkpaketet kan installeras utan internetanslutning om du har paketet. Om inte, kommer systemet att ladda ner det frÄn internet nÀr du lÀgger till sprÄket i instÀllningarna. TÀnk bara pÄ att inte anvÀnda sprÄkpaketet frÄn tidigare versioner av operativsystemet. För Windows 10 1809 ska sprÄkpaketet vara specifikt för Windows 10 1809.

Microsoft följer sin plan – gradvis överflyttning av instĂ€llningar frĂ„n den klassiska menyn till den nya, sĂ„ i den klassiska kontrollpanelen kommer du inte lĂ€ngre att hitta instĂ€llningar för att Ă€ndra sprĂ„k och installera sprĂ„kpaket. Dessa instĂ€llningar finns nu endast i systeminstĂ€llningarna.

I granskningslĂ€ge kan du stöta pĂ„ problem med att öppna systeminstĂ€llningarna frĂ„n menyn "Start". För att öppna systeminstĂ€llningarna, kör kommandot – "ms-settings:", notera kolon i slutet av kommandot, utan det kommer kommandot inte att fungera. Efter att ha öppnat systeminstĂ€llningarna en gĂ„ng med detta kommando, kan du öppna dem med hjĂ€lp av grafiska menyn.

Men i systeminstÀllningarna kan du installera sprÄkpaketet om systemet Àr anslutet till internet, det finns ingen möjlighet att vÀlja installation av sprÄkpaketet frÄn en lokal fil.

Jag kommer inte att beskriva lokaliseringsprocessen, eftersom det skulle tynga ner artikeln avsevÀrt, sÀrskilt eftersom lokaliseringsprocessen Àr noggrant beskriven hÀr. Men jag vill framhÀva en funktion av sprÄkÀndringen i systemet efter installation av sprÄkpaketet via konsolen. Denna funktion Àr beskriven i samma wiki som jag gav en lÀnk till tidigare, i avsnittet "LÀgg till sprÄk i sprÄklistan".

Jag kommer att installera sprÄkpaketet utan internetanslutning.

Efter en fullstÀndig lokalisering av systemet, se till att skapa en systemavbildning.

Steg 4 – installation av nödvĂ€ndiga applikationer

Eftersom det inte finns nĂ„gon appbutik i LTSB- och LTSC-system, kan installation av appar frĂ„n "Microsoft Store" orsaka vissa svĂ„righeter, nĂ€mligen – nedladdning av applikationen. För nedladdning av appar har företaget "Adguard" skapat en mycket anvĂ€ndbar tjĂ€nst – "Adguard Store", genom vilken du kan fĂ„ temporĂ€ra lĂ€nkar för nedladdning av applikationer och deras komponenter.

För att installera en applikation behöver du filer med Àndelserna "Appx" och "AppxBundle". Innan du installerar sjÀlva applikationen mÄste du installera dess komponenter. Vanligtvis kan komponenterna för applikationen intuitivt sÀrskiljas utifrÄn filnamnet.

För att inte göra artikeln för lÄng kommer jag inte att gÄ in pÄ installationsprocessen för applikationer, sÀrskilt nÀr det redan finns en detaljerad instruktion. Men jag lÀgger till ett annat sÀtt att installera applikationer i det aktuella anvÀndarkontot. Applikationer kan installeras med hjÀlp av programmet "App Installer", men för att installera applikationer krÀvs internetanslutning, och du kan installera applikationerna med ett dubbelklick, och du behöver inte dess komponenter, alla nödvÀndiga komponenter kommer att laddas ner och installeras "App Installer".

Och en liten pÄminnelse, vid installation av applikationen i det aktuella anvÀndarkontot kan systemet inte lÄsas. Hur man installerar applikationer sÄ att systemet kan lÄsas ser du i den ovan nÀmnda instruktionen. För att kontrollera funktionen av multikiosken rÀcker det gott med de redan existerande applikationerna.

Steg 5 – skapa en konfigurationsfil för multikiosken

Nu har vi nĂ„tt det mest intressanta – att stĂ€lla in kiosklĂ€get. Vi tittar i instruktionen konfigurationsguiden och ser. Först och frĂ€mst behöver vi skapa en konfigurationsfil i XML-format, ett fullstĂ€ndigt exempel kan hittas se hĂ€r.

Vi börjar med att konfigurera plattornas placering. Det enklaste sÀttet att skapa en XML-konfiguration för plattornas instÀllningar Àr att exportera deras nuvarande tillstÄnd.

Först lÀgger vi till plattor för de program som vi behöver i Start-menyn. Vi kallar pÄ sökningen med "Win+s", hittar det program vi vill ha, högerklickar pÄ det och vÀljer "FÀst pÄ startskÀrmen".

Jag har fÀst följande program:

  • Anteckningar
  • Kalkylator
  • Internet Explorer
  • FĂ€rg
  • WordPad
  • Parametrar
  • Windows-sĂ€kerhet

De tvÄ senaste programmen har fÀsts eftersom det i standardinstallationen av LTSC inte finns nÄgra andra universella appar. Observera att plattorna för klassiska program refererar till genvÀgar. Nu, genom att flytta plattorna direkt i Start-menyn, delar jag upp de fÀsta plattorna i tvÄ grupper. För att skapa en ny plattgrupp, dra en platta betydligt högre eller lÀgre Àn andra plattor, sÄ kommer en intuitiv separator att lysa upp. Du kan namnge grupperna som du vill, för att göra detta placerar du muspekaren ovanför gruppen, och nÀr meddelandet "Namnger gruppen" visas, klicka vÀnster musknapp. Jag kommer att namnge den första gruppen "InstÀllningar", som kommer att innehÄlla plattorna "InstÀllningar" och "Windows-sÀkerhet". Den andra gruppen kommer jag att namnge "Kontorsprogram", som kommer att innehÄlla alla andra plattor. Förresten, man kan flytta hela grupper av plattor genom att dra dem i de tvÄ strecken som finns uppe till höger om gruppnamnet.

Eftersom namnet pĂ„ plattan "Windows-sĂ€kerhet" inte fĂ„r plats helt, kommer jag att Ă€ndra dess storlek till "Bred". För att Ă€ndra storleken pĂ„ plattan mĂ„ste du högerklicka pĂ„ plattan och vĂ€lja "Ändra storlek".

Efter konfigurationen exporterar vi det nuvarande tillstĂ„ndet genom att köra kommandot i PowerShell-miljön – "Export-StartLayout – path C:SysprepStartLayout.xml".

DĂ€refter Ă€r det enklast att inte skapa en konfigurationsfil sjĂ€lv, utan hĂ€mta en exempel-fil hĂ€rifrĂ„n instĂ€llningar – klicka pĂ„ knappen «Copy», klistra in innehĂ„llet i Anteckningar och spara som «MultiAppKiosk.xml». Ändra nu instĂ€llningarna efter dina behov. För att Ă€ndra instĂ€llningarna för de fĂ€sta plattorna, kopiera hela blocket «StartLayoutCollection» frĂ„n «StartLayout.xml» till «MultiAppKiosk.xml». För att lĂ€gga till applikationer i de tillĂ„tna, behöver du infoga ID:n för universella applikationer i avsnittet «AllowedApps» och Ă€ven lĂ€gga till den fullstĂ€ndiga sökvĂ€gen till exekverbara filer för klassiska applikationer, som anges i egenskaperna för de genvĂ€gar som plattorna refererar till. För att snabbt gĂ„ till genvĂ€gen, högerklicka pĂ„ den fĂ€sta plattan och följ menyn «Mer > GĂ„ till filens plats». Observera att för att ange ID:t för den universella applikationen anvĂ€nds parametern «AppUserModelId», medan för att ange den fullstĂ€ndiga sökvĂ€gen till den klassiska applikationen anvĂ€nds parametern «DesktopAppPath». Och en liten detalj, om du planerar att anvĂ€nda IE i ett x64-system, mĂ„ste du ange tvĂ„ sökvĂ€gar för exekverbara filen «Program FilesInternet Exploreriexplore.exe» och «Program Files (x86)Internet Exploreriexplore.exe».

Jag kommer inte att ge Ätkomst till mappar, sÄ jag tar bort sektionen «FileExplorerNamespaceRestrictions».

Visningen av aktivitetsfÀltet stör mig inte, sÄ i sektionen «Taskbar» lÀmnar jag allt som det Àr.

I exemplet anges tvÄ profiler, men jag kommer bara att ha en profil, sÄ sektionen med den andra profilen kan tas bort. Innan du tar bort den, observera exemplet pÄ automatisk start av applikationen med argument.

I sektionen «Configs» Ă€r kontona kopplade till profiler, notera att flera konton kan kopplas till en profil. Men eftersom jag bara Ă€r intresserad av ett konto, sĂ„ tar jag bort alla kopplingar utom den första – blocken «Config». I den Ă„terstĂ„ende kopplingen skriver jag anvĂ€ndarnamnet «User».

Jag har fÄtt en sÄdan fil med parametrar

MultiAppKiosk.xml

<![CDATA[
                    
                    
                      
                        
                          
                            
                            
                          
                          
                            
                            
                            
                            
                            
                          
                        
                      
                    
                  ]]>
          
          
      
  
  
      
          AnvÀndare

NÀr du skapar dina XML-konfigurationsfiler, kom ihÄg att varje profil mÄste ha ett unikt ID, vilket inte bara gÀller inom en XML-fil utan ocksÄ inom ett operativsystem. Det vill sÀga, för att inte förvirras Àr det en bra idé att varje gÄng skapa ett nytt identifierare, vilket kan göras i PowerShell med kommandot "[guid]::NewGuid()". Se till att spara filen i "UTF-8"-kodning; om filen sparas i "ANSI"-kodning kommer det att uppstÄ ett fel vid paketbyggandet om XML-filen innehÄller kyrilliska tecken.

Steg 6 – tillĂ€mpning av instĂ€llningar för multi-kiosk

Vi kommer att gÄ igenom tvÄ sÀtt att tillÀmpa instÀllningar beskrivna i konfigurationsfilen. Det första sÀttet Àr att anvÀnda ett förberedelsepaket, som bör skapas i ICD. För vissa kan detta sÀtt vara mer bekant. Det andra sÀttet Àr att anvÀnda "MDM Bridge WMI Provider", vilket jag har funnit vara mer bekvÀmt.

Metod nr 1

För dem utan ICD, ladda ner ADK och installera det. Installationen av ADK Àr mycket enkel; du kan lÀmna komponenterna som standard.

Starta ICD, klicka pÄ rutan "Ytterligare förberedelse", ange projektets namn och mapp och klicka pÄ "NÀsta". I nÀsta fönster vÀljer du "Alla versioner av Windows för stationÀra datorer" och klickar pÄ "NÀsta". Du kan hoppa över importen av förberedelsepaketet; klicka pÄ "Klart".

Öppna rullgardinsmenyn "Körningsalternativ", och sedan underavsnittet "AssignedAccess", och vĂ€lj alternativet "MultiAppAssignedAccessSettings". I den övre delen av mittsektionen i ICD-fönstret klickar du pĂ„ knappen "BlĂ€ddra" och anger platsen för XML-filen med instĂ€llningar. För sĂ€kerhets skull kan du spara projektet genom att trycka "Ctrl+s". I det övre vĂ€nstra hörnet av ICD vĂ€ljer du "Exportera" och i rullgardinsmenyn vĂ€ljer du "Förberedelsepaket". Som Ă€gare vĂ€ljer du "IT-administratör"; alla andra frĂ„gor kan du hoppa över genom att trycka "NĂ€sta", och i slutet klickar du pĂ„ "Bygg" och "Klart".

I det installerade systemet glöm inte att skapa anvÀndaren "User"; den fÄr inte lÀggas till i gruppen "Administratörer", annars kommer multi-kiosken inte att fungera. Jag skapade anvÀndaren i verktyget "Datorhantering" med en obegrÀnsad lösenord giltighet.

Nu startar vi förberedelsepaketet i det tidigare installerade systemet. Efter att förberedelsepaketet har tillĂ€mpats kommer menyn att Ă€ndras för startmenyn och administratören. I den vĂ€nstra kolumnen av startmenyn bör knapparna: "Dokument", "Bilder", "InstĂ€llningar" försvinna. Om startmenyn inte har Ă€ndrats, sĂ„ har nĂ„got gĂ„tt fel. Det installerade paketet kan tas bort genom att öppna fönstret "InstĂ€llningar > Konton > Åtkomst till arbets- eller skolkonton > LĂ€gga till eller ta bort förberedelsepaket."

Om startmenyn har Àndrats, har instÀllningarna tillÀmpats pÄ systemet, logga in med den anvÀndare för vilken Multikiosk Àr instÀllt och se resultatet.

Metod №2

TillÀmpning av instÀllningar med hjÀlp av "MDM Bridge WMI Provider" beskrivet hÀr. Fördelen med denna metod Àr flexibiliteten i anvÀndningen och möjligheten att slippa mÄnga manuella operationer som krÀvs för att skapa ett förberedelsepaket. HÀr kan varje enskild person skapa en lösning som Àr bekvÀm för dem. Jag har skapat ett par skript för mig sjÀlv.

MiltiKiosk.bat – skript för att starta

@echo off
chcp 1251>nul

if not exist "%~dp0psexec.exe" call :ShowMessage "‡‡‡‡‡‡‡‡‡‡‡‡‡För att skriptet ska fungera krĂ€vs filen psexec.exe‡‡För att avsluta skriptet, tryck pĂ„ valfri tangent"&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 Ingen PS fil hittades med början pÄ namnet - "%~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 – huvudskript

Funktion 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, ''}
}

Funktion ShowMessage ($Message='', $Align=0) {
    Försök {$Align = [decimal]$Align} FÄnga {Return 'För parametern Align kan endast ett nummer anges' | 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) {
        Försök {$String = [int]$String} FÄnga {}
        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, 'Fel vid hÀmtning av instÀllningsobjekt', 2, 'Tryck "Enter" för att avsluta skriptets körning') -Align 2; Read-Host; Exit}

Funktion MainMenu() {
    ShowMessage (13, ' 0 - Avsluta', ' 1 - VÀlj XML-fil för installation', ' 2 - Visa aktuell konfiguration för multi-kiosk', ' 3 - Ta bort instÀllningar för multi-kiosk', 1)
    $local:PromptText = 'VÀlj ÄtgÀrd'
    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, 'Startar konfiguration') -Align 2; Write-Host $MultiAppKiosk.Configuration; ShowMessage -Message ('Slut pÄ konfiguration', 1, 'För att ÄtergÄ till menyn tryck "Enter"', 1) -Align 2; Read-Host}
            3 {$MultiAppKiosk.Configuration = $Null; Set-CimInstance -CimInstance $MultiAppKiosk; ShowMessage -Message (1, 'Kommando för att ta bort instÀllningar har utförts', 1) -Align 2}
            DEFAULT {ShowMessage 'Ogiltigt vÀrde valt'}
        }
        if ($Selections -contains $Select) {Clear-Host; ShowMessage (15, ' 0 - Avsluta', ' 1 - VÀlj XML-fil för installation', ' 2 - Visa aktuell konfiguration för multi-kiosk', ' 3 - Ta bort instÀllningar för multi-kiosk', 1)}
    }
}

Funktion XMLSelection() {
    Clear-Host

    if (!(Test-Path -Path $PSScriptRoot'XML')) {ShowMessage -Message (13, 'Katalog inte hittad', $('"'+$PSScriptRoot+'XML"'), 1, 'Tryck "Enter" för att ÄtergÄ till föregÄende meny') -Align 2; Read-Host; Return}

    $local:XMLList = @()
    $XMLList += Get-ChildItem -Path $PSScriptRoot'XML' -name -filter '*.xml'
    if ($XMLList.Count -eq  0) {ShowMessage -Message (13, 'Inga XML-filer hittades i katalogen', $('"'+$PSScriptRoot+'XML"'), 1, 'Tryck "Enter" för att ÄtergÄ till föregÄende meny') -Align 2; Read-Host; Return}

    [int]$local:Indent = 13 - $XMLList.Count / 2; if ($Indent -lt 1) {$Indent = 1}
    ShowMessage ($Indent, ' 0 - ÅtergĂ„ till föregĂ„ende meny')
    for ($i=0; $i -le $XMLList.GetUpperBound(0); $i++) {Write-Host $(' '+($i+1)+' - '+$XMLList[$i])}
    Write-Host
    $local:PromptText = 'VÀlj fil för installation'
    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 $('Detta kommando tillÀmpar instÀllningar frÄn filen '+$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 ('Ogiltigt vÀrde valt')} 
        }
    }
}

MainMenu

Om du vill anvÀnda min lösning, spara de ovanstÄende skripten i en mapp med sina ursprungliga namn och placera filen "PsExec.exe" i samma mapp. Skapa en mapp med namnet "XML" i samma mapp och kopiera XML-filerna för att konfigurera multikiosken. Jag kommer att anvÀnda samma fil som i den första metoden.

MultiAppKiosk.xml

<![CDATA[
                    
                    
                      
                        
                          
                            
                            
                          
                          
                            
                            
                            
                            
                            
                          
                        
                      
                    
                  ]]>
          
          
      
  
  
      
          AnvÀndare

Lite om skriptets egenskaper. Skriptet Àr avsett för anvÀndning av XML-filer med kodning "UTF8". Om du vill anvÀnda "ANSI"-kodning, ta bort parametern "encoding UTF8" frÄn filÄsningsparametern. XML-filerna som ska placeras i mappen "XML" fÄr inte ha ersatta tecken, skriptet kommer sjÀlv att ersÀtta specialtecknen med motsvarande beteckningar. För att inte förvÀxla i GUID:arna för anvÀndarbindningar till profiler kan du helt enkelt ange nummer eller namn pÄ anvÀndaren inom klamrar, allt innehÄll inom klamrar kommer att ersÀttas med GUID:ar.

Att anvÀnda skriptet Àr mycket enkelt, starta det och vÀlj nödvÀndigt alternativ. För att Àndra den aktuella konfigurationen till en ny behöver du inte radera den nuvarande, den kommer att skrivas över. Glöm inte att skapa anvÀndare som anges i konfigurationsfilen.

Vid visning av den aktuella konfigurationen av multikiosken i samma session som den tillÀmpades, kommer specialtecken att visas som kombinationer av ersÀttningstecken. Efter att sessionen bytts (skkriptet har startats om), kommer alla specialtecken att visas i sitt ursprungliga skick.

Steg 7 – försegling av systemet

Multikiosken fungerar, och sÄ Àr allt klart, eller hur


Om allt gÄr enligt plan, betyder det att du missar nÄgot.

Glöm inte att vi ocksÄ behöver vÀxla systemet frÄn audit-lÀget till vÀlkomst-lÀget. Men vi Àr redo för detta, kör "Sysprep.bat", vÀlj alternativ 2, systemet förseglas. SlÄ pÄ enheten, systemet startar, logga in pÄ anvÀndarkontot för vilket multikiosken har konfigurerats och vi kan inte logga in. Efter texten "VÀlkommen" visas meddelandet "Logga ut".

Först ville jag bara beskriva lösningen pÄ problemet, men senare beslöt jag mig för att Àven beskriva stegen för att identifiera problemet och hitta den enklaste lösningen, eftersom mÄnga av lÀsarna sannolikt kommer att plÄgas av osÀkerhet - "Vad om sÄ hÀr...". Jag tror att beskrivningen av olika experiment kommer att spara er mycket tid om ni vill hitta ett annat lösning. För att informationen ska vara sÄ exakt som möjligt, och för att ytterligare en gÄng sÀkerstÀlla att det inte finns nÄgra fel, kommer jag att dokumentera experimenten i formatet "gjorde - skrev ner". Det vill sÀga, jag kommer att genomföra de beskrivna experimenten en gÄng till.

Experiment

Vad har vi fÄtt fram? I systemet finns det tvÄ konton:

"Admin" – i gruppen "Administratörer"
"User" – i gruppen "AnvĂ€ndare"
I auditlĂ€ge fungerade multikiosken, vi kapslade in – det fungerar inte.

Experiment 1

Vi tar bort det installerade förberedelsepaketet, i verktyget "Datorhantering" tar vi bort anvĂ€ndaren "User" och skapar en ny anvĂ€ndare med namnet "User", tillĂ€mpar förberedelsepaketet, loggar in pĂ„ kontot "User" – det fungerar inte. Vi loggar in som "Admin", tar bort anvĂ€ndaren "User" frĂ„n gruppen "AnvĂ€ndare", lĂ€gger till den i gruppen "Administratörer", loggar in som "User" – det fungerar inte. Vi loggar in som "Admin", tar bort förberedelsepaketet med multikiosken, loggar in som "User" – det gick att logga in, men naturligtvis fungerar inte multikiosklĂ€get eftersom förberedelsepaketet har tagits bort.

Experiment 2

Vi laddar upp systemavbilden – lokaliserad i auditlĂ€ge.

Systemet har startats, tryck pĂ„ «Win+r», eftersom sysprep-fönstret stĂ€ngdes automatiskt. Utför kommandot «sysprep», i det öppna fönstret startar vi «sysprep». Sysprep-instĂ€llningarna i fönstret: «GĂ„ till systemets vĂ€lkomstfönster (OOBE)», «Förbered för anvĂ€ndning», «Omstart». Tryck pĂ„ «OK» och vĂ€nta pĂ„ systemets vĂ€lkomnande. Svara pĂ„ frĂ„gorna vid den första systemstarten: «FortsĂ€tta pĂ„ valt sprĂ„k?» – «svenska»; region – Sverige; tangentbordslayout – Svensk; lĂ€gga till andra tangentbordslayouter – hoppa över; «LĂ„t oss ansluta dig till nĂ€tverket» – «Hoppa över för tillfĂ€llet»; anslut till internet – nej; licensavtal – acceptera; «Vem kommer att anvĂ€nda den hĂ€r datorn» – «Test»; skapa lösenord – lĂ€mna fĂ€ltet tomt; bekvĂ€m anvĂ€ndning pĂ„ olika enheter – nej; sekretessinstĂ€llningar – acceptera. Systemet har startats, i verktyget «Datorhantering» skapar vi en anvĂ€ndare med namnet «User», lĂ€gger till förberedelsetyp. Resultat – fungerar inte.

Experiment 3

Vi laddar upp systemavbilden – lokaliserad i auditlĂ€ge.

Systemet har startats, anslut systemet till internet, utför kommandot «gpedit.msc» och i avsnittet «Windows Update Center» aktiverar vi alternativet «Aktivera rekommenderade uppdateringar via automatisk uppdatering», för sĂ€kerhets skull startar vi om. I uppdateringscentret trycker vi pĂ„ «Kontrollera efter uppdateringar» och startar om tills alla uppdateringar har installerats. Koppla bort systemet frĂ„n internet. Starta «sysprep» i grafiskt lĂ€ge och upprepa alla Ă„tgĂ€rder som beskrivs i föregĂ„ende steg med att starta verktyget «sysprep» fram till förberedelsetypens tillĂ€gg. Resultat – fungerar inte.

Experiment 4

Ladda upp systemavbilden – engelsksprĂ„kig i revisionslĂ€ge.

Starta «sysprep» i grafiskt lĂ€ge, förslut systemet med samma instĂ€llningar som under experiment 2. Vid den första systemstarten vĂ€ljer vi samma instĂ€llningar som i experiment 2, med undantag för de regionala och sprĂ„kliga instĂ€llningarna eftersom det inte finns nĂ„got ryskt sprĂ„k. Vi skapar ocksĂ„ anvĂ€ndaren «User» och lĂ€gger till förberedelsetyp. Resultat – fungerar. AlltsĂ„ Ă€r problemet relaterat till lokalisering.

Experiment 5

Vi laddar upp systemavbilden – lokaliserad i auditlĂ€ge.

I verktyget «Datorhantering» skapar vi anvÀndaren «User», lÀgger till förberedelsetyp, gÄr in i kontot «User», multikiosken fungerar.

Logga ut frÄn kontot och logga in med kontot "Admin". Starta PowerShell med administratörsrÀttigheter, kör kommandot "Dism /online /Get-Intl" och se "StandardanvÀndargrÀnssnittsprÄk: en-US".

Starta frÄn USB-enheten i WinPE, det installerade operativsystemet finns pÄ disk E. Kör kommandot "Dism /image:E: /Set-UILang:ru-ru". Kontrollera resultatet, kör "Dism /image:E: /Get-Intl" och se "Standard system UI language: ru-RU".

Logga in i systemet med kontot "User", multikiosken fungerar inte.

För att tydligt faststÀlla orsakssambandet till problemet ska vi försöka fÄ multikiosken att fungera och inte fungera igen.

Starta frÄn USB-enheten i WinPE, det installerade operativsystemet finns pÄ disk E. Kör kommandot "Dism /image:E: /Set-UILang:en-us". Kontrollera resultatet, kör "Dism /image:E: /Get-Intl" och se "Standard system UI language: en-US".

Logga in i systemet med kontot "User", multikiosken fungerar.

Starta frÄn USB-enheten i WinPE, det installerade operativsystemet finns pÄ disk E. Kör kommandot "Dism /image:E: /Set-UILang:ru-ru". Kontrollera resultatet, kör "Dism /image:E: /Get-Intl" och se "Standard system UI language: ru-RU".

Logga in i systemet med kontot "User", multikiosken fungerar inte.

Det vill sÀga att vi kan se ett klart samband mellan kioskarens funktionalitet och vÀrdet av standardanvÀndargrÀnssnittssprÄket. Finns det nÄgra andra faktorer som pÄverkar multikioskens funktionalitet?

Experiment 6

För att sĂ€kerstĂ€lla experimentets renhet installerar vi om systemet. Vi laddar upp systemavbildningen – lokaliserad i audit-lĂ€get.

Starta "sysprep" i grafiskt lĂ€ge, försegla operativsystemet med samma parametrar som under experiment 2. VĂ€nta pĂ„ operativsystemets hĂ€lsning och svara pĂ„ frĂ„gorna: "FortsĂ€tta pĂ„ valt sprĂ„k?" – "English (United States)"; region – Ryssland; tangentbordslayout – Ryska. Alla parametrar vĂ€ljs som i experiment 2.

Kontrollera vÀrdena för standardanvÀndargrÀnssnittssprÄket. Kör kommandot "Dism /online /Get-Intl" och se "Standard system UI language: en-US". I verktyget "Datorhantering" skapar vi anvÀndaren "User", lÀgger till förberedelsepaket, loggar in med kontot "User", multikiosken fungerar.

Försök att bryta kiosken genom att Àndra standardanvÀndargrÀnssnittssprÄket. Logga in med anvÀndaren "Test", som skapades vid första systemstarten och aktivera automatisk inloggning sÄ att systemet inte loggar in med kontot "User" direkt. Kör "netplwiz", vÀlj anvÀndaren "Test", ta bort markeringen av "KrÀva att anvÀndarnamn och lösenord anges" och tillÀmpa parametrarna.

Starta frÄn USB med WinPE. Kör kommandot «Dism /image:E: /Set-UILang:sv-se». Titta pÄ resultatet, kör «Dism /image:E: /Get-Intl» och se «Default system UI language: sv-SE».

Logga in i systemet, försök att logga in pÄ kontot «User», multimedia-kiosken fungerar. D.v.s. den gÄr inte att bryta. Men kan vi fÄ den att fungera pÄ detta sÀtt?

Experiment 7

Vi laddar upp systemavbilden – lokaliserad i auditlĂ€ge.

Kör «Sysprep.bat», vÀlj punkt 2. Logga in i systemet, i verktyget «Datorhantering» skapar vi anvÀndaren «User», lÀgger till förberedelsepaketet, loggar in pÄ konton «User», multimedia-kiosken fungerar inte.

Starta frÄn USB med WinPE. Kör kommandot «Dism /image:E: /Set-UILang:en-us». Titta pÄ resultatet, kör «Dism /image:E: /Get-Intl» och se «Default system UI language: en-US».

Logga in i systemet, försök att logga in pÄ kontot «User», multimedia-kiosken fungerar inte.

Det visar sig att genom att Àndra instÀllningen för standard anvÀndargrÀnssnittssprÄk kan man pÄverka multimedia-kioskens funktionalitet endast nÀr systemet Àr i auditlÀge eller vid första starten efter att systemet har förseglats. Detta innebÀr att man mÄste försegla systemet med en svarfil dÀr sprÄkvalet Àr engelska, och sedan Àndra systeminstÀllningarna för att grÀnssnittet ska vara pÄ ryska. Inte den bÀsta lösningen. Kanske kan man lösa problemet genom att installera sprÄkpaketet eller installera ytterligare sprÄkpaket?

Experiment 8

Ladda upp systemavbilden – engelsksprĂ„kig i revisionslĂ€ge.

Anslut till internet, gÄ till systeminstÀllningarna, vÀlj avsnittet «Language», vÀlj «Add language», vÀlj sprÄket «Svenska», klicka pÄ «Next», lÄt installationsalternativen vara som standard, klicka pÄ «Install», efter installationen av sprÄkpaketet startar vi om systemet, nu Àr den översatt till svenska. Koppla bort systemet frÄn internet, kör «Sysprep.bat», vÀlj punkt 2.

Efter att systemet har startat i verktyget «Datorhantering» skapar vi anvÀndaren «User», lÀgger till förberedelsepaketet, loggar in pÄ kontot «User», multimedia-kiosken fungerar inte.

Experiment 9

LÄt oss försöka översÀtta systemet före installation, i offline-lÀge. Samtidigt fÄr vi en kort introduktion till lokaliseringen av distributören.

Jag tar en USB-minne med den rena originaldistributionen – X21-96381. Den kommer att vara skivan "E". För att montera bilder skapar jag mappar: "c:MountInstall", "c:MountWinre", "c:MountBoot". Jag tar sprĂ„kpaketet – X21-87814. Och jag kopierar följande paket till mappen "c:Mount": "Microsoft-Windows-Client-Language-Pack_x86_sv-se.cab", "lp.cab", "WinPE-Setup_sv-se.cab". Jag öppnar konsolen med administratörsrĂ€ttigheter. Jag tror att de följande kommandona kommer att vara förstĂ„eliga utan kommentarer.

SprÄklokaliseringskommandon

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_sv-se.cabcode
dism /Image:Installcode /Set-AllIntl:sv-se
dism /Image:Install /Set-TimeZone:"Swedish 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:sv-se
dism /Image:Winre /Set-TimeZone:"Swedish Standard Time"code
dism /Unmount-Image /MountDir:Winre /Commitcode

dism /Image:Install /Gen-LangINI /distribution:E: /Set-AllIntl:sv-SEcode
dism /image:Install /Set-SetupUILang:SV-se /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:sv-se
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_sv-se.cabcode
dism /Image:Bootcode /Set-AllIntl:sv-se
copy e:sourceslang.ini Bootsourceslang.ini /ycode
dism /Unmount-Image /MountDir:Boot /Commit

Vi startar frÄn USB-minnet, vÀljer svenska sprÄket och installerar systemet pÄ en ren disk. NÀr systemet ber om att vÀlja region trycker vi "Ctrl+Shift+F3". I verktyget "Datorhantering" skapar vi anvÀndaren "User", lÀgger till beredningspaket, loggar in pÄ kontot "User", multikiosk fungerar inte.

Vi startar frÄn USB-minnet i WinPE. Vi kör kommandot "Dism /image:E: /Set-UILang:en-us".

Vi startar i systemet, försöker logga in pÄ kontot "User", multikiosk fungerar.

Det verkar inte bero pÄ metoderna för att lÀgga till paketet, lÄt oss försöka lÀgga till ytterligare paket.

Experiment 10

Jag tar USB-minnet som vi förberedde i föregÄende steg.

Jag tar paketet "Feat on Demand" – X21-87815. Jag kopierar följande paket till mappen "c:Mount": "Microsoft-Windows-LanguageFeatures-Basic-sv-se-Package~31bf3856ad364e35~x86~~.cab", "Microsoft-Windows-LanguageFeatures-OCR-sv-se-Package~31bf3856ad364e35~x86~~.cab", "Microsoft-Windows-LanguageFeatures-Handwriting-sv-se-Package~31bf3856ad364e35~x86~~.cab", "Microsoft-Windows-LanguageFeatures-TextToSpeech-sv-se-Package~31bf3856ad364e35~x86~~.cab".

Vi tar paketet "Feat on Demand RDX Updt" – X21-99781. Jag kopierar paket frĂ„n det till mappen "c:Mount": "Microsoft-Windows-RetailDemo-OfflineContent-Content-Package~31bf3856ad364e35~x86~~.cab", "Microsoft-Windows-RetailDemo-OfflineContent-Content-ru-ru-Package~31bf3856ad364e35~x86~~.cab".

Öppna konsolen med administratörsrĂ€ttigheter och kör kommandona:

Kommandon

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

Vi startar upp frÄn USB-minnet, vÀljer ryska sprÄket och installerar systemet pÄ en ren disk. NÀr systemet ber oss att vÀlja region trycker vi "Ctrl+Shift+F3". I verktyget "Datorhantering" skapar vi anvÀndaren "User", lÀgger till förberedelsepaketet, gÄr in i anvÀndarkontot "User". Jag fick en svart skÀrm som hÀngde lÀnge, sÄ jag genomförde en varm omstart av systemet.

Vi tar bort förberedelsepaketet, loggar in som anvÀndaren "User", omstartar systemet, lÀgger till förberedelsepaketet, men mulit-kiosken fungerar inte.

Vi startar frÄn USB-minnet i WinPE. Vi kör kommandot "Dism /image:E: /Set-UILang:en-us".

Vi startar i systemet, försöker logga in pÄ kontot "User", multikiosk fungerar.

Lösning pÄ problemet

Riktiga hjÀltar. GÄr alltid runt problem!

Olika sÀtt att installera lokaliseringpaket löste inte problemet, sÄ vi mÄste vid första inloggningen efter förseglingen installera sprÄket "en-us", och efter första inloggningen Àndra sprÄkinstÀllningarna.

Vi laddar upp systemavbilden – lokaliserad i auditlĂ€ge.

I filen "Unattend.xml" anger vi "en-US" i parametern, kör "Sysprep.bat", vĂ€ljer punkt 2 och ser vad vi fick. VĂ€lkomstskĂ€rmen Ă€r pĂ„ engelska, multi-kiosken fungerar – bra. SĂ„ vi mĂ„ste lĂ€gga till kommandot för att Ă€ndra vĂ€lkomstsprĂ„ket i "Unattend.xml". För detta mĂ„ste vi köra kommandot "control intl.cpl,,\/f:" med angivande av konfigurationsfilen som kommer att ange kopiering av aktuella instĂ€llningar till vĂ€lkomstskĂ€rmen. InnehĂ„llet i konfigurationsfilen kommer att se ut sĂ„ hĂ€r.

Eftersom vi kommer att kopiera instĂ€llningarna för den nuvarande anvĂ€ndaren, mĂ„ste kommandot utföras efter att anvĂ€ndaren har loggat in. Det betyder att vi behöver nĂ„got. Det finns dock en liten 'men', utförandet kommer att ske efter inloggning av anvĂ€ndaren med administratörsrĂ€ttigheter. Jag skulle gĂ€rna vilja undvika att skapa en extra fil som krĂ€vs för att kommandot ska köras framgĂ„ngsrikt. Det Ă€r bĂ€ttre att genomföra hela lösningen i en enda fil — "Unattend.xml". För detta behöver du bara köra kommandot som skapar konfigurationsfilen. Jag tror att jag kommer att skapa konfigurationsfilen med kommandot "echo" i "cmd", men i det mĂ„ste man maskera vinklarna med cirkumflex. D.v.s. för att skapa konfigurationsfilen blir kommandot sĂ„ hĂ€r.

echo ^^^^^>Config.xml

Men vi mÄste placera det hÀr kommandot i XML, vilket har sina egna krav för anvÀndning av specialtecken:

Specialtecken
ErsÀttningsvÀrde

>
>

<
<

&
&

‘
'

“
"

SÄ för att skapa konfigurationsfilen blev kommandot för "FirstLogonCommands" pÄ följande sÀtt.

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

DÀrefter kör vi kommandot med anvÀndning av konfigurationsfilen.

control intl.cpl,,/f:"%TMP%Config.xml"

Sedan tar vi bort den tidigare skapade filen och startar om systemet eftersom Àndringarna trÀder i kraft efter omstart.

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

Som resultat har jag fÄtt en sÄdan svarfil för sysprep.

Unattend.xml

reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v SetupDisplayedProductKey /t REG_DWORD /d 1 /f
                    1
                    Visa inte sidvisning av produktnyckel
                
                
                    reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v UnattendCreatedUser /t REG_DWORD /d 1 /f
                    2
                    Skapa inte konto
                
                
                    cmd.exe /c rd %systemdrive%Sysprep /s /q
                    3
                    Ta bort mapp
                
            
        
        
            
                true
                Admin
            
        
    
    
        
            en-US; sv-SE
            sv-SE
            en-US
            
            sv-SE
        
        
            
                true
                true
                true
                true
                true
                1
            
            
                
                    cmd.exe /c echo ^<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend"^>^<gs:UserList^>^<gs:User UserID="Current" CopySettingsToSystemAcct="true"/^>^</gs:UserList^>^</gs:GlobalizationServices^>"%TMP%Config.xml"
                    SkapaConfig
                    1
                
                
                    control intl.cpl,,/f:"%TMP%Config.xml"
                    AnvÀndConfig
                    2
                
                
                    cmd.exe /c del "%TMP%Config.xml" /q&shutdown /r /f /t 00
                    Ta bortConfig
                    3

Kontrollerar


Vi laddar upp systemavbilden – lokaliserad i auditlĂ€ge.

Byt ut Unattend.xml-filen mot den nya, kör "Sysprep.bat", vÀlj punkt 2 och se vad vi har fÄtt. Vid första uppstart visas vÀlkomstskÀrmen pÄ engelska, systemet startar om. VÀlkomstskÀrmen pÄ ryska, multi-kiosk fungerar.

Om du har nÄgra frÄgor om konfiguration och licensiering av Windows 10 IoT Enterprise, vÀnligen kontakta mse@quarta.ru eller pÄ webbsidan quarta-embedded.ru.
Svar pÄ nÄgra frÄgor kan du hitta i vÄr wiki eller pÄ vÄr YouTube-kanalen

Författare: Borisenkov Vladimir, teknisk expert pÄ Kvartha Technologies.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster