Uvod
– marketinški naziv sljedećeg izdanja Windows 10Izlazak ove verzije najavljen je u septembru 2018. godine, tako da ima broj verzije 1809, gdje 18 označava godinu, a 09 mjesec. Prema novom izdanju Windows 10 1809. godine napisano je mnogo članaka, ali većina njih posvećena je raznim "mašnama", "ljepoticama" i raznim funkcijama koje su tražene kod kuće.
Ovaj članak će se fokusirati isključivo na funkcionalnosti koje bi mogle biti tražene među proizvođačima uređaja fiksne upotrebe, a posebno na nove mogućnosti Kiosk moda. Također će se razmotriti tema promjene naziva servisnih planova izdanja. Windows korporativni segment.
Stara šema usluga s novim imenom
Dozvolite mi da počnem s kratkim objašnjenjem, u korporativnom segmentu redakcija Windows Postoje dvije sheme usluga prema kojima Windows prima ažuriranja. Servisni planovi su označeni slovima. Trenutno se servisne linije nazivaju LTSC i SAC.
LTSC je skraćenica za (sa dugotrajnim održavanjem). Ranije se takav kanal zvao LTSB - Long Term Servicing Branch.Microsoft je jednostavno promijenio naziv kanala usluge, a sam servis je ostao isti.
Microsoft je također promijenio naziv uslužne podružnice CBB - Current Branch for Business, sada se ova uslužna podružnica zove SAC - . Opet, samo se ime promijenilo.
Ali treba spomenuti da grane održavanja LTSC i SAC koriste različite distribucije. Windows.
Malo o novom načinu rada kioska u SAC-u
Kao što sam već rekao, LTSC i SAC imaju različite distribucije. LTSC nema standardne univerzalne aplikacije ili trgovinu aplikacija, ali SAC ima. Shodno tome, LTSC nema Edge pretraživač, ali SAC ima. Ako odaberete Edge pretraživač prilikom postavljanja kioska, tada su sada dostupna dva načina rada:
- Kao digitalni znak ili interaktivni displej
- Kao javni pretraživač
Neću se zadržavati na postavljanju ovih modova, jer... Podešavanje je vrlo jednostavno i radi se u grafičkom interfejsu. Samo kreirajte korisnika koji nije član grupe administratora, omogućite mu način rada kioska koristeći EDGE i pogledajte kako ovi načini funkcioniraju.
Kiosk sa mnogo aplikacija
Neki ljudi misle da je to licencirano korištenje podrazumijeva rad samo jedne aplikacije na uređaju, zapravo to nije slučaj. Uređaj mora biti dizajniran za obavljanje jednog poslovnog zadatka i korisnik ne smije imati pristup desktopu. Sada je sam Microsoft dao alat za korištenje mnogih aplikacija. Ovaj način rada naziva se „kiosk za više aplikacija“; u nastavku ću ga, radi sažetosti, zvati „multikiosk“. U ovom članku ćemo se osvrnuti na podešavanje ovog načina rada pomoću softverskog paketa i neke od karakteristika ovog načina rada.
Malo o Multikiosk modu
Kada se prijavite na korisnički nalog za koji je konfigurisan višekiosk režim, sistem će raditi u tablet režimu. Start meni će se proširiti na cijeli ekran, prikazujući pločice aplikacija.
Lista osnovnih postavki i mogućnosti načina rada:
- Podešavanje za više korisnika ili grupa
- Svakom korisniku ili grupi mogu se dodijeliti pojedinačne postavke
- Mogućnost korištenja univerzalnih i klasičnih aplikacija
- Mogućnost automatskog pokretanja jedne od aplikacija kada se korisnik prijavi
- Aplikacije na bijeloj listi
- Pristup folderima pomoću bijele liste
Vrijedi obratiti pažnju na tačku 5. Podrazumevano će biti dozvoljeno da rade samo one aplikacije koje su neophodne za rad sistema, dok se ostale aplikacije moraju dodati na listu dozvoljenih. One. Sada ne morate posebno da konfigurišete AppLocker. Usput, kako bi se izbjegli sukobi s postavkama AppLockera, u načinu rada s više kioska, sva konfigurirana pravila AppLockera neće se primjenjivati.
Tačka 6 ukazuje na dobru opciju, ali trenutno je moguće dati dozvolu za pisanje samo u folder “Preuzimanja”. Režim vam omogućava korištenje univerzalnih i klasičnih aplikacija. Sve postavke načina su navedene u XML datoteci, u kojoj također možete odrediti postavke za jedan kiosk aplikacije.
A sad da probamo da sve to podesimo...
šta nam treba...
- Prije svega, potreban nam je sam sistem koji podržava multikiosk način rada. demo verzija
- Bilo koji XML editor
- Za primjenu postavki multikioska:
- Za metodu br. 1 - ICD, koja je dio ADK. ADK je moguć
- Za metodu br. 2 - pomoćni program PsExec. Uslužni program može biti
Rekao je - "Idemo!"
Sve eksperimente ću provoditi na Windows 10 IoT Enterprise 1809 LTSC x32 je komercijalna verzija, a ne demo. Sistem će biti instaliran bez aktivacije, jer nedostatak aktivacije ne utiče na funkcionalnost sistema. Odabrao sam 32-bitnu verziju samo zato što zauzima manje prostora i brže će raditi sa sistemskim slikama.
Korak 1 – instalacija
Instalacija Win 10 IoT Enterprise se ne razlikuje od instaliranja Win 10 Enterprise, tako da neću opisivati cijeli proces instalacije, samo ću govoriti o nekim nijansama.
Za svaki slučaj, da vas podsjetim, nemojte instalirati sistem preko instaliranog. Kada instalater pita za lokaciju instalacije sistema, izbrišite sve particije na budućem sistemskom disku i navedite neparticionirani disk.
Sistem instaliramo bez internet konekcije kako sistem ne bi povukao ništa nepotrebno.
Jer Napravićemo rezervne slike sistema i za to ćemo ga zatvoriti u režimu revizije, a zatim možete uštedeti neko vreme tako što ćete učitati sistem u režimu revizije odmah nakon instalacije. Da biste to učinili, kada sistem od vas zatraži da odaberete regiju “Počnimo s regijom. Da li je to tačno" samo pritisnite "Ctrl+Shift+F3".
Korak 2 - kreirajte sliku sistema
Jer rugaćemo se sistemu i isprobavati razne nove postavke, moguće je da nešto krene naopako i da ćemo morati da vratimo sistem u prvobitno stanje. A da biste se brzo vratili u prvobitno stanje, potrebno je da kreirate sliku sistema. Jedino što ću učiniti je kopirati "džentlmenski komplet" - skriptu i datoteku odgovora. Svi moji fajlovi se nalaze u fascikli „Sysprep“, koju kopiram u koren sistemskog diska. I naravno, podijelit ću ovaj "džentlmenski set" sa vama.
Sysprep.bat – za zaptivanje sistema.
@echo off
chcp 1251>nul
net session>nul 2>nul
if %errorLevel% neq 0 (powershell -command "Start-Process "%~s0" -Verb RunAs"&exit)
tasklist /fi "ImageName eq sysprep.exe" | find /i "sysprep.exe"
if %errorlevel% lss 1 (taskkill /im sysprep.exe)
set AdminName=Admin
net user %AdminName%>nul 2>nul
if %errorLevel% neq 0 (call :AddAdmin "%AdminName%")
if %errorLevel% neq 0 (call :ShowMessage "‡‡‡Ошибка создания новой учетной записи администратора "%AdminName%"‡‡Нажмите любую клавишу для завершения работы скрипта"&pause>nul&exit)
pushd "%~dp0"
cls
call :ShowMessage ‡‡‡‡‡‡‡‡‡‡
echo 1 - Запечатать систему в режиме аудита
echo 2 - Запечатать систему в режиме приветствия
:Select
set /p Choice="Введите номер пункта меню: "
if "%Choice%"=="1" (goto Audit)
if "%Choice%"=="2" (goto OOBE)
echo.&echo Выбрано недопустимое значение.&goto Select
exit
:Audit
call :ShowMessage "‡‡‡‡‡Запечатывание системы в режиме аудита"
reg add HKLMSoftwareMicrosoftWindowsCurrentVersionRun /v KillSysprep /t REG_SZ /d "taskkill /im sysprep.exe" /f
%SYSTEMROOT%System32Sysprepsysprep.exe /audit /generalize /shutdown /quiet
goto :eof
:OOBE
call :ShowMessage "‡‡‡‡‡Запечатывание системы в режиме приветствия"
reg delete HKLMSoftwareMicrosoftWindowsCurrentVersionRun /v KillSysprep /f
powershell -command "(Get-Content -path 'Unattend.xml' -Raw).Trim() -replace 'Architecture=""".+?"""','Architecture="""%PROCESSOR_ARCHITECTURE%"""' | Set-Content -path 'Unattend.xml'"
%SYSTEMROOT%System32Sysprepsysprep.exe /oobe /generalize /shutdown /quiet /unattend:Unattend.xml
goto :eof
:AddAdmin
setlocal
set UserName=%~1
if not defined UserName (echo Не указано имя пользователя&endlocal&exit /b 1)
call :GetGroupName "S-1-5-32-544" AdminGroup
if not defined AdminGroup (endlocal&exit /b 2)
call :GetGroupName "S-1-5-32-545" UserGroup
if not defined UserGroup (endlocal&exit /b 3)
net user %UserName% /add
wmic useraccount where "Name='%UserName%'" set PasswordExpires=False>nul
net localgroup %AdminGroup% %UserName% /add
net localgroup %UserGroup% %UserName% /delete
endlocal&exit /b 0
goto :eof
:GetGroupName
if "%~1"=="" (echo Не указан SID группы&goto :eof)
set %2=
for /f "tokens=2 delims= " %%i in ('whoami /groups /fo table^|find "%~1"') do set %2=%%i
if not defined %2 (echo Ошибка определения имени группы по SID'у "%~1")
goto :eof
:ShowMessage
setlocal enabledelayedexpansion
set String=%~1
if not defined String (echo.&setlocal disabledelayedexpansion&goto :eof)
set /a ConCols=120 & set /a Num=1
set "String[!Num!].str=%String:‡=" & set /a Num+=1 & set "String[!Num!].str=%"
for /l %%a in (1,1,%Num%) do (
for /l %%b in (0,1,%ConCols%) do if "!String[%%a].str:~%%b!" == "" (set "String[%%a].str= !String[%%a].str! "&set /a String[%%a].len-=1) else (set /a String[%%a].len+=0||set /a String[%%a].len=0)
if not defined String[%%a].str (set String[%%a].str= )
if not !String[%%a].len! equ 0 (call set String[%%a].str=%%String[%%a].str:~,!String[%%a].len!%%)
if "!String[%%a].str: =!"=="" (echo.) else (echo !String[%%a].str!))
setlocal disabledelayedexpansion
goto :eof
Kada se pokrene, skripta će provjeriti prisustvo "Admin" naloga i kreirati ga ako nedostaje. Račun će biti dodan u grupu administratora.
Unattend.xml – datoteka odgovora za sysprep.
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="specialize">
<component name="Microsoft-Windows-Deployment" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RunSynchronous>
<RunSynchronousCommand wcm:action="add">
<Path>reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v SetupDisplayedProductKey /t REG_DWORD /d 1 /f</Path>
<Order>1</Order>
<Description>Dont show key page</Description>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Path>reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v UnattendCreatedUser /t REG_DWORD /d 1 /f</Path>
<Order>2</Order>
<Description>Dont make account</Description>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Path>cmd.exe /c rd %systemdrive%Sysprep /s /q</Path>
<Order>3</Order>
<Description>Del Folder</Description>
</RunSynchronousCommand>
</RunSynchronous>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<AutoLogon>
<Enabled>true</Enabled>
<Username>Admin</Username>
</AutoLogon>
</component>
</settings>
<settings pass="oobeSystem">
<component name="Microsoft-Windows-International-Core" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<InputLocale>en-US; ru-RU</InputLocale>
<SystemLocale>ru-RU</SystemLocale>
<UILanguage>ru-RU</UILanguage>
<UILanguageFallback></UILanguageFallback>
<UserLocale>ru-RU</UserLocale>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<OOBE>
<HideEULAPage>true</HideEULAPage>
<HideLocalAccountScreen>true</HideLocalAccountScreen>
<HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
<HideOnlineAccountScreens>true</HideOnlineAccountScreens>
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
<ProtectYourPC>1</ProtectYourPC>
</OOBE>
</component>
</settings>
</unattend>
Kada se zapečati u režimu revizije, skripta će dodati naredbu u registrator za završetak procesa “sysprep.exe” kako ne bi svaki put ručno zatvorila prozor sysprep. Kada je zapečaćena u hello modu, skripta će ukloniti naredbu za zatvaranje prozora iz registra i sama će promijeniti vrijednost arhitekture u datoteci odgovora na trenutnu. Datoteka odgovora sadrži parametre za pokretanje sistema bez interakcije korisnika i komandu za brisanje fascikle “Sysprep” u korenu sistemskog diska.
Sada ću zapečatiti sistem u načinu rada za reviziju koristeći "Sysprep.bat" i napraviti sliku sistema. Koristit ću DISM za snimanje slike sistema i snimat ću samo sistemski volumen. Ako snimate samo sistemski volumen, a ne cijeli disk, ne zaboravite kopirati sadržaj "WindowsSystem32Recovery" na prvom volumenu u mapi "Recovery"WindowsRE" nakon što je sistem implementiran. Ovo će morati biti urađeno prije učitavanja OS-a, jer nakon što se OS učitava, "WindowsSystem32Recovery" će već biti prazan.
Korak 3 – Rusifikacija sistema
Jezički paket možete instalirati bez internet veze ako je imate. U suprotnom, sistem će ga automatski preuzeti s interneta kada dodate jezik u postavke. Samo nemojte koristiti jezički paket iz prethodne verzije operativnog sistema. Windows 10 1809 bi trebao biti jezički paket posebno za Windows 10 1809.
Microsoft slijedi svoj plan da postupno prenosi postavke iz klasičnog menija u novi, tako da u klasičnoj kontrolnoj tabli više nećete pronaći postavke za promjenu jezika i instaliranje jezičnog paketa. Ove postavke su sada samo u sistemskim parametrima.
U režimu revizije možete naići na problem pri otvaranju sistemskih postavki iz menija Start; da biste otvorili sistemske postavke, pokrenite naredbu - “ms-settings:”, obratite pažnju na dvotočku na kraju naredbe, bez toga će komanda ne radi. Nakon otvaranja sistemskih parametara jednom upotrebom ove naredbe, može se otvoriti pomoću grafičkog menija.
Ali u sistemskim postavkama možete instalirati jezički paket ako je sistem povezan na Internet, ne postoji opcija da odaberete da instalirate jezički paket iz lokalne datoteke.
Neću opisivati proces lokalizacije sistema jer... ovo će značajno zakomplicirati članak, pogotovo jer je proces lokalizacije detaljan . Ali želim da vam skrenem pažnju na posebnost promene jezika sistema nakon instaliranja jezičkog paketa pomoću konzole. Ova funkcija je opisana u istom wikiju na koji sam ranije dao vezu, u pododjeljku .
Instalirat ću jezički paket bez internetske veze.
Nakon potpune lokalizacije sistema, obavezno kreirajte sliku sistema.
Korak 4 - Instalirajte potrebne aplikacije
Jer Pošto LTSB i LTSC sistemi nemaju skladište aplikacija, instaliranje aplikacija iz Microsoft Store-a izaziva određene poteškoće, odnosno preuzimanje aplikacije. Za preuzimanje aplikacija, kompanija Adguard je napravila vrlo zgodnu uslugu - , uz koje možete dobiti privremene veze za preuzimanje aplikacija i njihovih komponenti.
Da biste instalirali aplikaciju, trebat će vam datoteke s ekstenzijama “Appx” i “AppxBundle”. Prije instaliranja same aplikacije, morate instalirati njene komponente. Po pravilu se komponente iz aplikacije mogu intuitivno razlikovati po imenu datoteke.
Kako članak ne bi bio predugačak, neću detaljno opisivati proces instaliranja aplikacija, pogotovo jer postoje informacije o instalaciji . Ali ja ću dodati još jedan način za instaliranje aplikacija na vaš tekući račun. Aplikacije se mogu instalirati pomoću programa , ali za instaliranje aplikacija trebat će vam internet veza, ali aplikacije se mogu instalirati dvostrukim klikom i neće vam trebati njene komponente, sve potrebne komponente će se preuzeti i instalirati .
I mali podsjetnik, kada instalirate aplikaciju na tekući račun, nećete moći zapečatiti sistem. Kako instalirati aplikacije tako da možete zapečatiti sistem, pogledajte gornja uputstva. A da biste provjerili rad multikioska, postojeće aplikacije su sasvim dovoljne.
Korak 5 – kreiranje konfiguracionog fajla za multikiosk
Sada dolazimo do najzanimljivijeg dijela - podešavanja kiosk moda. Hajde da pogledamo prema postavkama koje vidimo. Prije svega, morat ćemo kreirati XML konfiguracijsku datoteku, čiji potpuni primjer možete pronaći ovdje. .
Počnimo s postavljanjem rasporeda pločica. Najlakši način za kreiranje konfiguracije prilagođavanja XML pločica je .
Prije svega, dodajmo pločice aplikacija koje su nam potrebne u Start meni. Pozovite pretragu „Win+s“, pronađite željenu aplikaciju, kliknite desnim tasterom miša na nju i izaberite „Zakači na početni ekran“.
Zakačio sam sljedeće aplikacije:
- Notebook
- Kalkulator
- Internet Explorer
- boja
- WordPad
- parametri
- Sigurnost Windows
Posljednje dvije aplikacije su bile zakačene jer u standardnoj LTSC instalaciji nema drugih univerzalnih aplikacija. Imajte na umu da su klasične pločice aplikacija povezane s prečicama. Sada ću, direktnim povlačenjem pločica u meniju Start, razdvojiti zakačene pločice u dvije grupe. Da biste kreirali novu grupu pločica, povucite pločicu znatno iznad ili ispod drugih pločica; pojavit će se intuitivni razdjelnik. Grupe možete imenovati kako god želite tako što ćete zadržati pokazivač miša iznad grupe i kliknuti lijevom tipkom miša kada se pojavi upit "Imenuj grupu". Prvu grupu ću nazvati "Postavke", koja će uključivati pločice "Postavke" i "Sigurnost". WindowsDrugu grupu ću nazvati "Office aplikacije", što će uključivati sve ostale pločice. Usput, možete premještati cijele grupe pločica tako što ćete ih povlačiti pomoću dvije trake koje se nalaze u gornjem desnom uglu naziva grupe.
Jer na pločici "Sigurnost" WindowsNaslov ne odgovara u potpunosti, pa ću mu promijeniti veličinu na "Široko". Da biste promijenili veličinu pločice, kliknite desnim tasterom miša na nju i odaberite "Promijeni veličinu".
Nakon konfiguracije, izvozimo trenutno stanje i izvršavamo naredbu u PowerShell okruženju – “Export-StartLayout – put C:SysprepStartLayout.xml”.
Dalje, najlakši način nije da sami kreirate datoteku postavki, već podešavanja – kliknite na dugme „Kopiraj“, nalepite sadržaj u beležnicu i sačuvajte kao „MultiAppKiosk.xml“. Sada mijenjamo postavke u naše. Da biste promijenili postavke priloženih pločica, kopirajte cijeli blok “StartLayoutCollection” iz “StartLayout.xml” u “MultiAppKiosk.xml”. Da biste dodali aplikacije dozvoljenim, potrebno je da unesete univerzalne identifikatore aplikacije u sekciju „AllowedApps“ iu istom bloku dodate punu putanju do izvršnih datoteka klasičnih aplikacija, koja je navedena u svojstvima prečica do kojih se pločice refer. Da biste brzo došli do prečice, kliknite desnim tasterom miša na zakačenu pločicu i idite na Više > Idi na lokaciju datoteke. Imajte na umu da se parametar "AppUserModelId" koristi za određivanje univerzalnog ID-a aplikacije, a parametar "DesktopAppPath" za određivanje pune putanje do desktop aplikacije. I još jedna mala nijansa, ako planirate koristiti IE na x64 sistemu, tada na listi dozvoljenih aplikacija morate navesti dvije putanje za izvršnu datoteku “Program FilesInternet Exploreriexplore.exe” i “Program Files (x86)Internet Exploreriexplore. exe”.
Neću dati pristup folderima, pa brišem odjeljak "FileExplorerNamespaceRestrictions".
Prikazivanje trake zadataka mi ne smeta, tako da ostavljam sve kako jeste u odjeljku "Taskbar".
U primjeru su navedena dva profila, ali ja ću imati samo jedan profil, tako da se dio sa drugim profilom može izbrisati. Prije deinstaliranja obratite pažnju na primjer automatskog pokretanja aplikacije s argumentima.
U odeljku „Konfiguracije“ nalozi su povezani sa profilima; imajte na umu da se više naloga može povezati sa jednim profilom. Ali zato Zanima me samo jedan nalog, onda ću obrisati sve veze osim prvog - blokove “Config”. U preostalom povezu upisat ću korisničko ime “Korisnik”.
Dobio sam ovaj fajl sa parametrima
MultiAppKiosk.xml
<?xml version="1.0" encoding="utf-8" ?>
<AssignedAccessConfiguration
xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config"
xmlns:rs5="http://schemas.microsoft.com/AssignedAccess/201810/config"
>
<Profiles>
<Profile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}">
<AllAppsList>
<AllowedApps>
<App AppUserModelId="WINDOWS.IMMERSIVECONTROLPANEL_CW5N1H2TXYEWY!MICROSOFT.WINDOWS.IMMERSIVECONTROLPANEL" />
<App AppUserModelId="Microsoft.Windows.SecHealthUI_cw5n1h2txyewy!SecHealthUI" />
<App DesktopAppPath="%windir%system32notepad.exe" />
<App DesktopAppPath="C:Program FilesInternet Exploreriexplore.exe" />
<App DesktopAppPath="%windir%system32win32calc.exe" />
<App DesktopAppPath="%windir%system32mspaint.exe" />
<App DesktopAppPath="%ProgramFiles%Windows NTAccessorieswordpad.exe" />
</AllowedApps>
</AllAppsList>
<StartLayout>
<![CDATA[<LayoutModificationTemplate xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout" Version="1" xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification">
<LayoutOptions StartTileGroupCellWidth="6" />
<DefaultLayoutOverride>
<StartLayoutCollection>
<defaultlayout:StartLayout GroupCellWidth="6">
<start:Group Name="Настройки">
<start:Tile Size="2x2" Column="0" Row="0" AppUserModelID="WINDOWS.IMMERSIVECONTROLPANEL_CW5N1H2TXYEWY!MICROSOFT.WINDOWS.IMMERSIVECONTROLPANEL" />
<start:Tile Size="4x2" Column="2" Row="0" AppUserModelID="Microsoft.Windows.SecHealthUI_cw5n1h2txyewy!SecHealthUI" />
</start:Group>
<start:Group Name="Офисные приложения">
<start:DesktopApplicationTile Size="2x2" Column="2" Row="2" DesktopApplicationLinkPath="%ALLUSERSPROFILE%MicrosoftWindowsStart MenuProgramsAccessoriesWordpad.lnk" />
<start:DesktopApplicationTile Size="2x2" Column="0" Row="0" DesktopApplicationLinkPath="%APPDATA%MicrosoftWindowsStart MenuProgramsAccessoriesNotepad.lnk" />
<start:DesktopApplicationTile Size="2x2" Column="2" Row="0" DesktopApplicationLinkPath="%ALLUSERSPROFILE%MicrosoftWindowsStart MenuProgramsAccessoriesCalculator.lnk" />
<start:DesktopApplicationTile Size="2x2" Column="0" Row="2" DesktopApplicationLinkPath="%ALLUSERSPROFILE%MicrosoftWindowsStart MenuProgramsAccessoriesPaint.lnk" />
<start:DesktopApplicationTile Size="2x2" Column="4" Row="0" DesktopApplicationLinkPath="%APPDATA%MicrosoftWindowsStart MenuProgramsAccessoriesInternet Explorer.lnk" />
</start:Group>
</defaultlayout:StartLayout>
</StartLayoutCollection>
</DefaultLayoutOverride>
</LayoutModificationTemplate>
]]>
</StartLayout>
<Taskbar ShowTaskbar="true"/>
</Profile>
</Profiles>
<Configs>
<Config>
<Account>User</Account>
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
</Config>
</Configs>
</AssignedAccessConfiguration>
Kada pravite svoje XML konfiguracijske datoteke, ne zaboravite da svaki profil mora imati jedinstveni ID, i to ne samo unutar jedne XML datoteke, već unutar jednog OS-a. One. U idealnom slučaju, da biste izbjegli zabunu, svaki put možete kreirati novi identifikator; to se može učiniti u PowerShell okruženju pomoću naredbe “[guid]::NewGuid()”. I obavezno sačuvajte datoteku u “UTF-8” kodiranju; ako je datoteka spremljena u “ANSI” kodiranju, tada ćete prilikom izrade pripremnog paketa dobiti grešku ako XML datoteka sadrži ćirilicu.
Korak 6 – primjena postavki multikioska
Pogledajmo dva načina primjene postavki opisanih u konfiguracijskoj datoteci. Prvi je kroz paket za proviziju, koji se mora kreirati u ICD-u. Nekima će možda ova metoda biti poznatija. Drugi je korištenje “MDM Bridge WMI provajdera”, ovaj metod mi se činio zgodnijim.
Metod # 1
Ko nema ICD? i instalirati. Instalacija ADK-a je vrlo jednostavna; skup komponenti se može ostaviti kao zadani.
Pokrenite ICD, kliknite na pločicu "Dodatna priprema", navedite naziv projekta i mapu, a zatim kliknite na "Dalje". U sljedećem prozoru odaberite "Sva izdanja". Windows za desktop računare" i kliknite na "Dalje". Možete preskočiti uvoz paketa za obezbjeđivanje; kliknite na "Završi".
Proširite padajući meni “Runtime Settings”, zatim proširite podmeni “AssignedAccess” i odaberite “MultiAppAssignedAccessSettings”. Na vrhu srednjeg dijela prozora ICD kliknite na dugme “Pregledaj” i naznačite lokaciju XML datoteke s postavkama. Za svaki slučaj možete sačuvati projekat pritiskom na “Ctrl+s”. U gornjem lijevom dijelu ICD-a odaberite “Izvoz” i odaberite “Provisioning Package” iz padajućeg izbornika. Kao vlasnik, odaberite “IT administrator”; sva ostala pitanja možete preskočiti klikom na “Dalje” i na kraju kliknite “Build” i “Finish”.
U instaliranom sistemu ne zaboravite kreirati korisnika "Korisnik", on se ne može dodati u grupu "Administratori", inače multikiosk neće raditi. Kreirao sam korisnika u Computer Managementu sa lozinkom koja nikada ne ističe.
Sada pokrećemo pripremni paket na prethodno instaliranom sistemu. Nakon primjene pripremnog paketa, meni Start i meni administratora će se promijeniti. U lijevoj početnoj koloni treba da nestanu dugmad: “Dokumenti”, “Slika”, “Opcije”. Ako se početni meni nije promijenio, onda je nešto pošlo po zlu. Instalirani paket može se ukloniti otvaranjem prozora Postavke > Računi > Pristup poslovnom ili školskom računu > Dodaj ili ukloni paket za dostavljanje.
Ako se početni meni promijenio, tada se postavke primjenjuju na sistem, prijavite se kao korisnik za kojeg je konfiguriran multikiosk i pogledajte rezultat.
Metod # 2
Primjena postavki pomoću "MDM Bridge WMI provajdera" . Pogodnost ove metode je njena fleksibilnost upotrebe i mogućnost da se riješi mnogih ručnih operacija koje su potrebne za kreiranje pripremnog paketa. Ovdje svako može za sebe donijeti odluku koja će mu odgovarati. Napravio sam nekoliko scenarija za sebe.
MiltiKiosk.bat – skripta za pokretanje
@echo off
chcp 1251>nul
if not exist "%~dp0psexec.exe" call :ShowMessage "‡‡‡‡‡‡‡‡‡‡‡‡‡Для работы скрипта необходим файл psexec.exe‡‡Для завершения работы скрипта нажмите любую клавишу"&pause>nul&exit
net session>nul 2>nul
if %errorLevel% neq 0 (powershell -command "Start-Process "%~s0" -Verb RunAs"&exit)
for /f "tokens=2 delims==" %%i in ('wmic useraccount where "Name='%UserName%'" get SID /value^|find "SID"') do set SID=%%i
reg add HKU%SID%SoftwareSysinternalsPsExec /v EulaAccepted /t REG_DWORD /d 1 /f
for /f %%i in ('dir "%~dp0%~n0*.ps1" /b /o:n') do set PSFilePath=%~dp0%%i
if not defined PSFilePath (echo Не найдено PS файлов с началом названия - "%~n0"&pause&exit)
set PSFilePath=%PSFilePath: =` %
"%~dp0psexec.exe" -i -s powershell -command "Start-Process powershell.exe -ArgumentList '-ExecutionPolicy Unrestricted -Command %PSFilePath%'"
exit
:ShowMessage
setlocal enabledelayedexpansion
set String=%~1
if not defined String (echo.&setlocal disabledelayedexpansion&goto :eof)
set /a ConCols=120 & set /a Num=1
set "String[!Num!].str=%String:‡=" & set /a Num+=1 & set "String[!Num!].str=%"
for /l %%a in (1,1,%Num%) do (
for /l %%b in (0,1,%ConCols%) do if "!String[%%a].str:~%%b!" == "" (set "String[%%a].str= !String[%%a].str! "&set /a String[%%a].len-=1) else (set /a String[%%a].len+=0||set /a String[%%a].len=0)
if not defined String[%%a].str (set String[%%a].str= )
if not !String[%%a].len! equ 0 (call set String[%%a].str=%%String[%%a].str:~,!String[%%a].len!%%)
if "!String[%%a].str: =!"=="" (echo.) else (echo !String[%%a].str!))
setlocal disabledelayedexpansion
goto :eof
MiltiKiosk_Ver.12.ps1 – glavna skripta
Function ConvertEncoding ([string]$From, [string]$To) {
Begin{$encFrom = [System.Text.Encoding]::GetEncoding($From);$encTo = [System.Text.Encoding]::GetEncoding($To)}
Process{$bytes = $encTo.GetBytes($_);$bytes = [System.Text.Encoding]::Convert($encFrom, $encTo, $bytes);$encTo.GetString($bytes) -replace [char]0, ''}
}
Function ShowMessage ($Message='', $Align=0) {
Try {$Align = [decimal]$Align} Catch {Return 'Для параметра Align может быть указано только число' | ConvertEncoding 'windows-1251' -To 'UTF-16'}
if ($Message -is [int]) {for ($i=1; $i -le $Message; $i++) {Write-Host}; Return}
if ([System.Text.Encoding]::Default.WindowsCodePage -eq 1252) {$Message = $Message | ConvertEncoding 'windows-1251' -To 'UTF-16'}
if ($Message -is [string]) {[array] $Message = $Message}
foreach ($String in $Message) {
Try {$String = [int]$String} Catch {}
if ($String -is [int]) {for ($i=1; $i -le $String; $i++) {Write-Host}; continue}
if ($Host.UI.RawUI.BufferSize.Width -gt $String.Length) {
if ($Align -eq 0) {Write-Host $String
} else {Write-Host ("{0}{1}" -f (' ' * (([Math]::Max(0, $Host.UI.RawUI.BufferSize.Width / $Align) - [Math]::Floor($String.Length / $Align)))), $String)}
} else {Write-Host $String}
}
}
$script:NameSpace="rootcimv2mdmdmmap"
$script:ClassName="MDM_AssignedAccess"
$script:MultiAppKiosk = Get-CimInstance -Namespace $NameSpace -ClassName $ClassName
if (-not $MultiAppKiosk) {ShowMessage -Message (3, 'Ошибка получения объекта настроек', 2, 'Нажмите "Enter" для завершения рабты скрипта') -Align 2; Read-Host; Exit}
Function MainMenu() {
ShowMessage (13, ' 0 - Выход', ' 1 - Выбрать XML-файл для установки', ' 2 - Показать текущую конфигурацию мультикиоска', ' 3 - Удалить настройки мультикиоска', 1)
$local:PromptText = 'Выберите действие'
if ([System.Text.Encoding]::Default.WindowsCodePage -eq 1252) {$PromptText = $PromptText | ConvertEncoding 'windows-1251' -To 'UTF-16'}
$local:Selections = 1..2
While ($true) {
$Select = Read-Host -Prompt $PromptText
Switch ($Select) {
0 {exit}
1 {XMLSelection}
2 {ShowMessage -Message (1, 'Начало конфигурации') -Align 2; Write-Host $MultiAppKiosk.Configuration; ShowMessage -Message ('Конец конфигурации', 1, 'Для возврата в меню нажмите "Enter"', 1) -Align 2; Read-Host}
3 {$MultiAppKiosk.Configuration = $Null; Set-CimInstance -CimInstance $MultiAppKiosk; ShowMessage -Message (1, 'Выполнена команда удаления настроек', 1) -Align 2}
DEFAULT {ShowMessage 'Выбрано недопустимое значение'}
}
if ($Selections -contains $Select) {Clear-Host; ShowMessage (15, ' 0 - Выход', ' 1 - Выбрать XML-файл для установки', ' 2 - Показать текущую конфигурацию мультикиоска', ' 3 - Удалить настройки мультикиоска', 1)}
}
}
Function XMLSelection() {
Clear-Host
if (!(Test-Path -Path $PSScriptRoot'XML')) {ShowMessage -Message (13, 'Не найден каталог', $('"'+$PSScriptRoot+'XML"'), 1, 'Нажмите "Enter" для возврвта в предыдущее меню') -Align 2; Read-Host; Return}
$local:XMLList = @()
$XMLList += Get-ChildItem -Path $PSScriptRoot'XML' -name -filter '*.xml'
if ($XMLList.Count -eq 0) {ShowMessage -Message (13, 'Не найдено XML-файлов в каталоге', $('"'+$PSScriptRoot+'XML"'), 1, 'Нажмите "Enter" для возврвта в предыдущее меню') -Align 2; Read-Host; Return}
[int]$local:Indent = 13 - $XMLList.Count / 2; if ($Indent -lt 1) {$Indent = 1}
ShowMessage ($Indent, ' 0 - Вернуться в предыдущее меню')
for ($i=0; $i -le $XMLList.GetUpperBound(0); $i++) {Write-Host $(' '+($i+1)+' - '+$XMLList[$i])}
Write-Host
$local:PromptText = 'Выберите файл для установки'
if ([System.Text.Encoding]::Default.WindowsCodePage -eq 1252) {$PromptText = $PromptText | ConvertEncoding 'windows-1251' -To 'UTF-16'}
$local:Selections = 1..$XMLList.Count
$local:BackToPrevMenu = 0
While ($BackToPrevMenu -eq 0) {
$Select = Read-Host -Prompt $PromptText
Switch ($Select) {
0 {$BackToPrevMenu = 1}
{$Selections -contains $Select} {ShowMessage $('Дана команда на применение настроек из файла '+$XMLList[$Select-1]);
$local:Config = (Get-Content -encoding UTF8 -path $($PSScriptRoot+'XML'+$XMLList[$Select-1]) -Raw).Trim()
$local:GUIDs = [regex]::matches($Config, '{.+?}') | select -ExpandProperty Value | Get-Unique
foreach ($GUID in $GUIDs) {$Config = $Config -replace $(''+$GUID),$('{'+[guid]::NewGuid()+'}')}
$Config = $Config -replace '&','&' -replace '<','<' -replace '>','>' -replace "'",''' -replace '"','"'
$MultiAppKiosk.Configuration = $Config
Set-CimInstance -CimInstance $MultiAppKiosk
}
DEFAULT {ShowMessage ('Выбрано недопустимое значение')}
}
}
}
MainMenu
Ako želite da koristite moje rešenje, onda sačuvajte gornje skripte sa njihovim originalnim imenima u jednu fasciklu i stavite datoteku „PsExec.exe“ u istu fasciklu. U istoj fascikli kreirajte fasciklu „XML“ i kopirajte XML datoteke da biste u nju konfigurisali multikiosk. Koristit ću isti fajl kao u prvoj metodi.
MultiAppKiosk.xml
<?xml version="1.0" encoding="utf-8" ?>
<AssignedAccessConfiguration
xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config"
xmlns:rs5="http://schemas.microsoft.com/AssignedAccess/201810/config"
>
<Profiles>
<Profile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}">
<AllAppsList>
<AllowedApps>
<App AppUserModelId="WINDOWS.IMMERSIVECONTROLPANEL_CW5N1H2TXYEWY!MICROSOFT.WINDOWS.IMMERSIVECONTROLPANEL" />
<App AppUserModelId="Microsoft.Windows.SecHealthUI_cw5n1h2txyewy!SecHealthUI" />
<App DesktopAppPath="%windir%system32notepad.exe" />
<App DesktopAppPath="C:Program FilesInternet Exploreriexplore.exe" />
<App DesktopAppPath="%windir%system32win32calc.exe" />
<App DesktopAppPath="%windir%system32mspaint.exe" />
<App DesktopAppPath="%ProgramFiles%Windows NTAccessorieswordpad.exe" />
</AllowedApps>
</AllAppsList>
<StartLayout>
<![CDATA[<LayoutModificationTemplate xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout" Version="1" xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification">
<LayoutOptions StartTileGroupCellWidth="6" />
<DefaultLayoutOverride>
<StartLayoutCollection>
<defaultlayout:StartLayout GroupCellWidth="6">
<start:Group Name="Настройки">
<start:Tile Size="2x2" Column="0" Row="0" AppUserModelID="WINDOWS.IMMERSIVECONTROLPANEL_CW5N1H2TXYEWY!MICROSOFT.WINDOWS.IMMERSIVECONTROLPANEL" />
<start:Tile Size="4x2" Column="2" Row="0" AppUserModelID="Microsoft.Windows.SecHealthUI_cw5n1h2txyewy!SecHealthUI" />
</start:Group>
<start:Group Name="Офисные приложения">
<start:DesktopApplicationTile Size="2x2" Column="2" Row="2" DesktopApplicationLinkPath="%ALLUSERSPROFILE%MicrosoftWindowsStart MenuProgramsAccessoriesWordpad.lnk" />
<start:DesktopApplicationTile Size="2x2" Column="0" Row="0" DesktopApplicationLinkPath="%APPDATA%MicrosoftWindowsStart MenuProgramsAccessoriesNotepad.lnk" />
<start:DesktopApplicationTile Size="2x2" Column="2" Row="0" DesktopApplicationLinkPath="%ALLUSERSPROFILE%MicrosoftWindowsStart MenuProgramsAccessoriesCalculator.lnk" />
<start:DesktopApplicationTile Size="2x2" Column="0" Row="2" DesktopApplicationLinkPath="%ALLUSERSPROFILE%MicrosoftWindowsStart MenuProgramsAccessoriesPaint.lnk" />
<start:DesktopApplicationTile Size="2x2" Column="4" Row="0" DesktopApplicationLinkPath="%APPDATA%MicrosoftWindowsStart MenuProgramsAccessoriesInternet Explorer.lnk" />
</start:Group>
</defaultlayout:StartLayout>
</StartLayoutCollection>
</DefaultLayoutOverride>
</LayoutModificationTemplate>
]]>
</StartLayout>
<Taskbar ShowTaskbar="true"/>
</Profile>
</Profiles>
<Configs>
<Config>
<Account>User</Account>
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
</Config>
</Configs>
</AssignedAccessConfiguration>
Malo o karakteristikama skripte. Skripta je dizajnirana da koristi XML datoteke sa “UTF8” kodiranjem; ako želite da koristite “ANSI” kodiranje, uklonite parametar “kodiranje UTF8” iz opcije čitanja datoteke. Morate smjestiti XML datoteke u mapu “XML” bez zamjene znakova; sama skripta će zamijeniti posebne znakove odgovarajućim oznakama. Kako se ne biste zabunili u GUID-ovima povezivanja korisnika sa profilima, možete jednostavno navesti broj korisnika ili ime u vitičastim zagradama; sav sadržaj u vitičastim zagradama bit će zamijenjen GUID-ovima.
Korištenje skripte je vrlo jednostavno, samo je pokrenite i odaberite potrebnu stavku. Da biste promijenili trenutnu konfiguraciju u novu, nije potrebno brisati trenutnu, ona će biti prepisana. Ne zaboravite kreirati korisnike koji su navedeni u konfiguracijskoj datoteci.
Prilikom pregleda trenutne konfiguracije multikioska u istoj sesiji u kojoj je primijenjena, umjesto specijalnih znakova, prikazat će se kombinacije zamjenskih znakova. Nakon promjene sesije (ponovnog pokretanja skripte), svi specijalni znakovi će biti prikazani u svom originalnom obliku.
Korak 7 - Zaptivanje sistema
Multikiosk radi, pa, to je sve, čini se...
Ako sve ide po planu, onda nešto ne primjećujete.
Ne zaboravite da još uvijek moramo prebaciti sistem iz moda revizije u način dobrodošlice. Pa, spremni smo za ovo, pokrećemo “Sysprep.bat”, biramo tačku 2, sistem je zapečaćen. Uključujemo uređaj, sistem se pokreće, prijavljujemo se na korisnički nalog za koji je konfigurisan multikiosk, ali ne možemo da se prijavimo. Nakon poruke „Dobrodošli“, pojavljuje se poruka „Odjava“.
U početku sam htio opisati samo rješenje problema, ali sam kasnije odlučio da opišem korake za identifikaciju problema i pronalaženje najjednostavnijeg rješenja jer... Sigurno će mnoge čitaoce mučiti nejasne sumnje - "Šta ako je ovako...". Mislim da će vam opisivanje različitih eksperimenata uštedjeti značajnu količinu vremena ako želite pronaći drugo rješenje. Kako bi informacije bile što tačnije, i još jednom se uvjerio da nema grešaka, opisiću eksperimente u formatu “urađeno i snimljeno”. One. Ponovo ću raditi opisane eksperimente.
eksperimenti
sta smo uradili? U sistemu postoje dva naloga:
“Admin” – u grupi “Administratori”.
“Korisnik” – u grupi “Korisnici”.
U režimu revizije, multikiosk je radio, ali kada je zapečaćen, nije radio.
Eksperiment 1
Izbrišemo instalirani pripremni paket, u snap-inu „Upravljanje računarom“ izbrišemo korisnika „Korisnik“ i kreiramo novog korisnika sa imenom „Korisnik“, primenimo pripremni paket, idemo na „Korisnik“ nalog - radi ne radi. Idemo pod imenom "Admin", uklonimo korisnika "Korisnik" iz grupe "Korisnici", dodamo ga u grupu "Administratori", idemo pod imenom "Korisnik" - ne radi. Ulogujemo se pod imenom “Admin”, izbrišemo pripremni paket sa multikioskom, ulogujemo se pod imenom “Korisnik” - uspeli smo da se ulogujemo, ali naravno multikiosk režim ne radi jer Paket za proviziju je uklonjen.
Eksperiment 2
Učitavamo sliku sistema - rusifikovanu u režimu revizije.
OS se učitao, pritisnite “Win+r”, jer Naš sysprep prozor se automatski zatvorio, pokrenite naredbu “sysprep” i pokrenite “sysprep” u prozoru koji se otvori. Postavke Sysprep-a u prozoru: “Idite na prozor dobrodošlice sistema (OOBE)”, “Priprema za upotrebu”, “Ponovo pokrenite”. Kliknite na “OK” i pričekajte pozdrav OS. Odgovaramo na pitanja kada se sistem prvi put pokrene: "Nastaviti na odabranom jeziku?" - "ruski"; region – Rusija; raspored tastature – ruski; dodajte drugi raspored tastature - preskočite; “Hajde da vas povežemo na mrežu” – “Preskoči za sada”; povezivanje na Internet - ne; ugovor o licenci - prihvatiti; “Ko će koristiti ovaj računar” – “Test”; kreiranje lozinke - ostavite polje praznim; Pogodan rad na različitim uređajima – ne; Postavke privatnosti – prihvatiti. OS se učitao, u snap-inu „Upravljanje računarom“ kreiramo korisnika sa imenom „Korisnik“, dodajemo pripremni paket. Rezultat je da ne radi.
Eksperiment 3
Učitavamo sliku sistema - rusifikovanu u režimu revizije.
OS se učitao, povezujemo sistem na internet, pokrećemo naredbu „gpedit.msc“ i u odjeljku „Centar za ažuriranje“ WindowsOmogućite opciju "Omogući preporučena ažuriranja putem automatskog ažuriranja" i ponovo pokrenite računar za svaki slučaj. U Centru za ažuriranja kliknite na "Provjeri ažuriranja" i ponovo pokrenite računar dok se sva ažuriranja ne instaliraju. Isključite sistem sa interneta. Pokrenite "sysprep" u grafičkom režimu i ponovite sve korake opisane u prethodnom koraku, od pokretanja uslužnog programa "sysprep" do dodavanja paketa za pripremu. Rezultat: ne radi.
Eksperiment 4
Učitavamo sliku sistema - engleski u režimu revizije.
Pokrećemo “sysprep” u grafičkom režimu, zapečatimo OS sa istim parametrima kao i tokom eksperimenta 2. Kada se sistem prvi put pokrene, biramo iste parametre kao u eksperimentu 2, sa izuzetkom regionalnih i jezičkih parametara jer Ne postoji ruski jezik. Na isti način kreirajte korisnika "Korisnik" i dodajte paket za proviziju. Rezultat je da radi. One. Problem je vezan za lokalizaciju.
Eksperiment 5
Učitavamo sliku sistema - rusifikovanu u režimu revizije.
U dodatku „Upravljanje računarom“ kreirajte korisnika „Korisnik“, dodajte pripremni paket, idite na „Korisnički“ nalog, multi-kiosk radi.
Odjavite se sa svog naloga i prijavite se pod "Admin" nalogom. Pokrećemo PowerShell sa administratorskim pravima, izvršavamo naredbu “Dism /online /Get-Intl” i vidimo “Podrazumevani jezik korisničkog interfejsa: en-US”.
Dižemo sa fleš diska u WinPE, raspoređeni OS je na mom disku E. Izvršavamo naredbu “Dism /image:E: /Set-UILang:ru-ru”. Gledamo rezultat, izvršavamo "Dism /image:E: /Get-Intl" i vidimo "Podrazumevani jezik korisničkog interfejsa sistema: ru-RU".
Pokrećemo se u sistem, prijavite se na "Korisnički" nalog, multikiosk ne radi.
Da bismo jasno utvrdili uzročno-posledični odnos problema, pokušajmo ponovo da multi-kiosk radi i da ne radi.
Dižemo sa fleš diska u WinPE, raspoređeni OS je na mom disku E. Izvršavamo naredbu “Dism /image:E: /Set-UILang:en-us”. Gledamo rezultat, izvršavamo "Dism /image:E: /Get-Intl" i vidimo "Podrazumevani jezik korisničkog interfejsa sistema: en-US".
Pokrećemo se u sistem, prijavite se na "Korisnički" nalog, multikiosk radi.
Dižemo sa fleš diska u WinPE, raspoređeni OS je na mom disku E. Izvršavamo naredbu “Dism /image:E: /Set-UILang:ru-ru”. Gledamo rezultat, izvršavamo "Dism /image:E: /Get-Intl" i vidimo "Podrazumevani jezik korisničkog interfejsa sistema: ru-RU".
Pokrećemo se u sistem, prijavite se na "Korisnički" nalog, multikiosk ne radi.
One. možete vidjeti jasnu ovisnost performansi kioska od zadanog jezika korisničkog sučelja. Možda postoje neki drugi faktori koji utiču na performanse multikioska?
Eksperiment 6
Radi čistoće eksperimenta, dopunjavamo sistem. Učitavamo sliku sistema - rusifikovanu u režimu revizije.
Pokrećemo “sysprep” u grafičkom modu, zapečatimo OS istim parametrima kao i tokom eksperimenta 2. Čekamo da nas OS pozdravi i odgovori na pitanja: “Nastaviti na odabranom jeziku?” – “Engleski (Sjedinjene Američke Države)”; region – Rusija; Raspored tastature – ruski. Nadalje, svi parametri su odabrani kao u eksperimentu 2.
Pogledajmo zadane postavke jezika korisničkog interfejsa. Izvršavamo naredbu “Dism /online /Get-Intl” i vidimo “Podrazumevani jezik korisničkog interfejsa sistema: en-US”. U dodatku „Upravljanje računarom“ kreirajte korisnika „Korisnik“, dodajte pripremni paket, idite na „Korisnički“ nalog, multi-kiosk radi.
Pokušavamo da razbijemo kiosk promjenom podrazumevanog jezika korisničkog interfejsa. Ulazimo u „Test“ korisnika, koji je kreiran prilikom prvog pokretanja sistema i omogućavamo automatsku prijavu za njega kako se sistem ne bi odmah pokrenuo na „Korisnički“ nalog. Izvršite “netplwiz”, odaberite “Test” korisnika, poništite izbor u polju za potvrdu “Zahtijevaj korisničko ime i lozinku” i primijenite parametre.
Pokrenite sistem sa fleš diska u WinPE. Izvršite naredbu “Dism /image:E: /Set-UILang:ru-ru”. Gledamo rezultat, izvršavamo "Dism /image:E: /Get-Intl" i vidimo "Podrazumevani jezik korisničkog interfejsa sistema: ru-RU".
Pokrećemo se u sistem, pokušavamo se prijaviti na "Korisnički" račun, multikiosk radi. One. ne može se slomiti. Da li je moguće da to funkcionira na ovaj način?
Eksperiment 7
Učitavamo sliku sistema - rusifikovanu u režimu revizije.
Pokrećemo “Sysprep.bat”, biramo tačku 2. Pokrećemo sistem, kreiramo korisnika “Korisnik” u snap-inu “Upravljanje računarom”, dodamo pripremni paket, idemo na nalog “Korisnik”, multi- kiosk ne radi.
Pokrenite sistem sa fleš diska u WinPE. Izvršite naredbu “Dism /image:E: /Set-UILang:en-us”. Gledamo rezultat, izvršavamo "Dism /image:E: /Get-Intl" i vidimo "Podrazumevani jezik korisničkog interfejsa sistema: en-US".
Pokrećemo se u sistem, pokušavamo se prijaviti na "Korisnički" račun, multikiosk ne radi.
Ispostavilo se da promenom podrazumevane postavke jezika korisničkog interfejsa možete uticati na performanse multikioska samo kada je sistem u režimu revizije ili pri prvom pokretanju nakon zaptivanja sistema. To znači da ćete morati da zapečatite sistem datotekom odgovora u kojoj će se izabrati jezik sistema na engleskom, a zatim promeniti sistemske postavke tako da interfejs bude ruski. Nije baš dobro rješenje. Možda se problem može riješiti instaliranjem jezičnog paketa ili instaliranjem dodatnih jezičkih paketa?
Eksperiment 8
Učitavamo sliku sistema - engleski u režimu revizije.
Povezujemo se na Internet, u sistemskim parametrima idite na odjeljak "Jezik", odaberite "Dodaj jezik", odaberite jezik "ruski", kliknite "Dalje", ostavite parametre instalacije kao zadane, kliknite "Instaliraj", nakon instalacije jezički paket ponovo pokrećemo sistem, sada na rusifikovanom. Isključite sistem sa Interneta, pokrenite “Sysprep.bat”, odaberite tačku 2.
Nakon učitavanja sistema, u snap-inu „Upravljanje računarom“ kreirajte korisnika „Korisnik“, dodajte pripremni paket, idite na „Korisnički“ nalog, multi-kiosk ne radi.
Eksperiment 9
Pokušajmo rusificirati sistem prije instalacije, u offline modu. Istovremeno će se održati i kratak edukativni program o lokalizaciji distribucije.
Uzimam fleš disk sa čistom, originalnom distribucijom – X21-96381. Ovo će biti disk "E". Za montiranje slika kreiram sljedeće foldere: "c:MountInstall", "c:MountWinre" i "c:MountBoot". Uzimam set paketa za lokalizaciju – X21-87814. I kopiram sljedeće pakete sa njega u folder "c:Mount": "Microsoft-"Windows-Client-Language-Pack_x86_ru-ru.cab", "lp.cab", "WinPE-Setup_ru-ru.cab". Pokrećem konzolu s administratorskim pravima. Mislim da su sljedeće naredbe same po sebi jasne.
Naredbe za lokalizaciju
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
Pokrećemo se sa fleš diska, biramo ruski jezik i instaliramo sistem na prazan disk. Kada sistem od vas zatraži da odaberete regiju, pritisnite “Ctrl+Shift+F3”. U dodatku „Upravljanje računarom“ kreirajte korisnika „Korisnik“, dodajte pripremni paket, idite na „Korisnički“ nalog, multi-kiosk ne radi.
Pokrenite sistem sa fleš diska u WinPE. Izvršite naredbu “Dism /image:E: /Set-UILang:en-us”.
Pokrećemo se u sistem, pokušavamo se prijaviti na "Korisnički" račun, multikiosk radi.
Očigledno problem nije u metodama dodavanja paketa, hajde da probamo dodati dodatne pakete.
Eksperiment 10
Uzimamo fleš disk koji smo pripremili u prethodnom koraku.
Uzimamo paket “Feat on Demand” – X21-87815. Kopiram pakete iz njega u folder “c:Mount”: «Microsoft-Windows-LanguageFeatures-Basic-ru-ru-Package~31bf3856ad364e35~x86~~.cab», «Microsoft-Windows-LanguageFeatures-OCR-ru-ru-Package~31bf3856ad364e35~x86~~.cab», «Microsoft-Windows-LanguageFeatures-Handwriting-ru-ru-Package~31bf3856ad364e35~x86~ ~.cab», «Microsoft-Windows-LanguageFeatures-TextToSpeech-ru-ru-Package~31bf3856ad364e35~x86~~.cab».
Берем пакет «Feat on Demand RDX Updt» – X21-99781. В папку «c:Mount» копирую из него пакеты: «Microsoft-Windows-RetailDemo-OfflineContent-Content-Package~31bf3856ad364e35~x86~~.cab», « Microsoft-Windows-RetailDemo-OfflineContent-Content-ru-ru-Package~31bf3856ad364e35~x86~~.cab».
Pokrenite konzolu sa administratorskim pravima i izvršite naredbe:
Komande
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
Pokrećemo se sa fleš diska, biramo ruski jezik i instaliramo sistem na prazan disk. Kada sistem od vas zatraži da odaberete regiju, pritisnite “Ctrl+Shift+F3”. U dodatku „Upravljanje računarom“ kreirajte korisnika „Korisnik“, dodajte paket za obezbeđivanje i prijavite se na „Korisnički“ nalog. Dobio sam crni ekran koji je visio dugo vremena, pa sam pokrenuo sistem.
Izbrišemo pripremni paket, ulogujemo se kao “Korisnik”, restartujemo sistem, dodamo pripremni paket, multikiosk ne radi.
Pokrenite sistem sa fleš diska u WinPE. Izvršite naredbu “Dism /image:E: /Set-UILang:en-us”.
Pokrećemo se u sistem, pokušavamo se prijaviti na "Korisnički" račun, multikiosk radi.
Zaobilazno rješenje
Normalni heroji. Uvek idu zaobilaznim putem!
Različiti načini instaliranja lokalizacijskih paketa nisu riješili problem, što znači da ćete morati instalirati “en-us” jezik pri prvom pokretanju nakon zatvaranja, a promijeniti jezične postavke nakon prvog pokretanja.
Učitavamo sliku sistema - rusifikovanu u režimu revizije.
U fajlu “Unattend.xml” unesite “en-US” u parametar, pokrenite “Sysprep.bat”, odaberite tačku 2 i pogledajte šta smo dobili. Ekran dobrodošlice je na engleskom, multi-kiosk radi. To znači da morate dodati komandu u “Unattend.xml” da promijenite jezik pozdrava. A da biste to učinili, potrebno je pokrenuti naredbu “control intl.cpl,, /f:” koja označava konfiguracijsku datoteku, koja će specificirati kopiranje trenutnih parametara na ekran dobrodošlice. Sadržaj konfiguracijske datoteke će izgledati ovako.
<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend">
<gs:UserList>
<gs:User UserID="Current" CopySettingsToSystemAcct="true"/>
</gs:UserList>
</gs:GlobalizationServices>
Jer će kopirati postavke trenutnog korisnika, onda se naredba mora izvršiti nakon što se korisnik prijavi, što znači da će nam trebati. Postoji jedno malo “ali”, izvršenje će se dogoditi nakon što se korisnik s administratorskim pravima prijavi. I ne bih želio da kreiram dodatnu datoteku koja bi bila potrebna da bi se naredba uspješno pokrenula. Bolje je implementirati cijelo rješenje u jednom fajlu - “Unattend.xml”. Da biste to učinili, jednostavno ćete morati pokrenuti naredbu koja kreira konfiguracijski fajl. Mislim da ću kreirati konfiguracionu datoteku koristeći komandu "echo" u okruženju "cmd", ali treba da izbegne ugaone zagrade pomoću cirkumfleksa. One. Za kreiranje konfiguracijske datoteke dobija se sljedeća naredba.
echo ^<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend"^>^<gs:UserList^>^<gs:User UserID="Current" CopySettingsToSystemAcct="true"/^>^</gs:UserList^>^</gs:GlobalizationServices^>>Config.xml
Ali moramo ovu naredbu smjestiti u XML, koji ima svoje zahtjeve za korištenje posebnih znakova:
Poseban karakter
Zamjenska vrijednost
>
>
<
<
&
&
'
'
"
"
Kao rezultat toga, za kreiranje konfiguracijske datoteke, dobili smo sljedeću naredbu za “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"
Zatim izvršavamo naredbu koristeći konfiguracijski fajl.
control intl.cpl,,/f:"%TMP%Config.xml"
Zatim izbrišite prethodno kreiranu datoteku i ponovo pokrenite sistem. promjene će stupiti na snagu nakon ponovnog pokretanja.
cmd.exe /c del "%TMP%Config.xml" /q&shutdown /r /f /t 00
Kao rezultat, završio sam sa sljedećom datotekom odgovora za sysprep.
Unattend.xml
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="specialize">
<component name="Microsoft-Windows-Deployment" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RunSynchronous>
<RunSynchronousCommand wcm:action="add">
<Path>reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v SetupDisplayedProductKey /t REG_DWORD /d 1 /f</Path>
<Order>1</Order>
<Description>Dont show key page</Description>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Path>reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v UnattendCreatedUser /t REG_DWORD /d 1 /f</Path>
<Order>2</Order>
<Description>Dont make account</Description>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Path>cmd.exe /c rd %systemdrive%Sysprep /s /q</Path>
<Order>3</Order>
<Description>Del Folder</Description>
</RunSynchronousCommand>
</RunSynchronous>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<AutoLogon>
<Enabled>true</Enabled>
<Username>Admin</Username>
</AutoLogon>
</component>
</settings>
<settings pass="oobeSystem">
<component name="Microsoft-Windows-International-Core" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<InputLocale>en-US; ru-RU</InputLocale>
<SystemLocale>ru-RU</SystemLocale>
<UILanguage>en-US</UILanguage>
<UILanguageFallback></UILanguageFallback>
<UserLocale>ru-RU</UserLocale>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<OOBE>
<HideEULAPage>true</HideEULAPage>
<HideLocalAccountScreen>true</HideLocalAccountScreen>
<HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
<HideOnlineAccountScreens>true</HideOnlineAccountScreens>
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
<ProtectYourPC>1</ProtectYourPC>
</OOBE>
<FirstLogonCommands>
<SynchronousCommand wcm:action="add">
<CommandLine>cmd.exe /c echo ^<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend"^>^<gs:UserList^>^<gs:User UserID="Current" CopySettingsToSystemAcct="true"/^>^</gs:UserList^>^</gs:GlobalizationServices^>>"%TMP%Config.xml"</CommandLine>
<Description>CreateConfig</Description>
<Order>1</Order>
</SynchronousCommand>
<SynchronousCommand wcm:action="add">
<CommandLine>control intl.cpl,,/f:"%TMP%Config.xml"</CommandLine>
<Description>UseConfig</Description>
<Order>2</Order>
</SynchronousCommand>
<SynchronousCommand wcm:action="add">
<CommandLine>cmd.exe /c del "%TMP%Config.xml" /q&shutdown /r /f /t 00</CommandLine>
<Description>DelConfig</Description>
<Order>3</Order>
</SynchronousCommand>
</FirstLogonCommands>
</component>
</settings>
hajde da proverimo...
Učitavamo sliku sistema - rusifikovanu u režimu revizije.
Mijenjamo datoteku Unattend.xml u novu, pokrećemo “Sysprep.bat”, odabiremo tačku 2 i vidimo šta smo dobili. Kada prvi put pokrenete, ekran dobrodošlice je na engleskom i sistem se ponovo pokreće. Ekran dobrodošlice je na ruskom, multikiosk radi.
Ako imate bilo kakvih pitanja u vezi s postavljanjem i licenciranjem Windows 10 IoT Enterprise, kontaktirajte nas na ili na web stranicu .
Odgovore na neka pitanja možete pronaći u ili na našem
Autor članka: Vladimir Borisenkov, tehnički stručnjak u Quarta Technologies.
izvor: www.habr.com
