Sissejuhatus
– järgmise Windows 10 väljaande turundusnimi. Selle versiooni avalikustamine toimus 2018. aasta septembris, seega on see versioon 1809, 18 – aasta, 09 – kuu. Uue Windows 10 1809 väljaande kohta on kirjutatud palju artikleid, kuid enamasti käsitletakse seal erinevaid „kaunistusi“, „ilu” ja erinevaid funktsioone, mis on nõutud kodustes tingimustes.
Käesolevas artiklis käsitletakse ainult funktsioone, mis võivad olla olulised koduse seadmete tootjatele. Eelkõige uute võimaluste kohta „Kioski” režiimis. Samuti käsitletakse Windowsi ärisegmentide väljaannete teenindusskeemide nimetuste muutmiseks.
Vana teenindusskeem uue nimega
Alustan veidi selgitustega: Windowsi väljaannetes on kaks teenindusskeemi, mille alusel Windows saab värskendusi. Teenindusskeemidel on tähistamine. Praegu nimetatakse teenindusharusid LTSC ja SAC.
LTSC – tähendab (pikaajalise teenusega). Varasemalt nimetati seda kanalit LTSB – Long Term Servicing Branch, Microsoft lihtsalt muutis teenuse kanali nime, kuid teenus ise jäi samaks.
Samuti muutis Microsoft teenuse haru nime CBB – Current Branch for Business, nüüd nimetatakse seda teenuse haru SAC – . Taaskord muutus ainult nimi.
Kuid tuleb mainida, et LTSC ja SAC teenuseharude jaoks kasutatakse erinevaid Windows'i distributsioone.
Natuke uutest kioskitest SAC-s
Nagu ma juba mainisin, on LTSC-l ja SAC-l erinevad distributsioonid. LTSC-l ei ole standardseid universaalseid rakendusi ega rakenduste poodi, kuid SAC-l on. Seega, LTSC-l ei ole Edge'i brauserit, kuid SAC-l on. Kui kioski seadistamisel valida Edge'i brauser, on nüüd kaks režiimi kätte saadavad:
- Kuna digitaalne silt või interaktiivne ekraan
- Kuna avalik brauser
Ma ei jää detailidesse, kuidas neid režiime seadistada, kuna seadistamine on üsna lihtne ja toimub graafilises liideses. Lihtsalt looge kasutaja, kes ei kuulu gruppi «Administraatorid», aktiveerige sellele kioskirežiim EDGE'i abil ja uurige, kuidas need režiimid toimivad.
Mitme rakendusega kiosk
Mõned arvavad, et litsentseeritud kasutamine tähendab seadme peal ainult ühe rakenduse tööd, kuid tegelikult pole see nii. Seade peab olema mõeldud ühe äritöö ülesande täitmiseks ja kasutajal ei tohiks olla juurdepääsu töölauale. Nüüd on Microsoft ise pakkunud tööriista mitme rakenduse kasutamiseks. Seda režiimi nimetatakse "multi-app kiosk", edaspidi lühidalt "mülitkiosk". Selles artiklis vaatame selle režiimi seadistamist varustuspaketi abil ning mõningaid selle režiimi eripärasid.
Veidi "Mülitkioski" režiimist
Kasutaja kontole sisenemisel, millele on seadistatud multimöödik esitatakse süsteem tahvelarvuti režiimis. Menüü 'Algus' laiendatakse täisekraanile, kus kuvatakse rakenduste ruutude jaoks.
Peamiste seadistuste ja režiimi võimaluste nimekiri:
- Seadistus paljudele kasutajatele või rühmadele
- Igaühele kasutajale või rühmale saab määrata individuaalsed seaded.
- Universaalsete ja klassikaliste rakenduste kasutamise võimalus
- Võimalus automaatseks käivitamiseks üks rakendustest kasutaja sisenemise ajal süsteemi
- Rakenduste toimimine valge nimekirja alusel
- Külastus kaustadele valge nimekirja alusel
Tasub tähelepanu pöörata punktile 5. Vaikimisi on lubatud töötada ainult nende rakendustega, mis on süsteemi tööks vajalikud; teised rakendused tuleb lisada lubatud nimekirja. See tähendab, et nüüd ei pea AppLockerit eraldi seadistama. Muide, et vältida AppLocker’i seadistuste konflikti, ei kehti multimöödiku režiimis kõik seadistatud AppLocker’i reeglid.
Kohas 6 on välja toodud hea võimalus, kuid hetkel saab kirjutamisõiguse anda ainult kaustale «Downloads». Režiim võimaldab kasutada universaalseid ja klassikalisi rakendusi. Kõik režiimi seadistused määratakse XML-failis, kus saab määrata ka seadeid ühe rakenduse kioskile.
Nüüd proovime kõik need seaded üles seada…
Mida meil on vaja…
- Esiteks vajame süsteemi, mis toetab mitme kioski režiimi. demoversioni
- Igasugune XML redaktor
- Mitmekioski seadete rakendamiseks:
- Meetodi nr 1 – ICD, mis kuulub ADK-sse. ADK-d saab
- Meetodi nr 2 – utiliit PsExec. Utiliiti saab
Ta ütles – "Lähme!"
Kõiki katseid teen Windows 10 IoT Enterprise 1809 LTSC x32 kommertsversiooniga, mitte demoversioniga. Süsteem on ilma aktiveerimiseta, kuna aktiveerimise puudumine ei mõjuta süsteemi funktsionaalsust. Valisin 32 biti ainult sellepärast, et see võtab vähem ruumi ja süsteemi piltidega töötamine on kiirem.
Samm 1 – paigaldamine
Win 10 IoT Enterprise'i installatsioon ei erine Win 10 Enterprise'i installatsioonist, seega ei hakka ma kogu installatsiooniprotsessi kirjeldama, vaid räägin vaid mõnest nüansist.
Kordamiseks, ärge installige süsteemi üle olemasoleva. Kui installija küsib, kuhu süsteem paigaldada, eemaldage kõik osad tulevaselt süsteemi kettalt ja valige jaotamata ketas.
Paigaldame süsteemi ilma Interneti-ühenduseta, et süsteem ei tõmbaks midagi üleliigset.
Kuna me kavatseme luua süsteemi varukoopiaid ja selle seondada auditi režiimis, siis saame natuke aega kokku hoida, kui laadime süsteemi auditi režiimi kohe pärast installatsiooni. Selleks, kui süsteem palub teil valida piirkond "Let's start with region. Is this right", vajutage lihtsalt "Ctrl+Shift+F3".
Samm 2 – loome süsteemi pildi
Kuna me katsetame süsteemi, proovides erinevaid uusi seadeid, ei saa välistada, et midagi läheb valesti ja süsteemi tuleb algsesse olekusse naasta. Kiireks naasmine algsesse olekusse nõuab süsteemi kuvandi loomist. Ainus, mida ma teen, on "gentlemani komplekti" – skripti ja vastustefaili kopeerimine. Kõik failid on mul kaustas "Sysprep", mille kopeerin süsteemi kõvaketta juurde. Loomulikult jagan ma teile ka seda "gentlemani komplekti".
Sysprep.bat – süsteemi pakkimiseks.
@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 :eofSkripti käivitamisel kontrollitakse, kas «Admin» konto on olemas, ja kui seda pole, siis luuakse see. Konto lisatakse «Administrators» rühma.
Unattend.xml – sysprep'i vastuste fail.
reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v SetupDisplayedProductKey /t REG_DWORD /d 1 /f
1
Ära näita võtme lehte
reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v UnattendCreatedUser /t REG_DWORD /d 1 /f
2
Ära loo kontot
cmd.exe /c rd %systemdrive%Sysprep /s /q
3
Kustuta kaust
true
Admin
en-US; et-EE
et-EE
et-EE
et-EE
true
true
true
true
true
1Auditeerimisrežiimis pitseerimise korral lisab skript registrisse käsu protsessi „sysprep.exe” lõpetamiseks, et sulgeda sysprep'i aken iga kord käsitsi. Tervitusrežiimis pitseerimise korral eemaldab skript registrist akna sulgemise käsu ja muudab ise arhitektuuri väärtuse vastuste failis kehtivaks. Vastuste fail sisaldab süsteemi laadimise parameetreid ilma kasutaja osaluseta ja käsku „Sysprep” kausta kustutamiseks süsteemi ketta juures.
Nüüd pitseerin süsteemi auditeerimisrežiimis, kasutades „Sysprep.bat”, ja teen süsteemi pildi. Teen süsteemi pilti DISM'i kaudu ja teen pilti ainult süsteemilisest mahust. Kui teete pilti ainult süsteemilisest mahust, mitte kogu kettast, siis ärge unustage kopeerida kausta „WindowsSystem32Recovery” sisu esimeses mahus kausta „RecoveryWindowsRE” pärast süsteemi seadistamist. See tuleb teha enne operatsioonisüsteemi laadimist, kuna pärast operatsioonisüsteemi käivitamist on kaust „WindowsSystem32Recovery” juba tühi.
Samm 3 - süsteemi venekeelne versioon
Keelepaketti saab installida ilma Interneti-ühenduseta, kui see pakett teil olemas on. Kui ei, siis süsteem laadib selle Internetist alla, kui lisate keele seadetes. Ainult ärge võtke keelepaketti eelmiste operatsioonisüsteemi versioonide jaoks. Windows 10 1809 jaoks peaks olema just Windows 10 1809 keelepakett.
Microsoft järgib oma plaani – järkjärgulist seadete üleviimist klassikalisest menüüst uude, seetõttu te ei leia klassikalisest juhtpaneelist seadeid keele muutmiseks ja keelepaketi installimiseks. Need seaded on nüüd saadaval ainult süsteemi seadetes.
Auditeerimisrežiimis võite kohata probleemi süsteemi seadete avamisel menüüst „Start”. Sistseemi seadete avamiseks kasutage käsku – „ms-settings:”, pöörake tähelepanu, et käsu lõpus on kahepunktiline, ilma selleta käsk ei tööta. Pärast ühekordset süsteemi seadete avamist selle käsu abil, saab neid avada ka graafilise menüü kaudu.
Kuid süsteemi seadetes saate keelepaketi installida, kui süsteem on internetiga ühendatud, kohalikult faililt keelepaketi installimise valikut ei ole.
Ei hakka süsteemi lokaliseerimise protsessi kirjeldama, kuna see muudab artikli oluliselt pikemaks, veelgi enam, et lokaliseerimise protsess on põhjalikult . Tahtsin aga juhtida tähelepanu sellele, et süsteemi keele muutmine pärast keelepaketi installimist konsoli kaudu on eripära. See eripära on kirjeldatud samas vikis, millele andsin linki varem, jaotises .
Ma installin keelepaketi ilma internetiühenduseta.
Pärast süsteemi täis lokaliseerimist looge kindlasti süsteemi pilt.
Samm 4 – vajalike rakenduste installimine
Kuna LTSB ja LTSC süsteemides ei ole rakenduste pood, siis rakenduste installimine Microsoft Store'ist tekitab teatud raskusi, nimelt – rakenduse allalaadimine. Rakenduste allalaadimiseks on ettevõte Adguard loonud väga mugava teenuse – , mille abil saab ajutisi allalaadimise linke rakendustele ja nende komponentidele.
Rakenduse installimiseks vajate faililaiendeid „Appx” ja „AppxBundle”. Enne rakenduse installimist tuleb paigaldada selle komponendid. Reeglina eristatakse rakenduse komponente intuitiivselt faili nime järgi.
Kuna ma ei taha artiklit liiga pikaks muuta, ei hakka ma rakenduste installimisprotsessi üksikasjalikult kirjeldama, eriti kuna installimise kohta on olemas . Kuid lisan veel ühe meetodi rakenduste installimiseks praeguses kontos. Rakendusi saab installida programmi , kuid rakenduste installimiseks on vajalik internetiühendus; samas saab rakendusi installida topeltklõpsuga hiirega ja teile ei ole vaja komponente, kõik vajalikud komponendid laadib ja installib .
Ja väike meeldetuletus: praeguses kontos rakenduse installimisel ei saa süsteemi varundada. Kuidas rakendusi installida, et süsteemi oleks võimalik varundada, vaadake eespool nimetatud juhendist. Ja kontrollimiseks on olemasolevad rakendused multifunktsionaalses kioskis täiesti piisavad.
Samm 5 – multikioski seadistusfaili loomine
Nüüd oleme jõudnud kõige huvitavama juurde – kioskirežiimi seadistamise juurde. Vaatame seadistamiseks ja näeme. Kõigepealt peame looma konfiguratsiooni XML-faili, mille täiuslik näidis on saadaval .
Alustame plaatide asukoha seadistamisest. Lihtsaim viis XML-konfiguratsiooni loomiseks plaatide seadistamiseks on .
Esmalt lisame Start-menüüsse need rakenduste plaadid, mida me vajame. Otsime "Win+s" abil vajalikku rakendust, klõpsame sellel hiire parema nupuga ja valime valiku "Kinnita algsele ekraanile".
Olen kinnitanud järgmised rakendused:
- Kloon
- Kalkulaator
- Internet Explorer
- Paint
- WordPad
- Parameetrid
- Windowsi turvalisus
Viimased kaks rakendust on kinnitatud, kuna LTSC tavapakendis ei ole teisi universaalseid rakendusi. Pange tähele, et klassikaliste rakenduste ruudukesed viitavad otseteele. Nüüd, tõstes ruudukesi otse algmenüüs, jagan kinnitatud ruudukesi kahte gruppi. Uue ruutude rühma loomiseks tõstke ruut märgatavalt kõrgemale või madalamale teiste ruutude suhtes, samas ilmub intuitiivne eraldaja. Saate rühmi nimetada enda äraolekul, selleks viige hiirekursor rühma peale ja kui ilmub tekst „Nimeta grupp”, klõpsake vasakut hiireklahvi. Esimese grupi nimetan „Seaded”, kuhu kuuluvad ruudukesed „Seaded” ja „Windowsi turvalisus”. Teise grupi nimetan „Kontorirakendused”, kuhu kuuluvad kõik ülejäänud ruudukesed. Muide, kogu ruutude gruppe saab liigutada, tõstes neid kahe riba kaudu, mis asuvad rühma nimetuse paremal ülaservas.
Kuna Windows'i „Turvalisuse” kaardile ei mahudu täielikult nimi, muudan selle suuruseks „Lai”. Kaardi suuruse muutmiseks vajutage kaardil parema hiireklõpsuga ja valige „Muuda suurust”.
Pärast seadistamist ekspordime praeguse oleku, käivitades PowerShelli keskkonnas käsu - „Export-StartLayout – path C:SysprepStartLayout.xml”.
Edasi on lihtsam mitte luua seadistuste faili ise, vaid seadeid – vajutage nuppu «Copy», kleepige sisu tekstifaili ja salvestage see nimega «MultiAppKiosk.xml». Nüüd muutke seaded endale sobivaks. Kinnitatud plaatide seadete muutmiseks kopeerige kogu konteiner «StartLayoutCollection» failist «StartLayout.xml» faili «MultiAppKiosk.xml». Rakenduste lubamiseks peate sisestama universaalsete rakenduste ID-d ja lisama samasse plokki täistee klassikaliste rakenduste käivitatavatele failidele, mis on määratletud otsetee omadustes, millele plaadid viitavad. Kiireks otseteele pääsemiseks paremklõpsake kinnitatud plaadil ja valige menüüs «Lisa > Mine faili asukohta». Pange tähele, et universaalse rakenduse ID määramisel kasutatakse parameetrit «AppUserModelId» ning klassikalise rakenduse täistee määramisel parameetrit «DesktopAppPath». Ja veel üks väike nüanss: kui plaanite kasutada IE süsteemis x64, peate lubatud rakenduste loendis määrama kaks teed käivitatava failile «Program FilesInternet Exploreriexplore.exe» ja «Program Files (x86)Internet Exploreriexplore.exe».
Ma ei anna juurdepääsu kaustadele, seega eemaldan jao «FileExplorerNamespaceRestrictions».
Töölaua paneel mulle ei sega, seega jätan jao «Taskbar» kõik nii, nagu on.
Näites on toodud kaks profiili, aga mul on vaid üks profiil, seega saab teise profiiliga seotud jao eemaldada. Enne kustutamist pöörake tähelepanu näitele rakenduse automaatse käivitamise argumentide kohta.
Jaos «Configs» on kontod seotud profiilidega, pidage meeles, et ühele profiilile saab siduda mitu kontot. Kuid kuna mind huvitab vaid üks konto, eemaldan kõik sidumised peale esimese – jaod «Config». Järelejäänud sidumisse kirjutan kasutajanime «User».
Mul on selline fail parameetritega
MultiAppKiosk.xml
<![CDATA[
]]>
UserKui loote oma XML-seade faile, pidage meeles, et igal profiilil peab olema ainulaadne ID, mitte ainult ühe XML-faili piires, vaid ka ühes operatsioonisüsteemis. Parim on igal korral new identifikaatori loomine, mida saate teha PowerShellis käsuga „[guid]::NewGuid()”. Samuti salvestage fail kindlasti „UTF-8” kodeeringus, sest kui fail salvestatakse „ANSI” kodeeringus, siis paketi koostamise ajal saate vea, kui XML-failis on kirillitsa.
Samm 6 – multikioskide seadete rakendamine
Vaadakem kahte meetodit seadete rakendamiseks, mida on kirjeldatud konfigureerimisfailis. Esimene – ettevalmistuspaketi abil, mida tuleb ICD-s luua. Mõne jaoks võib see meetod tunduda tuttavam. Teine – kasutades „MDM Bridge WMI Provider”, mis tundub mulle mugavam.
Meetod nr 1
Kellel pole ICD-d, ja installige. ADK installimine on väga lihtne, komponentide komplekti saab jätta vaikeväärtustele.
Käivitame ICD, klõpsame nuppu „Lisatud ettevalmistus“, määrame projekti nime ja kausta ning klõpsame „Edasi“. Järgmises aknas valime „Kõik Windowsi versioonid lauaarvutitele“ ja klõpsame „Edasi“. Valmistamispaketi importimist saab vahele jätta, klõpsame „Valmis“.
Avame rippmenüü „Käivitusparameetrid“, seejärel avame alammenüü „AssignedAccess“ ja valime punkti „MultiAppAssignedAccessSettings“. Akna ICD ülaosas, keskel, klõpsame nuppu „Ülevaade“ ja määrame XML-faili asukoha. Igaks juhuks saame projekti salvestada, vajutades „Ctrl+s“. ICD ülanurgas valime „Ekspordi“ ja rippmenüüst valime punkti „Valmistamispakett“. Omniks valime „IT-administraator“ ja kõik muud küsimused saame vahele jätta, vajutades „Edasi“ ning lõpuks klõpsame „Kogumine“ ja „Valmis“.
Installitud süsteemis ärge unustage luua kasutajat „User“, keda ei saa lisada gruppi „Administrators“, vastasel juhul ei tööta multikiosk. Loodud kasutaja on „Arvuti haldamise“ funktsiooni kaudu, millel on piiranguteta parool.
Nüüd käivitame ettevalmistuspaki varem paigaldatud süsteemis. Pärast ettevalmistuspaki rakendamist muutub menüü Start ja administraatori vaade. Menüü Start vasakus veerus peaksid kaduma nupud: „Dokumendid”, „Pildid”, „Seaded”. Kui menüü Start ei ole muutunud, siis midagi läks valesti. Paigaldatud pakki saab eemaldada, kui avada aken „Seaded > Kontod > Töökoha või kooli konto juurdepääs > Ettevalmistuspaki lisamine või eemaldamine”.
Kui menüü Start on muutunud, siis seadistused on süsteemi rakendatud, logige sisse kasutajana, kellele multikiosk on seadistatud, ja vaadake tulemust.
Meetod nr 2
Seadistuste rakendamine „MDM Bridge WMI Provideri” abil . Selle meetodi mugavus seisneb kasutamise paindlikkuses ja võimaluses vabaneda paljusid käsitsi toimingutest, mis on vajalikud ettevalmistuspaki loomisel. Igaüks võib endale teha lahenduse, mis on just talle mugav. Ma tegin endale sellise paari skripti.
MiltiKiosk.bat – skript käivitamiseks
@echo off
chcp 1251>nul
if not exist "%~dp0psexec.exe" call :ShowMessage "‡‡‡‡‡‡‡‡‡‡‡‡‡Selle scripti toimimiseks on vajalik fail psexec.exe‡‡Scripti lõpetamiseks vajutage ükskõik millist klahvi"&pause>nul&exit
net session>nul 2>nul
if %errorLevel% neq 0 (powershell -command "Start-Process "%~s0" -Verb RunAs"&exit)
for /f "tokens=2 delims==" %%i in ('wmic useraccount where "Name='%UserName%'" get SID /value^|find "SID"') do set SID=%%i
reg add HKU%SID%SoftwareSysinternalsPsExec /v EulaAccepted /t REG_DWORD /d 1 /f
for /f %%i in ('dir "%~dp0%~n0*.ps1" /b /o:n') do set PSFilePath=%~dp0%%i
if not defined PSFilePath (echo PS failide nime algusega - "%~n0" ei leitud&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 :eofMiltiKiosk_Ver.12.ps1 – peamine skript
Function ConvertEncoding ([string]$From, [string]$To) {
Begin{$encFrom = [System.Text.Encoding]::GetEncoding($From);$encTo = [System.Text.Encoding]::GetEncoding($To)}
Process{$bytes = $encTo.GetBytes($_);$bytes = [System.Text.Encoding]::Convert($encFrom, $encTo, $bytes);$encTo.GetString($bytes) -replace [char]0, ''}
}
Function ShowMessage ($Message='', $Align=0) {
Try {$Align = [decimal]$Align} Catch {Return 'Align parameeterile võib määrata vaid numbri' | 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, 'Seadiste objekti saamise viga', 2, 'Vajutage "Enter" skripti töö lõpetamiseks') -Align 2; Read-Host; Exit}
Function MainMenu() {
ShowMessage (13, ' 0 - Välja', ' 1 - Valige XML-fail installimiseks', ' 2 - Kuvage praegune mitme rakenduse kiosk konfigureerimine', ' 3 - Eemaldage mitme rakenduse kiosk konfiguratsioon', 1)
$local:PromptText = 'Valige toiming'
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, 'Konfigureerimise algus') -Align 2; Write-Host $MultiAppKiosk.Configuration; ShowMessage -Message ('Konfigureerimise lõpp', 1, 'Tagasi menüüsse pääsemiseks vajutage "Enter"', 1) -Align 2; Read-Host}
3 {$MultiAppKiosk.Configuration = $Null; Set-CimInstance -CimInstance $MultiAppKiosk; ShowMessage -Message (1, 'Käsk konfiguratsiooni eemaldamiseks on täidetud', 1) -Align 2}
DEFAULT {ShowMessage 'Valitud väärtus ei ole lubatud'}
}
if ($Selections -contains $Select) {Clear-Host; ShowMessage (15, ' 0 - Välja', ' 1 - Valige XML-fail installimiseks', ' 2 - Kuvage praegune mitme rakenduse kiosk konfigureerimine', ' 3 - Eemaldage mitme rakenduse kiosk konfiguratsioon', 1)}
}
}
Function XMLSelection() {
Clear-Host
if (!(Test-Path -Path $PSScriptRoot'XML')) {ShowMessage -Message (13, 'Katalooge ei leitud', $('"'+$PSScriptRoot+'XML"'), 1, 'Vajutage "Enter" tagasi eelnevale menüüle') -Align 2; Read-Host; Return}
$local:XMLList = @()
$XMLList += Get-ChildItem -Path $PSScriptRoot'XML' -name -filter '*.xml'
if ($XMLList.Count -eq 0) {ShowMessage -Message (13, 'XML-faile ei leitud kataloogist', $('"'+$PSScriptRoot+'XML"'), 1, 'Vajutage "Enter" tagasi eelnevale menüüle') -Align 2; Read-Host; Return}
[int]$local:Indent = 13 - $XMLList.Count / 2; if ($Indent -lt 1) {$Indent = 1}
ShowMessage ($Indent, ' 0 - Tagasi eelnevale menüüle')
for ($i=0; $i -le $XMLList.GetUpperBound(0); $i++) {Write-Host $(' '+($i+1)+' - '+$XMLList[$i])}
Write-Host
$local:PromptText = 'Valige installitav fail'
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 $('Käsk seadiste rakendamiseks failist '+$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 ('Valitud väärtus ei ole lubatud')}
}
}
}
MainMenuKui soovite minu lahendust kasutada, salvestage ühte kausta ülaltoodud skriptid nende originaalnimede ja ka faili „PsExec.exe”. Samasse kausta looge kaust „XML” ja kopeerige sinna XML-failid multikioskide seadistamiseks. Kasutan seda sama faili, mis esimeses meetodis.
MultiAppKiosk.xml
<![CDATA[
]]>
UserVeidi skripti omadustest. Skript on ette nähtud XML-failide kasutamiseks „UTF8” kodeeringuga; kui soovite kasutada „ANSI” kodeeringut, eemaldage faili lugemise parameetrist „encoding UTF8”. Kausta „XML” tuleb paigutada XML-failid ilma sümbolite asendamiseta; skript asendab erisümbolid vastavate tähistega automaatselt. Et kasutajate sidumiseks GUID’idest segadusse minna, võite lihtsalt märkida numbri või kasutajanime sügavatesse sulgudesse, kogu sisu sügavate sulgude sees asendatakse GUID’idega.
Skripti kasutamine on väga lihtne: käivitage see ja valige vajalik valik. Käesoleva konfiguratsiooni muutmiseks uueks ei ole tingimata vajalik praeguse kustutamine, see kirjutatakse üle. Ärge unustage luua kasutajaid, kes on määratud konfigureerimisfailis.
Praegu kehtiva multifunktsionaalse kioskikonfiguratsiooni vaadates sama sessiooni jooksul, kus see rakendati, kuvatakse spetsiaalmärkide asemel asendussümbolite kombinatsioonid. Pärast seansi vahetamist (skripti taaskäivitamist) kuvatakse kõik spetsiaalmärgid originaalses vormis.
Samm 7 – süsteemi tihendamine
Multifunktsionaalne kiosk töötab, kõik näib olevat korras...
Kui kõik läheb plaanipäraselt, tähendab see, et te ei märka midagi.
Ärge unustage, et meil on veel vaja süsteemi auditirežiimist tervitusrežiimi üle viia. Oleme valmis, käivitame «Sysprep.bat», valime punkti 2, süsteem tihendatakse. Sisse lülitame seadme, süsteem käivitub, siseneme kasutajakontole, mille jaoks multifunktsionaalne kiosk on seadistatud, ja ei saa sisse logida. Pärast kiri «Tere tulemast» ilmub kiri «Välja logimine».
Alguses plaanisin kirjeldada vaid probleemi lahendust, kuid otsustasin hiljem kirjeldada ka samme probleemi tuvastamiseks ja kõige lihtsama lahenduse leidmiseks, kuna paljusid lugejaid vaevavad kindlasti ebamugavad kahtlused – «Aga ent kui…». Usun, et erinevate katsete kirjeldamine säästab teile märkimisväärselt aega, kui soovite leida teise lahenduse. Et teave oleks võimalikult täpne ja et veel kord veenduda, et mingeid vigu ei esine, teen katsete kirjeldust formaadis „tehtud – üles kirjutatud“. See tähendab, et teen kirjeldatud katsed veel kord.
Eksperimendid
Mis meil siis välja tuli. Süsteemis on kaks kasutajakontot:
«Admin» – grupis «Administraatorid»
«User» – grupis «Kasutajad»
Auditirežiimis töötas multikoosk, pitseerimisrežiimis – ei tööta.
Eksperiment 1
Eemaldame installitud ettevalmistuspaketi, eemaldame kasutaja "User" arvuti haldamise tööriistas ja loome uue kasutaja nimega "User", rakendame ettevalmistuspaketi, siseneme "User" kontole – ei toimi. Logime sisse nimega "Admin", eemaldame kasutaja "User" rühmast "Kasutajad", lisame ta rühma "Administraatorid", logime sisse nimega "User" – ei toimi. Logime sisse nimega "Admin", eemaldate ettevalmistuspaketi mitme kioskiga, logime sisse nimega "User" – õnnestus siseneda, kuid loomulikult multikioskirežiim ei toimi, kuna ettevalmistuspakett on eemaldatud.
Eksperiment 2
Laadime süsteemi pildi – venekeelne auditi režiimis.
Opsüsteem on käivitunud, vajutame „Win+r“, kuna sysprep aknad sulgusid automaatselt, sisestame käsu „sysprep“, avatud aknas käivitame „sysprep“. Sysprep seaded aknas: „Üleminek süsteemi tervituse aknasse (OOBE)“, „Kasutamiseks ettevalmistamine“, „Taaskäivitamine“. Vajutame „OK“ ja ootame opsüsteemi tervitust. Vastame küsimustele süsteemi esmakordsel käivitamisel: „Continue in selected language?“ – „eesti“; piirkond – Eesti; klaviatuuriklahvi paigutus – Eesti; lisa teine klaviatuuripaigutus – jättame vahele; „Lähme ühendame teid võrku“ – „Praegu jätame vahele“; internetti ühendamine – ei; litsentsileping – nõustuda; „Kes kasutab seda arvutit“ – „Test“; parooli loomine – jätan välja; mugav töö erinevates seadmetes – ei; privaatsuse seaded – nõustuda. Opsüsteem on käivitunud, „Arvutihalduses“ loome kasutaja nimega „User“, lisame ettevalmistamispaketi. Tulemuseks – ei tööta.
Eksperiment 3
Laadime süsteemi pildi – venekeelne auditi režiimis.
O.S. on laaditud, ühendame süsteemi internetiga, täidame käsu „gpedit.msc” ja jaotises „Windowsi värskenduste keskus” lülitame sätte „Luba soovitatavad värskendused automaatse värskenduse kaudu” sisse, igaks juhuks taaskäivitame. Värskenduste keskuses klikime „Kontrolli värskenduste olemasolu” ja taaskäivitame seni, kuni kõik värskendused on installitud. Lülitame süsteemi internetist välja. Käivitame „sysprep” graafilises režiimis ja kordame kõiki toiminguid, mis on kirjeldatud eelmises sammuses, kuni paketi ettevalmistamine. Tulemus – ei tööta.
Eksperimendi 4
Laeme süsteemi pildi – ingliskeelse auditi režiimis.
Käivitame „sysprep” graafilises režiimis, suletame O.S. sama konfiguratsiooniga nagu eksperimendis 2. Esimese käivitamise ajal valime samad seaded nagu eksperimendis 2, välja arvatud piirkondlike ja keelealaste seadete jaoks, kuna vene keelt ei ole. Samuti loome kasutaja „User” ja lisame ettevalmistuspaketi. Tulemus – töötab. See tähendab, et probleem on seotud lokaliseerimisega.
Eksperiment 5
Laadime süsteemi pildi – venekeelne auditi režiimis.
Tarkvara 'Arvuti haldus' abil loome kasutaja 'User', lisame ettevalmistuspaketi, siseneme kasutajakontole 'User', multikiosk töötab.
Logime välja kasutajakontolt ja siseneme administratori kontole 'Admin'. Käivitame PowerShelli administreerija õigustega, täidame käsu 'Dism /online /Get-Intl' ja näeme 'Vaike kasutajaliidese keel: en-US'.
Käivitame süsteemi USB-pulgalt WinPE-s, lahti pakitud operatsioonisüsteem on mul ketas E. Täidame käsu 'Dism /image:E: /Set-UILang:ru-ru'. Vaata tulemust, täidame 'Dism /image:E: /Get-Intl' ja näeme 'Vaike süsteemi kasutajaliidese keel: ru-RU'.
Siseneme süsteemi, logime kasutajakontole 'User', multikiosk ei tööta.
Probleemi tekkimise põhjusliku seose selgeks fikseerimiseks proovime veel kord teha multikioski töökorraks ja mittetöökorraks.
Käivitame süsteemi USB-pulgalt WinPE-s, lahti pakitud operatsioonisüsteem on mul ketas E. Täidame käsu 'Dism /image:E: /Set-UILang:en-us'. Vaata tulemust, täidame 'Dism /image:E: /Get-Intl' ja näeme 'Vaike süsteemi kasutajaliidese keel: en-US'.
Siseneme süsteemi, logime kasutajakontole 'User', multikiosk töötab.
Käivitame süsteemi USB-pulgalt WinPE-s, lahti pakitud operatsioonisüsteem on mul ketas E. Täidame käsu 'Dism /image:E: /Set-UILang:ru-ru'. Vaata tulemust, täidame 'Dism /image:E: /Get-Intl' ja näeme 'Vaike süsteemi kasutajaliidese keel: ru-RU'.
Siseneme süsteemi, logime kasutajakontole 'User', multikiosk ei tööta.
See, there is a clear dependence of the kiosk's performance on the default user interface language setting. Are there any other factors that might affect the performance of the multi-kiosk?
Experiment 6
For the sake of clarity in the experiment, we will reinstall the system. We are uploading the system image – Russian version in audit mode.
We start 'sysprep' in graphical mode, sealing the OS with the same parameters as in Experiment 2. We wait for the OS greeting and answer the questions: 'Continue in selected language?' – 'English (United States)'; region – Russia; keyboard layout – Russian. All parameters are then selected as in Experiment 2.
We look at the default user interface language settings. We execute the command 'Dism /online /Get-Intl' and see 'Default system UI language: en-US'. In the 'Computer Management' console, we create a user 'User', add the preparation package, log into the 'User' account, and the multi-kiosk works.
Proovime kiosk'i rikkuda, muutes vaikesed kasutajaliidese keelt. Logime sisse kasutajaga "Test", mis loodi süsteemi esmakordsel käivitamisel, ja lubame automaatse sisselogimise, et süsteem ei laadiks sisse "User" kontot kohe. Käivitame "netplwiz", valime kasutaja "Test", eemaldame märkeruudu "Nõua kasutajanime ja parooli sisestamist" ning rakendame seaded.
Laadime WinPE-st USB-mälupulgalt. Käivitame käsu "Dism /image:E: /Set-UILang:ru-ru". Vaadatakse tulemust, käivitame "Dism /image:E: /Get-Intl" ja näeme "Default system UI language: ru-RU".
Logime sisse süsteemi, proovime siseneda konto "User" alla, multikiosk töötab. See tähendab, et seda ei saa rikkuda. Kas saaksime seda kuidagi tööle sundida?
Eksperiment 7
Laadime süsteemi pildi – venekeelne auditi režiimis.
Käivitame "Sysprep.bat", valime punkti 2. Logime sisse süsteemi, arvuti haldamise paneelis loome kasutaja "User", lisame ettevalmistuspaketi, logime sisse konto "User" alla, multikiosk ei toimi.
Laadime WinPE-st USB-mälupulgalt. Käivitame käsu "Dism /image:E: /Set-UILang:en-us". Vaadatakse tulemust, käivitame "Dism /image:E: /Get-Intl" ja näeme "Default system UI language: en-US".
Logime süsteemi, proovime siseneda kontole «User», multikino ei tööta.
Selgub, et muutes vaikimisi kasutajaliidese keelt, saab multikino toimimist mõjutada ainult siis, kui süsteem on auditrežiimis või esimese laadimise ajal pärast süsteemi pitseerimist. See tähendab, et tuleb süsteem pitseerida vastusefailiga, milles on valitud süsteemi keel inglise keeles, ja seejärel muuta süsteemi seadeid, et liides oleks vene keeles. See ei ole eriti hea lahendus. Võib-olla saab probleemi lahendada keelepaketi või täiendavate keelepakettide installimise teel?
Eksperiment 8
Laeme süsteemi pildi – ingliskeelse auditi režiimis.
Ühendame end internetiga, süsteemi seadetesse minnes valime jaotises «Language» «Add language», valime keele «Русский», vajutame «Next», paigaldusvalikud jätame vaikimisi, vajutame «Install», pärast keelepaketi installimist taaskäivitame süsteemi, nüüd on see venekeelne. Lülitame süsteemi internetist välja, käivitame «Sysprep.bat», valime punkti 2.
Süsteemi laadimisel arvuti haldamise tööriistade kaudu loome kasutaja "User", lisame ettevalmistuspakkumise ja siseneme kasutajakontosse "User"; multisektsioon ei tööta.
Eksperiment 9
Proovime süsteemi venekeelseks muuta enne installimist, offline-režiimis. Samuti on see lühike teadlikkuse tõstmise seanss distributsiooni lokaliseerimise kohta.
Võtan puhta originaaldistibu – X21-96381. See saab olema kettana "E". Kujundite mountimiseks loon kaustad: "c:MountInstall", "c:MountWinre", "c:MountBoot". Võtan lokaliseerimispakkide komplekti – X21-87814. Ja kopeerin kausta "c:Mount" järgmistest pakettidest: "Microsoft-Windows-Client-Language-Pack_x86_ru-ru.cab", "lp.cab", "WinPE-Setup_ru-ru.cab". Käivitan konsooli administraatori õigustega. Arvan, et järgmised käsud on ilma kommentaarideta arusaadavad.
Lokaliseerimiskäsud
cd c:mount\ndism \/Mount-Wim \/WimFile:e:sourcesinstall.wim \/index:1 \/MountDir:Installcode\ndism \/Image:Install \/Add-Package \/PackagePath:Microsoft-Windows-Client-Language-Pack_x86_et-ee.cabcode\ndism \/Image:Installcode \/Set-AllIntl:et-ee\ndism \/Image:Install \/Set-TimeZone:"Eesti Standard Aeg"code\n\ndism \/Mount-Wim \/WimFile:InstallWindowsSystem32RecoveryWinre.wim \/index:1 \/MountDir:Winrecode\ndism \/Image:Winre \/Add-Package \/PackagePath:lp.cabcode\ndism \/Image:Winrecode \/Set-AllIntl:et-ee\ndism \/Image:Winre \/Set-TimeZone:"Eesti Standard Aeg"code\ndism \/Unmount-Image \/MountDir:Winre \/Commitcode\n\ndism \/Image:Install \/Gen-LangINI \/distribution:E: \/Set-AllIntl:et-EEcode\ndism \/image:Install \/Set-SetupUILang:ET-ee \/distribution:E:code\ndism \/Unmount-Image \/MountDir:Install \/Commitcode\n\ndism \/mount-wim \/wimfile:e:sourcesboot.wim \/index:1 \/mountdir:Bootcode\ndism \/Image:Boot \/Add-Package \/PackagePath:lp.cabcode\ndism \/Image:Bootcode \/Set-AllIntl:et-ee\ncopy e:sourceslang.ini Bootsourceslang.inicode\ndism \/Unmount-Image \/MountDir:Boot \/Commitcode\n\ndism \/mount-wim \/wimfile:e:sourcesboot.wim \/index:2 \/mountdir:Bootcode\ndism \/Image:Boot \/Add-Package \/PackagePath:lp.cabcode\ndism \/Image:Boot \/Add-Package \/PackagePath:WinPE-Setup_et-ee.cabcode\ndism \/Image:Bootcode \/Set-AllIntl:et-ee\ncopy e:sourceslang.ini Bootsourceslang.ini \/ycode\ndism \/Unmount-Image \/MountDir:Boot \/CommitLaadime süsteemi USB-mälupulgalt, valime eesti keele ja installime süsteemi uuele kettale. Kui süsteem küsib piirkonna valimist, vajutage "Ctrl+Shift+F3". Komponendis "Arvuti haldus" loome kasutaja "User", lisame ettevalmistuspaketi, siseneme kasutajakontole "User", ja multimeedia ei tööta.
Laadime WinPE-st flashilt. Käivitame käsu „Dism /image:E: /Set-UILang:et-ee”.
Siseneme süsteemi, proovime sisse logida kontole „User”, multimeedia töötab.
Tundub, et probleem ei ole paketihalduse meetodites, proovime lisada täiendavaid pakette.
Eksperiment 10
Võtame flashi, mille me eelmisel sammul ette valmistasime.
Võtame paketi „Feat on Demand” – X21-87815. Katan kausta „c:Mount” järgmistest paketidest: „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”.
Võtame paketi „Feat on Demand RDX Updt” – X21-99781. Katan kausta „c:Mount” järgmistest paketidest: „Microsoft-Windows-RetailDemo-OfflineContent-Content-Package~31bf3856ad364e35~x86~~.cab”, „Microsoft-Windows-RetailDemo-OfflineContent-Content-ru-ru-Package~31bf3856ad364e35~x86~~.cab”.
Käivitame administraatoriõigustega konsooli ja täidame käsklused:
Meeskonnad
cd c:mount
dism /Mount-Wim /WimFile:e:sourcesinstall.wim /index:1 /MountDir:Install
dism /Add-Package /Image:Install /PackagePath:Microsoft-Windows-LanguageFeatures-Basic-et-ee-Package~31bf3856ad364e35~x86~~.cab
dism /Add-Package /Image:Install /PackagePath:Microsoft-Windows-LanguageFeatures-OCR-et-ee-Package~31bf3856ad364e35~x86~~.cab
dism /Add-Package /Image:Install /PackagePath:Microsoft-Windows-LanguageFeatures-Handwriting-et-ee-Package~31bf3856ad364e35~x86~~.cab
dism /Add-Package /Image:Install /PackagePath:Microsoft-Windows-LanguageFeatures-TextToSpeech-et-ee-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-et-ee-Package~31bf3856ad364e35~x86~~.cab
dism /Unmount-Image /MountDir:Install /CommitBoot from the flash drive, select Estonian language, and install the system on a clean disk. When the system prompts to choose a region, press "Ctrl+Shift+F3". In the "Computer Management" console, create a user named "User", add the preparation package, and log into the "User" account. I encountered a black screen that stayed for a long time, so I performed a hot reboot of the system.
Remove the preparation package, log in as "User", restart the system, add the preparation package again, the Multi-OS configuration doesn’t work.
Laadime WinPE-st flashilt. Käivitame käsu „Dism /image:E: /Set-UILang:et-ee”.
Siseneme süsteemi, proovime sisse logida kontole „User”, multimeedia töötab.
Workaround the problem
Normal heroes always find a workaround!
Erinevad lokaliseerimispakettide installimise viisid ei lahendanud probleemi, seega tuleb esmakordsel laadimisel pärast pitseerimist seada keeleks "en-us" ja pärast esimest laadimist muuta keelesätteid.
Laadime süsteemi pildi – venekeelne auditi režiimis.
Failis "Unattend.xml" määrame parameetris "en-US", käivitame "Sysprep.bat", valime punkti 2 ja vaatame, mis meil välja tuli. Tere tulemast ekraan on inglise keeles, multifunktsionaalne puutetundlik ekraan – töötab. Seega tuleb "Unattend.xml" lisada käsk tervituskeele muutmiseks. Selleks tuleb käivitada käsk "control intl.cpl,,/f:" koos konfiguratsioonifaili näidamisega, kus on ette nähtud praeguste seadete kopeerimine tervitus-ekraanile. Konfiguratsioonifaili sisu näeb välja selline.
Kuna käimas on praeguse kasutaja seadete kopeerimine, tuleb käsk anda pärast kasutaja süsteemi sisse logimist, mis tähendab, et vajame järgmisi asju. On üks väike „aga“ – käsk tuleb täita pärast kasutaja sisenemist administraatori õigustega. Ma ei tahaks luua täiendavat faili, mille olemasolu on vajalik käsku edukalt täita. Paremini on kogu lahendus ellu viia ühes failis – „Unattend.xml“. Selle jaoks tuleb lihtsalt täita järgmine käsk, mis loob konfiguratsioonifaili. Arvan, et loon konfiguratsioonifaili kasutades käsku „echo“ keskkonnas „cmd“, aga seal tuleb nurksulgud jäädvustada karoni märkidega. Seega, et luua konfiguratsioonifaili, peab käsk olema selline.
echo ^<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend"^>^<gs:UserList^>^<gs:User UserID="Current" CopySettingsToSystemAcct="true"/^>^</gs:UserList^>^</gs:GlobalizationServices^>>Config.xmlAga peame selle käsu paigutama XML-i, millel on oma nõuded erimärkide kasutamiseks:
Erimärk
Asendushind
>
>
<
<
&
&
‘
'
“
"
Kokkuvõttes on konfigureerimisfaili loomiseks selline käsk "FirstLogonCommands".
cmd.exe /c echo "%TMP%Config.xml"Seejärel käitame käsku, kasutades konfigureerimisfaili.
control intl.cpl,,/f:"%TMP%Config.xml"Järgmiseks kustutame varem loodud faili ja taaskäivitame süsteemi, kuna muudatused jõustuvad pärast taaskäivitamist.
cmd.exe /c del "%TMP%Config.xml" /q&shutdown /r /f /t 00Seega on mul selline vastuste fail sysprep’ile.
Unattend.xml
reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v SetupDisplayedProductKey /t REG_DWORD /d 1 /f
1
Älä näytä avain sivua
reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v UnattendCreatedUser /t REG_DWORD /d 1 /f
2
Älä luo tiliä
cmd.exe /c rd %systemdrive%Sysprep /s /q
3
Poista kansio
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^>"%TMP%Config.xml"
LuoAsetus
1
control intl.cpl,,/f:"%TMP%Config.xml"
KäytäAsetusta
2
cmd.exe /c del "%TMP%Config.xml" /q&shutdown /r /f /t 00
PoistaAsetus
3Kontrollime…
Laadime süsteemi pildi – venekeelne auditi režiimis.
Asendame Unattend.xml faili uuega, käivitame „Sysprep.bat“, valime punkti 2 ja vaatame, mis meil välja tuli. Esimesel käivitamisel on tervituskuva inglise keeles, süsteem taaskäivitub. Tervituskuva on vene keeles ja mitu kioskid töötavad.
Kui teil on küsimusi Windows 10 IoT Enterprise seadistamise ja litsentseerimise kohta, võtke meiega ühendust aadressil või külastage meie saiti .
Mõned vastused leiate meie või meie
Artikli autor: Vladimir Borisenkov, ettevõtte Kvartra Technologies tehniline ekspert.
Allikas: habr.com
