Windows 10 IoT Enterprise 2019 – flerplattformmodus

Innledning

Windows 10 IoT Enterprise 2019 – det markedsfĂžrende navnet for den nyeste utgaven av Windows 10. Utgivelsen av denne versjonen ble kunngjort i september 2018 og har versjon 1809, hvor 18 representerer Ă„ret og 09 representerer mĂ„neden. Det er skrevet mange artikler om den nye Windows 10 1809, men de fleste handler om forskjellige «fancy» funksjoner og diverse funksjonalitet som er etterspurt i hjemmemiljĂžer.
I denne artikkelen vil jeg fokusere kun pÄ funksjonaliteten som kan vÊre etterspurt blant produsenter av spesialiserte enheter. Spesielt vil jeg diskutere de nye mulighetene i «Kiosk»-modus. Jeg vil ogsÄ ta opp temaet angÄende endringer i navnene pÄ vedlikeholdsordninger for Windows-utgaver i det kommersielle segmentet.

Den gamle vedlikeholdsordningen med nytt navn

Jeg begynner med en liten forklaring; i det kommersielle segmentet av Windows-utgaver finnes det to vedlikeholdsordninger som Windows fÄr oppdateringer gjennom. Vedlikeholdsordningene er definert med bokstavbetegnelser. NÄ kalles disse vedlikeholdsgrenene LTSC og SAC.

LTSC – stĂ„r for Long Term Servicing Channel (med langvarig vedlikehold). Tidligere ble denne kanalen kalt LTSB – Long Term Servicing Branch. Microsoft endret bare navnet pĂ„ vedlikeholdskanalen, men selve vedlikeholdet forble det samme.

Microsoft har ogsĂ„ endret navnet pĂ„ vedlikeholdsgrenen CBB – Current Branch for Business, som nĂ„ kalles SAC – Semi-Annual Channel. Igjen, det er bare navnet som har endret seg.

Men det bĂžr nevnes at det brukes forskjellige distribusjoner av Windows for LTSC- og SAC-grenene.

Litt om den nye kiosk-ordningen i SAC

Som jeg allerede har nevnt, har LTSC og SAC forskjellige distribusjoner. LTSC har ikke standarduniverselle applikasjoner eller applikasjonsbutikk, mens SAC har begge. Dermed finnes ikke Edge-nettleseren i LTSC, men den er tilgjengelig i SAC. Hvis du velger Edge-nettleseren under oppsettet av kiosken, har du nÄ to tilgjengelige moduser:

  1. Som et digitalt skilt eller interaktivt display
  2. Som en offentlig nettleser

Jeg vil ikke gÄ inn pÄ oppsettet av disse modusene, da oppsettet er svÊrt enkelt og gjÞres i det grafiske grensesnittet. Bare opprett en bruker som ikke er en del av «Administrator»-gruppen, aktiver kioskmodus med EDGE, og se hvordan disse modusene fungerer.

Kiosk med mange applikasjoner

Noen tror at lisensiert bruk av Windows 10 IoT Enterprise forutsetter at bare én app kjÞrer pÄ enheten, men i virkeligheten er ikke dette tilfellet. Enheten skal vÊre tiltenkt én forretningsoppgave, og brukeren skal ikke ha tilgang til skrivebordet. NÄ har Microsoft selv gitt et verktÞy for Ä bruke flere applikasjoner. Denne tilstanden kalles "multi-app kiosk", heretter vil jeg kort kalle den "mulkiosk". I denne artikkelen vil vi se pÄ konfigureringen av denne tilstanden med et konfigurasjonspakke og noen spesielle trekk ved denne tilstanden.

Litt om "Mulkiosk"-modusen

NÄr du logger inn pÄ en brukerkonto der mulkiosk-modus er aktivert, vil systemet fungere i nettbrettmodus. Startmenyen vil vÊre utvidet til full skjerm, hvor appfliser vises.

Liste over hovedinnstillinger og muligheter i modusen:

  1. Konfigurasjon for flere brukere eller grupper
  2. Hver bruker eller gruppe kan tildeles individuelle innstillinger
  3. Mulighet for Ä bruke bÄde universelle og klassiske applikasjoner
  4. Mulighet for automatisk oppstart av én av applikasjonene nÄr brukeren logger inn pÄ systemet
  5. Drift av applikasjoner etter hvit liste
  6. Tilgang til mapper etter hvit liste

Det er verdt Ä merke seg punkt 5. Som standard vil bare de applikasjonene som er nÞdvendige for systemets drift vÊre tillatt; andre applikasjoner mÄ legges til den tillatte listen. Det vil si at AppLocker ikke nÞdvendigvis mÄ settes opp separat. For Ä unngÄ konflikt med AppLocker-innstillingene, vil alle AppLocker-regler som er konfigurert, ikke vÊre gjeldende i mulkiosk-modus.

Punkt 6 beskriver en god mulighet, men for Þyeblikket kan tillatelse til skriving bare gis for "Nedlastinger"-mappen. Modusen tillater bruk av bÄde universelle og klassiske applikasjoner. Alle innstillinger for modusen angis i en XML-fil, der du ogsÄ kan angi innstillinger for en kiosk med én applikasjon.

Og nÄ skal vi prÞve Ä sette opp alt dette...

Hva trenger vi...

  1. FĂžrst og fremst trenger vi selve systemet som stĂžtter mulkiosk-modus. Her kan du laste ned demoversjonen
  2. Veiledning for konfigurasjon av mulkiosk
  3. Enhver XML-redaktĂžr
  4. For Ă„ anvende innstillingene for mulkiosk:
    1. For method №1 — ICD, which is part of ADK. ADK can her
    2. For method №2 – the PsExec utility. The utility can her

He said – "Let's go!"

All experiments will be conducted on Windows 10 IoT Enterprise 1809 LTSC x32 commercial version, not the demo. The system will be unactivated as lack of activation does not affect system functionality. I chose the 32-bit version simply because it takes up less space and working with system images will be faster.

Step 1 – installation

Installing Win 10 IoT Enterprise is no different from installing Win 10 Enterprise, so I won't describe the entire installation process, only some nuances.

Just to remind you, do not install the system over the existing one. When the installer asks for the installation location, delete all partitions on the future system disk and specify the unallocated disk.

We will install the system without an internet connection to prevent the system from pulling in anything unnecessary.

Since we will be creating backup system images and sealing it in audit mode, we can save some time by loading the system in audit mode right after installation. For this, when the system prompts you to select a region, "Let’s start with region. Is this right?", just press "Ctrl+Shift+F3".

Step 2 – create a system image

As we will be experimenting with the system, trying various new settings, it is possible that something may go wrong and we will need to restore the system to its original state. To quickly return to the original state, we need to create a system image. The only thing I will do is copy the "gentleman's set" – the script and the answer file. All files are located in the "Sysprep" folder, which I will copy to the root of the system disk. And of course, I will share this "gentleman's set" with you.

Sysprep.bat – for sealing the system.

@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 minName%>nul 2>nul
if %errorLevel% neq 0 (call :AddAdmin "minName%")
if %errorLevel% neq 0 (call :ShowMessage "‡‡‡Feil ved opprettelse av ny administratorkonto "minName%"‡‡Trykk en vilkĂ„rlig tast for Ă„ avslutte skriptet"&pause>nul&exit)

pushd "%~dp0"

cls
call :ShowMessage ‡‡‡‡‡‡‡‡‡‡
echo 1 - Forsegle systemet i revisjonsmodus
echo 2 - Forsegle systemet i velkomstmodus
:Select
set /p Choice="Skriv inn menyvalgsnummer: "
if "%Choice%"=="1" (goto Audit)
if "%Choice%"=="2" (goto OOBE)
echo.&echo Ugyldig valg valgt.&goto Select

exit

:Audit
 call :ShowMessage "‡‡‡‡‡Forsegling av systemet i revisjonsmodus"
 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 "‡‡‡‡‡Forsegling av systemet i velkomstmodus"
 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 Brukernavnet er ikke angitt&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>null
 net localgroup minGroup% %UserName% /add
 net localgroup %UserGroup% %UserName% /delete
 endlocal&exit /b 0
goto :eof

:GetGroupName
 if "%~1"=="" (echo Grupper SID er ikke angitt&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 Feil ved Ă„ bestemme gruppenavn fra 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

NÄr skriptet kjÞres, vil det sjekke om kontoen "Admin" finnes og opprette den hvis den ikke gjÞr det. Konton vil bli lagt til i "Administrators"-gruppen.

Unattend.xml – svarfilen 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 inget konto
                
                
                    cmd.exe /c rd %systemdrive%Sysprep /s /q
                    3
                    Ta bort mappen
                
            
        
        
            
                true
                Admin
            
        
    
    
        
            en-US; ru-RU
            ru-RU
            ru-RU
            
            ru-RU
        
        
            
                true
                true
                true
                true
                true
                1

NÄr man innestenger i auditing-modus, vil skriptet legge til en kommando i registeret for Ä avslutte prosessen «sysprep.exe» slik at man ikke trenger Ä lukke sysprep-vinduet manuelt hver gang. NÄr man innestenger i velkomstmodus, vil skriptet fjerne kommandoen for Ä lukke vinduet fra registeret og selv endre verdien av arkitekturen i svarfilen til den gjeldende. Svarfilen inneholder parametre for Ä laste opp systemet uten brukerintervensjon og kommandoen for Ä slette mappen «Sysprep» i roten av systemdisken.

NÄ skal jeg innestenge systemet i auditing-modus ved hjelp av «Sysprep.bat» og ta et systembilde. Jeg vil ta systembildet ved hjelp av DISM og vil ta bildet bare av systemvolumet. Hvis du tar et bilde bare av systemvolumet og ikke hele disken, mÄ du huske Ä kopiere innholdet fra katalogen «WindowsSystem32Recovery» pÄ den fÞrste volumet til mappen «RecoveryWindowsRE» etter at systemet er utvidet. Dette mÄ gjÞres fÞr operativsystemet lastes inn, siden katalogen «WindowsSystem32Recovery» vil vÊre tom etter at operativsystemet er lastet inn.

Trinn 3 – russifisering av systemet

SprÄkpakken kan installeres uten internettforbindelse hvis du allerede har pakken. Hvis ikke, vil systemet laste den ned fra internett nÄr du legger til sprÄket i innstillingene. Bare ikke bruk sprÄkpakken fra tidligere versjoner av operativsystemet. For Windows 10 1809 mÄ sprÄkpakken vÊre spesifikt for Windows 10 1809.

Microsoft fĂžlger sin plan – gradvis overfĂžring av innstillinger fra det klassiske menyen til den nye, sĂ„ i den klassiske kontrollpanelet vil du ikke lenger finne innstillinger for Ă„ endre sprĂ„k og installere sprĂ„kpakker. Disse innstillingene finnes nĂ„ kun i systeminnstillingene.

I auditing-modus kan du stĂžte pĂ„ problemet med Ă„ Ă„pne systeminnstillinger fra menyen «Start». For Ă„ Ă„pne systeminnstillingene, utfĂžr kommandoen – «ms-settings:», merk at kolon er pĂ„ slutten av kommandoen, uten den vil kommandoen ikke fungere. Etter Ă„ ha Ă„pnet systeminnstillingene Ă©n gang med denne kommandoen, kan de Ă„pnes via det grafiske menyen.

Men i systeminnstillingene kan du sette inn sprÄkpakken hvis systemet er koblet til internett, det er ikke mulig Ä velge Ä installere sprÄkpakken fra en lokal fil.

Jeg vil ikke beskrive prosessen med Ä lokalisere systemet, da det ville gjÞre artikkelen betydelig lengre, spesielt siden prosessen for lokalizering er grundig beskrevet her. Men jeg vil gjerne pÄpeke en spesiell detalj om endringen av systemets sprÄk etter installasjonen av sprÄkpakken via konsollen. Denne detaljen er beskrevet i den samme wiki-siden som jeg ga lenke til tidligere, i underavsnittet «Legge til sprÄk i sprÄklisten».

Jeg vil installere sprÄkpakken uten internett-tilkobling.

Etter fullfĂžring av lokaliseringsprosessen, sĂžrg for Ă„ opprette et systembilde.

Trinn 4 – installere nþdvendige applikasjoner

Siden LTSB- og LTSC-systemene ikke har applikasjonsbutikken, kan installasjonen av applikasjoner fra «Microsoft Store» by pĂ„ noen utfordringer, spesielt nedlastingen av applikasjonen. For Ă„ laste ned applikasjoner har «Adguard» laget en svĂŠrt nyttig tjeneste – «Adguard Store», som lar deg fĂ„ midlertidige lenker til nedlasting av applikasjoner og deres komponenter.

For Ä installere applikasjonen trenger du filer med utvidelsene «Appx» og «AppxBundle». FÞr installasjonen av selve applikasjonen mÄ komponentene installeres fÞrst. Vanligvis kan komponentene til applikasjonen enkelt kjennes igjen pÄ filnavnet.

For Ä unngÄ Ä gjÞre artikkelen for lang, vil jeg ikke gÄ i detalj om installasjonsprosessen for applikasjoner, spesielt siden det finnes en detaljert instruksjon. Men jeg vil legge til en annen metode for Ä installere applikasjoner i den nÄvÊrende brukerkontoen. Applikasjoner kan installeres ved hjelp av programmet «App Installer», men for Ä installere applikasjoner kreves det en internett-tilkobling, men applikasjonene kan installeres med et dobbeltklikk, og du vil ikke trenge komponentene, alle nÞdvendige komponenter vil lastes ned og installeres «App Installer».

Og en liten pÄminnelse, nÄr du installerer applikasjoner i den nÄvÊrende brukerkontoen kan ikke systemet lukkes. Hvordan du installerer applikasjoner slik at systemet kan lukkes, kan du se i den nevnte instruksjonen. For Ä sjekke funksjonaliteten til multi-kiosken, er allerede eksisterende applikasjoner tilstrekkelige.

Trinn 5 – oppretting av konfigurasjonsfil for multi-kiosken

NĂ„ har vi nĂ„dd det mest interessante – konfigurasjonen av kioskmode. La oss se pĂ„ instruksjonen konfigurasjonen og se. FĂžrst og fremst mĂ„ vi opprette en konfigurerings XML-fil, et fullstendig eksempel av hvilken som kan sees her.

La oss begynne med Ä sette opp flisplasseringen. Den enkleste mÄten Ä opprette XML-konfigurasjon for flisinnstillinger er Ä eksportere deres nÄvÊrende tilstand.

FÞrst legger vi til flisene til de applikasjonene vi trenger i Start-menyen. Vi Äpner sÞk med «Win+s», finner den nÞdvendige applikasjonen, hÞyreklikker pÄ den og velger «Fest til Startskjermen».

Jeg har festet fĂžlgende applikasjoner:

  • Notisblokk
  • Kalkulator
  • Internet Explorer
  • Maling
  • WordPad
  • Parametere
  • Windows-sikkerhet

De siste to applikasjonene ble festet fordi det i den standard LTSC-distribusjonen ikke finnes andre universelle applikasjoner. Legg merke til at flisene til klassiske applikasjoner refererer til snarveier. NÄ kan jeg ved Ä flytte flisene direkte i Start-menyen dele de festede flisene inn i to grupper. For Ä opprette en ny gruppe med fliser, dra en flis betydelig hÞyere eller lavere enn de andre flisene, da vil en intuitiv separator vises. Du kan navngi gruppene som du Þnsker; for Ä gjÞre det plasserer du musepekeren over gruppen, og nÄr teksten «Navngi gruppe» vises, klikker du med venstre museknapp. Den fÞrste gruppen vil jeg kalle «Innstillinger», og den vil inkludere flisene «Innstillinger» og «Windows-sikkerhet». Den andre gruppen vil jeg kalle «Kontorapplikasjoner», og den vil inkludere alle andre fliser. Forresten, du kan flytte hele grupper av fliser ved Ä dra dem ved de to stripene som ligger Þverst til hÞyre for gruppenavnet.

Siden tittelen pÄ flisen «Windows-sikkerhet» ikke fÄr plass, vil jeg endre stÞrrelsen til «Bred». For Ä endre stÞrrelsen pÄ flisen mÄ du hÞyreklikke pÄ flisen og velge «Endre stÞrrelse».

Etter oppsettet eksporterer vi den nĂ„vĂŠrende tilstanden ved Ă„ kjĂžre kommandoen i PowerShell: «Export-StartLayout – path C:SysprepStartLayout.xml».

Deretter er det enklest Ă„ ikke lage innstillingsfilen selv, men ta et eksempel pĂ„ filen herfra innstillinger – klikk pĂ„ knappen «Copy», lim inn innholdet i en notisblokk og lagre som «MultiAppKiosk.xml». NĂ„ endrer vi innstillingene til vĂ„re egne. For Ă„ endre innstillingene for de festede flisene, kopierer vi hele blokken «StartLayoutCollection» fra «StartLayout.xml» til «MultiAppKiosk.xml». For Ă„ legge til apper i de tillatte, mĂ„ vi sette inn identifikatorene for universelle apper i seksjonen «AllowedApps», og i denne blokken legge til den fulle banen til kjĂžrbare filer for klassiske apper, som er spesifisert i egenskapene til snarveiene som flisene refererer til. For rask tilgang til snarveien, hĂžyreklikk pĂ„ den festede flisen og gĂ„ gjennom menyen «Ekstra > GĂ„ til filplassering». VĂŠr oppmerksom pĂ„ at for Ă„ spesifisere ID-en til den universelle appen brukes parameteren «AppUserModelId», og for Ă„ spesifisere den fulle banen til den klassiske appen brukes parameteren «DesktopAppPath». Og en liten detalj til, hvis du planlegger Ă„ bruke IE i x64-systemet, sĂ„ mĂ„ du i listen over tillatte apper spesifisere to baner for kjĂžrbar fil «Program FilesInternet Exploreriexplore.exe» og «Program Files (x86)Internet Exploreriexplore.exe».

Jeg vil ikke gi tilgang til mappene, sÄ jeg fjerner seksjonen «FileExplorerNamespaceRestrictions».

Visningen av oppgavelinjen vil ikke vÊre til besvÊr for meg, sÄ jeg lar alt stÄ som det er i seksjonen «Taskbar».

Eksemplet viser to profiler, men jeg vil bare ha én profil, sÄ jeg kan fjerne seksjonen med den andre profilen. FÞr jeg fjerner den, vÊr oppmerksom pÄ eksemplet der applikasjonen startes automatisk med argumenter.

I seksjonen «Configs» er kontoene knyttet til profilene; vĂŠr oppmerksom pĂ„ at flere kontoer kan knyttes til Ă©n profil. Men siden jeg kun er interessert i Ă©n konto, vil jeg fjerne alle bindinger unntatt den fĂžrste – blokkene «Config». I den gjenvĂŠrende bindingen vil jeg spesifisere brukernavnet «User».

Jeg fikk til en fil med parametere som dette

MultiAppKiosk.xml

<![CDATA[
                    
                    
                      
                        
                          
                            
                            
                          
                          
                            
                            
                            
                            
                            
                          
                        
                      
                    
                  ]]>
          
          
      
  
  
      
          Bruker

NÄr du lager XML-konfigurasjonsfilene dine, husk at hver profil mÄ ha en unik ID, ikke bare innenfor én XML-fil, men i hele operativsystemet. For Ä unngÄ forvirring kan du ideelt sett lage en ny identifikator hver gang, noe du kan gjÞre i PowerShell med kommandoen «[guid]::NewGuid()». SÞrg ogsÄ for Ä lagre filen i «UTF-8»-koding; hvis filen lagres i «ANSI»-koding, vil du fÄ en feil ved pakkeopprettingen hvis XML-filen inneholder kyrilliske tegn.

Trinn 6 – bruke innstillingene for multikiosk

La oss se pÄ to mÄter Ä bruke innstillingene som er beskrevet i konfigurasjonsfilen. Den fÞrste er Ä bruke en pakkeopprettelse, som mÄ opprettes i ICD. For noen kan denne metoden virke mer kjent. Den andre metoden er Ä bruke «MDM Bridge WMI Provider», som jeg fant mer praktisk.

Metode nr. 1

For de som ikke har ICD, last ned ADK og installer det. Installeringen av ADK er veldig enkel, du kan la komponentene vĂŠre standard.

Åpne ICD, klikk pĂ„ flisen «Ekstra oppretting», angi navnet og mappen for prosjektet og klikk pĂ„ «Neste». I det neste vinduet velger du «Alle utgaver av Windows for skrivebord» og klikker pĂ„ «Neste». Import av pakkeopprettelsen kan oversees, klikk «Ferdig».

Åpne rullegardinmenyen «KjĂžremiljĂžalternativer», deretter Ă„pne undermenyen «AssignedAccess» og velg punktene «MultiAppAssignedAccessSettings». Øverst i midtseksjonen av ICD-vinduet klikker du pĂ„ knappen «Bla gjennom» og angir plasseringen av XML-filen med innstillingene. Det kan vĂŠre lurt Ă„ lagre prosjektet ved Ă„ trykke «Ctrl+s». I Ăžverste venstre hjĂžrne av ICD velger vi «Eksporter» og i rullegardinmenyen velger vi punktet «Pakkeopprettelse». Som eier velger vi «IT-administrator», alle andre spĂžrsmĂ„l kan overses ved Ă„ klikke «Neste», og til slutt klikker vi pĂ„ «Bygg» og «Ferdig».

I det installerte systemet mÄ vi ikke glemme Ä opprette brukeren «User», denne kan ikke legges til gruppen «Administratorer», ellers vil ikke multikiosken fungere. Jeg opprettet brukeren i verktÞyet «Datamaskinstyring» med ubegrenset varighet pÄ passordet.

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

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

Metod nr 2

TillÀmpning av instÀllningar med hjÀlp av 'MDM Bridge WMI Provider' beskrivs hÀr. Fördelarna 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 var och en göra en lösning som Àr bekvÀm just för dem. Jag har gjort 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 "‡‡‡‡‡‡‡‡‡‡‡‡‡Filen psexec.exe behövs för att köra skriptet‡‡Tryck pĂ„ valfri tangent för att avsluta skriptet"&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-filer hittades som börjar med 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

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

Funksjon ShowMessage ($Message='', $Align=0) {
    Try {$Align = [decimal]$Align} Catch {Return 'For parameteren Align kan bare tall angis' | 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, 'Feil ved henting av innstillingsobjekt', 2, 'Trykk "Enter" for Ă„ avslutte skriptet') -Align 2; Read-Host; Exit}

Funksjon MainMenu() {
    ShowMessage (13, ' 0 - Avslutt', ' 1 - Velg XML-fil for installasjon', ' 2 - Vis gjeldende konfigurasjon av multi-kiosk', ' 3 - Slett innstillinger for multi-kiosk', 1)
    $local:PromptText = 'Velg handling'
    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, 'Begynner konfigurasjon') -Align 2; Write-Host $MultiAppKiosk.Configuration; ShowMessage -Message ('Slutt pÄ konfigurasjon', 1, 'For Ä gÄ tilbake til menyen, trykk "Enter"', 1) -Align 2; Read-Host}
            3 {$MultiAppKiosk.Configuration = $Null; Set-CimInstance -CimInstance $MultiAppKiosk; ShowMessage -Message (1, 'Kommando for Ă„ slette innstillinger er utfĂžrt', 1) -Align 2}
            DEFAULT {ShowMessage 'Ugyldig valg valgt'}
        }
        if ($Selections -contains $Select) {Clear-Host; ShowMessage (15, ' 0 - Avslutt', ' 1 - Velg XML-fil for installasjon', ' 2 - Vis gjeldende konfigurasjon av multi-kiosk', ' 3 - Slett innstillinger for multi-kiosk', 1)}
    }
}

Funksjon XMLSelection() {
    Clear-Host

    if (!(Test-Path -Path $PSScriptRoot'XML')) {ShowMessage -Message (13, 'Katalog ikke funnet', $('"'+$PSScriptRoot+'XML"'), 1, 'Trykk "Enter" for Ä gÄ tilbake til forrige 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, 'Ingen XML-filer funnet i katalogen', $('"'+$PSScriptRoot+'XML"'), 1, 'Trykk "Enter" for Ä gÄ tilbake til forrige meny') -Align 2; Read-Host; Return}

    [int]$local:Indent = 13 - $XMLList.Count / 2; if ($Indent -lt 1) {$Indent = 1}
    ShowMessage ($Indent, ' 0 - GĂ„ tilbake til forrige meny')
    for ($i=0; $i -le $XMLList.GetUpperBound(0); $i++) {Write-Host $(' '+($i+1)+' - '+$XMLList[$i])}
    Write-Host
    $local:PromptText = 'Velg fil for installasjon'
    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 $('Denne kommandoen anvender innstillinger fra fil '+$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 ('Ugyldig valg valgt')} 
        }
    }
}

MainMenu

Dersom du Þnsker Ä bruke lÞsningen min, mÄ du lagre de nevnte skriptene i en mappe med de originale navnene og legge filen «PsExec.exe» i samme mappe. I denne mappen, opprett en mappe kalt «XML» og kopier XML-filene for Ä konfigurere multikiosken hit. Jeg vil bruke samme fil som i den fÞrste metoden.

MultiAppKiosk.xml

<![CDATA[
                    
                    
                      
                        
                          
                            
                            
                          
                          
                            
                            
                            
                            
                            
                          
                        
                      
                    
                  ]]>
          
          
      
  
  
      
          Bruker

Noe om funksjonene til skriptet. Skriptet er laget for Ä bruke XML-filer med kodingen «UTF8», hvis du Þnsker Ä bruke «ANSI» kodingen, mÄ du fjerne parameteren «encoding UTF8» fra fillesingsparameteren. XML-filer mÄ plasseres i «XML» mappen uten erstatning av symboler, skriptet vil selv erstatte spesialsymboler med passende betegnelser. For Ä unngÄ forvirring med GUID-er for brukertilknytning til profiler, kan du ganske enkelt angi nummer eller brukernavn i klammene; alt innhold i klammene vil bli erstattet med GUID-er.

Det er veldig enkelt Ä bruke skriptet; du starter det og velger det nÞdvendige punktet. For Ä endre den nÄvÊrende konfigurasjonen til en ny, er det ikke nÞdvendig Ä slette den nÄvÊrende, den vil bli overskrevet. Husk Ä opprette brukere som er angitt i konfigurasjonsfilen.

NÄr du ser den nÄvÊrende konfigurasjonen av multikiosken i den samme Þkten den ble anvendt, vil spesialsymbolene bli vist som kombinasjoner av erstatningssymboler. Etter Ä ha skiftet Þkt (restartet skriptet), vil alle spesialsymbolene vises i original versjon.

Trinn 7 – forsegle systemet

Multikiosken er i drift, men det var alt, ikke sant


Hvis alt gÄr etter planen, sÄ overser du noe.

Ikke glem at vi ogsÄ mÄ oversette systemet fra revisjonsmodus til velkomstmodus. Vel, vi er klare for dette, vi kjÞrer «Sysprep.bat», velger punkt 2, systemet forsegles. Vi slÄr pÄ enheten, systemet starter, vi logger inn pÄ brukerkontoen som multikiosken er konfigurert for, og vi kan ikke logge inn. Etter teksten «Velkommen» vises teksten «Logger ut».

FĂžrst Ăžnsket jeg Ă„ beskrive bare lĂžsningen pĂ„ problemet, men senere bestemte jeg meg for Ă„ beskrive trinnene for Ă„ identifisere problemet og finne den enkleste lĂžsningen, siden mange som leser kanskje vil ha uklare tvil – «Hva hvis sĂ„nn ». Jeg tror at beskrivelsen av de forskjellige eksperimentene vil spare deg for en betydelig mengde tid hvis du Ăžnsker Ă„ finne en annen lĂžsning. For at informasjonen skal vĂŠre sĂ„ nĂžyaktig som mulig, og for Ă„ forsikre meg om at det ikke er noen feil, vil jeg gjĂžre beskrivelsen av eksperimentene i formatet «gjorde – noterte». Det vil si at jeg vil utfĂžre de beskrevne eksperimentene en gang til.

Eksperimenter

Hva har vi fÄtt. Det er to brukerkontoer i systemet:

«Admin» – i gruppen «Administratorer»
«User» – i gruppen «Brukere»
I auditmodus fungerte multi-kiosk, men etter Ă„ ha sperret – fungerer det ikke.

Eksperiment 1

Vi fjerner det installerte forberedelsespakken, i verktĂžyet «Computerbehandling» fjerner vi brukeren «User» og oppretter en ny bruker med navn «User», bruker forberedelsespakken, logger inn pĂ„ brukerkontoen «User» – fungerer ikke. Logger inn som «Admin», fjerner brukeren «User» fra gruppen «Brukere», legger den til i gruppen «Administratorer», logger inn som «User» – fungerer ikke. Logger inn som «Admin», fjerner forberedelsespakken med multi-kiosken, logger inn som «User» – klarte Ă„ logge inn, men naturligvis fungerer ikke multi-kiosk-modus ettersom forberedelsespakken ble fjernet.

Eksperiment 2

Vi laster opp systembildet – lokal tilpasset i auditmodus.

Operativsystemet har startat. Vi trycker pĂ„ "Win+r" eftersom sysprep-fönstret stĂ€ngdes automatiskt. Vi kör kommandot "sysprep" och i det öppna fönstret startar vi "sysprep". InstĂ€llningarna för sysprep i fönstret: "GĂ„ till fönstret för systempresentation (OOBE)", "Förbered för anvĂ€ndning", "Omstart". Vi trycker pĂ„ "OK" och vĂ€ntar pĂ„ att operativsystemet ska vĂ€lkomna oss. Vi svarar pĂ„ frĂ„gorna vid första uppstarten: "FortsĂ€tta pĂ„ valt sprĂ„k?" – "ryska"; region – Ryssland; tangentbordslayout – Rysk; lĂ€gg till en andra tangentbordslayout – hoppa över; "LĂ„t oss koppla dig till nĂ€tverket" – "Hoppa över för tillfĂ€llet"; anslut till internet – nej; licensavtalet – acceptera; "Vem kommer att anvĂ€nda den hĂ€r datorn" – "Test"; skapa ett lösenord – lĂ€mnar fĂ€ltet tomt; bekvĂ€m anvĂ€ndning pĂ„ olika enheter – nej; sekretessinstĂ€llningar – acceptera. Operativsystemet har startat. I "Datorhantering" skapar vi en anvĂ€ndare med namnet "User", lĂ€gger till förberedelsepaketet. Resultat – fungerar inte.

Experiment 3

Vi laster opp systembildet – lokal tilpasset i auditmodus.

Operativsystemet har startat, vi kopplar systemet till internet, kör kommandot "gpedit.msc" och i avsnittet "Windows Update Center" aktiverar vi parametern "Aktivera rekommenderade uppdateringar via automatisk uppdatering". För sĂ€kerhets skull startar vi om. I uppdateringscentret trycker vi pĂ„ "Kontrollera om det finns uppdateringar" och startar om tills alla uppdateringar Ă€r installerade. Vi kopplar bort systemet frĂ„n internet. Vi startar "sysprep" i grafiskt lĂ€ge och upprepar alla Ă„tgĂ€rder som beskrivs i föregĂ„ende steg med att starta verktyget "sysprep" fram till att vi lĂ€gger till förberedelsepaketet. Resultat – fungerar inte.

Experiment 4

Vi laddar upp systemavbildningen – engelsksprĂ„kig i granskninglĂ€ge.

Vi startar "sysprep" i grafiskt lĂ€ge, grundar operativsystemet med samma instĂ€llningar som under experiment 2. Vid första uppstarten av systemet vĂ€ljer vi samma instĂ€llningar som i experiment 2, med undantag för regionala och sprĂ„kliga instĂ€llningar eftersom ett ryskt sprĂ„k inte finns. Vi skapar ocksĂ„ anvĂ€ndaren "User" och lĂ€gger till förberedelsepaketet. Resultat – fungerar. D.v.s. problemet Ă€r relaterat till lokaliseringen.

Experiment 5

Vi laster opp systembildet – lokal tilpasset i auditmodus.

I "Datorhantering" skapar vi anvÀndaren "User", lÀgger till förberedelsepaketet, gÄr in i anvÀndarkontot "User", och multimediafunktionssystemet fungerar.

Logg ut av kontoen, logg inn med kontoen «Admin». Start PowerShell med administratorrettigheter, kjÞr kommandoen «Dism /online /Get-Intl» og se «Standard brukergrensesnitt sprÄk: en-US».

Start opp fra USB i WinPE, den utplasserte OS-en er pÄ disk E. KjÞr kommandoen «Dism /image:E: /Set-UILang:ru-ru». Se resultatet, kjÞr «Dism /image:E: /Get-Intl» og se «Standard system UI-sprÄk: ru-RU».

Logg inn i systemet med kontoen «User», multikiosken fungerer ikke.

For Ä tydelig dokumentere Ärsakssammenhengen til problemet, vil vi prÞve Ä gjÞre multikiosken bÄde funksjonell og ikke-funksjonell en gang til.

Start opp fra USB i WinPE, den utplasserte OS-en er pÄ disk E. KjÞr kommandoen «Dism /image:E: /Set-UILang:en-us». Se resultatet, kjÞr «Dism /image:E: /Get-Intl» og se «Standard system UI-sprÄk: en-US».

Logg inn i systemet med kontoen «User», multikiosken fungerer.

Start opp fra USB i WinPE, den utplasserte OS-en er pÄ disk E. KjÞr kommandoen «Dism /image:E: /Set-UILang:ru-ru». Se resultatet, kjÞr «Dism /image:E: /Get-Intl» og se «Standard system UI-sprÄk: ru-RU».

Logg inn i systemet med kontoen «User», multikiosken fungerer ikke.

Det vil si at det er en klar avhengighet mellom kioskenes funksjonalitet og standard brukergrensesnitt sprÄk. Kan det vÊre andre faktorer som pÄvirker multikioskens funksjonalitet?

Eksperiment 6

For Ă„ opprettholde eksperimentets renhet, installer systemet pĂ„ nytt. Bruk et systembilde – oversatt i audit-modus.

Start «sysprep» i grafisk modus, pakke inn OS med de samme innstillingene som under eksperiment 2. Vent pĂ„ OS-velkommen og svar pĂ„ spĂžrsmĂ„lene: «Fortsatt i valgt sprĂ„k?» – «English (United States)»; region – Russland; tastaturoppsett – Russisk. Alle andre innstillinger er valgt som i eksperiment 2.

Se verdiene for standard brukergrensesnitt sprÄk. KjÞr kommandoen «Dism /online /Get-Intl» og se «Standard system UI-sprÄk: en-US». I «DatamaskinhÄndtering»-verktÞyet oppretter vi brukeren «User», legger til forberedelsespakken, logger inn i kontoen «User», multikiosken fungerer.

Vi prÞver Ä Þdelegge kiosken ved Ä endre standard brukergrensesnitt sprÄk. Logg inn som bruker «Test», som ble opprettet ved fÞrste oppstart av systemet, og aktiverer automatisk pÄlogging for Ä hindre at systemet logger inn i kontoen «User» med en gang. KjÞr «netplwiz», velg brukeren «Test», fjern merket for «Krev innlogging med brukernavn og passord» og anvend innstillingene.

Vi starter fra USB med WinPE. KjÞr kommandoen «Dism /image:E: /Set-UILang:ru-ru». Se pÄ resultatet, kjÞr «Dism /image:E: /Get-Intl» og se «Default system UI language: ru-RU».

Vi starter opp i systemet, prÞver Ä logge inn pÄ brukerprofilen «User», multikiosk fungerer. Det vil si at det ikke lar seg bryte. Men kan det tvinges til Ä fungere pÄ denne mÄten?

Eksperiment 7

Vi laster opp systembildet – lokal tilpasset i auditmodus.

Vi kjÞrer «Sysprep.bat», velger punkt 2. Vi logger inn i systemet, i «Datamaskinbehandling» oppretter vi brukeren «User», legger til forberedelsespakken, logger inn pÄ brukerprofilen «User», multikiosk fungerer ikke.

Vi starter fra USB med WinPE. KjÞr kommandoen «Dism /image:E: /Set-UILang:en-us». Se pÄ resultatet, kjÞr «Dism /image:E: /Get-Intl» og se «Default system UI language: en-US».

Vi starter opp i systemet, prÞver Ä logge inn pÄ brukerprofilen «User», multikiosk fungerer ikke.

Det viser seg at ved Ä endre standard brukergrensesnitt sprÄkinnstilling kan man pÄvirke funksjonaliteten til multikiosken kun nÄr systemet er i audit-modus eller ved fÞrste oppstart etter systemet er forseglet. Det betyr at det mÄ forsegles med et svarfil som har valgt engelsk som system sprÄk, og deretter endres systeminnstillingene til Ä gjÞre grensesnittet russisk. Ikke en veldig god lÞsning. Kanskje problemet kan lÞses ved Ä installere sprÄkpakken eller ved Ä installere ekstra sprÄkpakker?

Eksperiment 8

Vi laddar upp systemavbildningen – engelsksprĂ„kig i granskninglĂ€ge.

Vi kobler til internett, i systeminnstillingene gÄr vi til «Language», velger «Add language», velger sprÄket «Russisk», klikker «Next», beholder standard installasjonsinnstillinger, klikker «Install», etter installasjonen av sprÄkpakken omstarter vi systemet, nÄ er det russifisert. Vi frakobler systemet fra internett, kjÞrer «Sysprep.bat», velger punkt 2.

Etter systemopplasting i «Datamaskinbehandling» oppretter vi brukeren «User», legger til forberedelsespakken, logger inn pÄ brukerprofilen «User», multikiosk fungerer ikke.

Eksperiment 9

La oss forsÞke Ä russifisere systemet fÞr installasjonen, i offline-modus. Samtidig fÄr vi en kort innfÞring i lokalisering av distribusjonen.

Jeg tar en flash-enhet med en ren original distribusjon – X21-96381. Den vil vĂŠre disk «E». For Ă„ montere bildene lager jeg mapper: «c:MountInstall», «c:MountWinre», «c:MountBoot». Jeg tar et sett med lokaliseringspakker – X21-87814. Og kopierer fra dette inn i mappen «c:Mount»: «Microsoft-Windows-Client-Language-Pack_x86_ru-ru.cab», «lp.cab», «WinPE-Setup_ru-ru.cab». Jeg starter konsollen med administratorrettigheter. Jeg antar at de videre kommandoene vil vĂŠre forstĂ„elige uten kommentarer.

Lokaliseringskommandoer

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

Vi starter opp fra flash-enheten, velger russisk sprÄk og installerer systemet pÄ en ren disk. NÄr systemet ber om Ä velge region, trykker vi «Ctrl+Shift+F3». I verktÞyet «Datamaskinstyring» oppretter vi brukeren «User», legger til en forberedelsespakke, logger inn pÄ kontoen «User», og multi kiosk fungerer ikke.

Vi starter opp fra flash-enheten i WinPE. UtfÞrer kommandoen «Dism /image:E: /Set-UILang:en-us».

Vi starter opp i systemet, prÞver Ä logge inn pÄ kontoen «User», multi kiosk fungerer.

Det ser ut til at det ikke er metoden for Ă„ legge til pakken, vi prĂžver Ă„ legge til flere pakker.

Eksperiment 10

Vi tar flash-enheten som vi forberedte i forrige trinn.

Vi tar pakken «Feat on Demand» – X21-87815. Jeg kopierer fra den inn i mappen «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».

Vi tar pakken «Feat on Demand RDX Updt» – X21-99781. Jeg kopierer fra den til mappen «c:Mount» fĂžlgende pakker: «Microsoft-Windows-RetailDemo-OfflineContent-Content-Package~31bf3856ad364e35~x86~~.cab», «Microsoft-Windows-RetailDemo-OfflineContent-Content-ru-ru-Package~31bf3856ad364e35~x86~~.cab».

Vi Äpner konsollen med administratorrettigheter og utfÞrer kommandoene:

Kommandoar

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 starter opp fra USB-minnet, velger russisk sprÄk og installerer systemet pÄ en ren disk. NÄr systemet ber om Ä velge region, trykker vi «Ctrl+Shift+F3». I verktÞyet «Databehandling» oppretter vi brukeren «User», legger til forberedelsespakken, og logger inn pÄ kontoen «User». Jeg fikk en svart skjerm som hang lenge, sÄ jeg utfÞrte en hard omstart av systemet.

Vi fjerner forberedelsespakken, logger inn som «User», omstarter systemet, legger til forberedelsespakken, men multikiosk fungerer ikke.

Vi starter opp fra flash-enheten i WinPE. UtfÞrer kommandoen «Dism /image:E: /Set-UILang:en-us».

Vi starter opp i systemet, prÞver Ä logge inn pÄ kontoen «User», multi kiosk fungerer.

OmgÄ problemet

Ordentlige helter gÄr alltid utenom!

Ulike metoder for Ä installere lokaliseringspakker lÞste ikke problemet, sÄ jeg mÄ installere sprÄket «en-us» ved fÞrste oppstart etter forseglingen, og deretter endre sprÄkinnstillingene etter fÞrste oppstart.

Vi laster opp systembildet – lokal tilpasset i auditmodus.

I filen «Unattend.xml» skriver vi inn «en-US» i parameteren, kjĂžrer «Sysprep.bat», velger punkt 2 og ser hva vi har fĂ„tt. Velkomstskjermen er pĂ„ engelsk, multikiosk fungerer – sĂ„ vi mĂ„ legge til en kommando i «Unattend.xml» for Ă„ endre velkomstsprĂ„ket. For dette mĂ„ vi utfĂžre kommandoen «control intl.cpl,,/f:» med henvisning til konfigurasjonsfilen, der de nĂ„vĂŠrende innstillingene skal kopieres til velkomstskjermen. Innholdet i konfigurasjonsfilen vil se slik ut.

Siden det vil vÊre en kopiering av innstillinger fra den nÄvÊrende brukeren, mÄ kommandoen utfÞres etter at brukeren har logget inn i systemet, noe som betyr at vi trenger det. Det er et lite «men», utfÞrelsen vil vÊre etter at brukeren har logget inn med administratorrettigheter. Jeg vil ikke opprette en ekstra fil som vil vÊre nÞdvendig for at kommandoen skal kjÞres vellykket. Bedre Ä implementere hele lÞsningen i én fil - «Unattend.xml». For dette mÄ vi bare kjÞre kommandoen som oppretter konfigurasjonsfilen. Jeg tror jeg vil opprette konfigurasjonsfilen ved hjelp av kommandoen «echo» i «cmd»-miljÞet, men her mÄ vi eskalere vinkelparentesene med en sirkumfleks. Det vil si at kommandoen for Ä opprette konfigurasjonsfilen ser slik ut.

echo ^^^^^>Config.xml

Men vi mÄ plassere denne kommandoen i en XML som har sine egne krav til bruk av spesialtegn:

Spesialtegn
Erstattningsverdi

>
>

<
<

&
&

‘
'

“
"

Resultatet for Ä opprette konfigurasjonsfilen ble en slik kommando for «FirstLogonCommands».

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"

Deretter kjĂžrer vi kommandoen som bruker konfigurasjonsfilen.

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

Deretter fjerner vi den tidligere opprettede filen og starter systemet pÄ nytt ettersom endringene vil tre i kraft etter omstart.

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

Som et resultat fikk jeg en slik svarfil for sysprep.

Unattend.xml

reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v SetupDisplayedProductKey /t REG_DWORD /d 1 /f
                    1
                    Ikke vis nĂžkkel siden
                
                
                    reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v UnattendCreatedUser /t REG_DWORD /d 1 /f
                    2
                    Ikke opprett konto
                
                
                    cmd.exe /c rd %systemdrive%Sysprep /s /q
                    3
                    Slett mappe
                
            
        
        
            
                true
                Admin
            
        
    
    
        
            en-US; ru-RU
            ru-RU
            en-US
            
            ru-RU
        
        
            
                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^>&quot;%TMP%Config.xml&quot;
                    OpprettConfig
                    1
                
                
                    control intl.cpl,,/f:"%TMP%Config.xml"
                    BrukConfig
                    2
                
                
                    cmd.exe /c del &quot;%TMP%Config.xml&quot; /q&amp;shutdown /r /f /t 00
                    SlettConfig
                    3

Vi sjekker...

Vi laster opp systembildet – lokal tilpasset i auditmodus.

Vi bytter ut Unattend.xml-filen med en ny, kjÞrer «Sysprep.bat», velger punkt 2, og ser hva vi har fÄtt. Ved fÞrste oppstart vises velkomstskjermen pÄ engelsk, systemet starter pÄ nytt. Velkomstskjermen vises pÄ russisk, og multi-kiosk fungerer.

Hvis du har spÞrsmÄl angÄende oppsett og lisensiering av Windows 10 IoT Enterprise, kontakt oss pÄ mse@quarta.ru eller nettsiden quarta-embedded.ru.
Du kan finne svar pÄ noen spÞrsmÄl i vÄr wiki eller pÄ vÄr YouTube-kanalen

Forfatter av artikkelen: Borisenkov Vladimir, teknisk ekspert i Kvarte Teknologier.

Kilde: habr.com

KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster