Introduction
– le nom marketing de la dernière version de Windows 10. Cette version a été annoncée en septembre 2018 et correspond à la version 1809, 18 représentant l'année et 09 le mois. De nombreux articles ont été publiés sur cette nouvelle version de Windows 10 1809, mais la plupart se concentrent sur divers « atouts », « esthétiques » et fonctionnalités qui sont populaires dans un environnement domestique.
Dans cet article, nous allons uniquement traiter des fonctionnalités qui peuvent être pertinentes pour les fabricants d'appareils à usage fixe. En particulier, nous discuterons des nouvelles possibilités du mode « Kiosque ». Le sujet du changement de dénomination des schémas de maintenance pour les éditions Windows du segment entreprise sera également abordé.
L'ancien schéma de maintenance avec un nouveau nom
Je vais commencer par une brève explication : dans le segment entreprise pour les éditions de Windows, il existe deux schémas de maintenance par lesquels Windows reçoit des mises à jour. Ces schémas de maintenance ont une désignation alphabétique. Actuellement, les branches de maintenance sont appelées LTSC et SAC.
LTSC signifie (avec un service à long terme). Auparavant, ce canal était appelé LTSB – Branche de service à long terme, Microsoft a simplement changé le nom de ce canal de service, mais le service lui-même est resté le même.
Microsoft a également changé le nom de la branche de service CBB – Current Branch for Business, maintenant cette branche de service est appelée SAC – . Encore une fois, seul le nom a changé.
Mais il convient de mentionner que des distributions Windows différentes sont utilisées pour les branches de service LTSC et SAC.
Un peu sur le nouveau mode kiosque dans SAC
Comme je l'ai déjà mentionné, LTSC et SAC utilisent des distributions différentes. LTSC ne dispose pas d'applications universelles standard ni de magasin d'applications, alors que SAC en a. Par conséquent, LTSC ne comprend pas le navigateur Edge, mais SAC l'inclut. Si, lors de la configuration du kiosque, vous choisissez le navigateur Edge, deux modes d'accès sont maintenant disponibles :
- Comme signal numérique ou écran interactif
- Comme navigateur public
Je ne vais pas m'attarder sur la configuration de ces modes, car la configuration est très simple et se fait via l'interface graphique. Il suffit de créer un utilisateur qui ne fait pas partie du groupe « Administrateurs », d'activer le mode kiosque avec EDGE et de voir comment ces modes fonctionnent.
Kiosque avec de nombreuses applications
Certaines personnes pensent que l'utilisation sous licence de impliquait le fonctionnement d'une seule application sur l'appareil, mais en réalité, ce n'est pas le cas. L'appareil doit être destiné à exécuter une tâche commerciale unique et l'utilisateur ne doit pas avoir accès au bureau. Désormais, Microsoft a également fourni un outil pour utiliser plusieurs applications. Ce mode s'appelle « multi-app kiosk », que je vais abréger en « multikiosk ». Dans cet article, nous allons examiner la configuration de ce mode à l'aide d'un package d'approvisionnement et certaines particularités de ce mode.
Un peu sur le mode « Multikiosk »
Lors de la connexion à un compte utilisateur pour lequel le mode multikiosk est configuré, le système fonctionnera en mode tablette. Le menu « Démarrer » sera déployé en plein écran, affichant des tuiles d'applications.
Liste des principales configurations et fonctionnalités du mode :
- Configuration pour plusieurs utilisateurs ou groupes
- Chaque utilisateur ou groupe peut se voir attribuer des paramètres individuels
- Possibilité d'utiliser des applications universelles et classiques
- Possibilité de lancer automatiquement l'une des applications lors de la connexion de l'utilisateur au système
- Fonctionnement des applications par liste blanche
- Accès aux dossiers par liste blanche
Il convient de prêter attention au point 5. Par défaut, seuls les applications nécessaires au fonctionnement du système seront autorisées ; les autres applications doivent être ajoutées à la liste des autorisées. Autrement dit, il n'est plus nécessaire de configurer AppLocker séparément. D'ailleurs, pour éviter un conflit avec les réglages d'AppLocker, toutes les règles configurées d'AppLocker ne s'appliqueront pas en mode multikiosk.
Le point 6 met en évidence une bonne possibilité, mais pour le moment, il est uniquement possible d'accorder des autorisations d'écriture pour le dossier « Téléchargements ». Le mode permet d'utiliser des applications universelles et classiques. Tous les paramètres du mode sont spécifiés dans un fichier XML, dans lequel il est également possible de spécifier des paramètres pour un kiosque à application unique.
Et maintenant, essayons de tout configurer...
Ce dont nous aurons besoin...
- Tout d'abord, nous aurons besoin du système lui-même, qui prend en charge le mode multikiosk. la version de démonstration
- Tout éditeur XML
- Pour appliquer les paramètres du multikiosk :
- Pour la méthode n°1 — ICD, qui fait partie d'ADK. ADK peut être
- Pour la méthode n°2 – l'outil PsExec. L'outil peut être
Il a dit – «Allons-y!»
Tous les tests que je vais réaliser seront sur Windows 10 IoT Enterprise 1809 LTSC x32 version commerciale, et non pas la version de démonstration. Le système sera sans activation car l'absence d'activation n'affecte pas la fonctionnalité du système. J'ai choisi 32 bits uniquement parce qu'il prend moins de place et qu'il sera plus rapide de travailler avec les images système.
Étape 1 – installation
L'installation de Win 10 IoT Enterprise ne diffère pas de celle de Win 10 Enterprise, donc je ne vais pas décrire tout le processus d'installation, je vais juste mentionner quelques nuances.
Je rappelle au cas où, ne pas installer le système par-dessus une installation existante. Lorsque l'installateur demandera l'emplacement de l'installation du système, supprimez toutes les partitions sur le futur disque système et indiquez le disque non alloué.
Installez le système sans connexion Internet, afin que le système ne télécharge rien de superflu.
Comme nous allons créer des images de sauvegarde du système et que nous allons l'installer en mode audit, nous pouvons économiser un peu de temps en démarrant le système en mode audit immédiatement après l'installation. Pour cela, lorsque le système vous demandera de choisir une région «Commençons par la région. Est-ce correct ?», il suffit d'appuyer sur «Ctrl+Shift+F3».
Étape 2 – création de l'image système
Comme nous allons tester différents nouveaux paramètres sur le système, il est probable que quelque chose ne se passe pas comme prévu et qu'il soit nécessaire de ramener le système à son état d'origine. Pour un retour rapide à l'état d'origine, il faut créer une image système. La seule chose que je vais faire, c’est de copier le «kit de gentleman» – le script et le fichier de réponses. Tous les fichiers se trouvent dans le dossier «Sysprep», que je vais copier à la racine du disque système. Et bien sûr, je vais partager avec vous ce «kit de gentleman».
Sysprep.bat – pour l'installation en mode audit du système.
@echo off
chcp 1251>nul
net session>nul 2>nul
if %errorLevel% neq 0 (powershell -command "Start-Process "%~s0" -Verb RunAs"&exit)
tasklist /fi "ImageName eq sysprep.exe" | find /i "sysprep.exe"
if %errorlevel% lss 1 (taskkill /im sysprep.exe)
set AdminName=Admin
net user minName%>nul 2>nul
if %errorLevel% neq 0 (call :AddAdmin "minName%")
if %errorLevel% neq 0 (call :ShowMessage "‡‡‡Erreur lors de la création d'un nouveau compte administrateur "minName%"‡‡Appuyez sur n'importe quelle touche pour terminer l'exécution du script"&pause>nul&exit)
pushd "%~dp0"
cls
call :ShowMessage ‡‡‡‡‡‡‡‡‡‡
echo 1 - Sceller le système en mode audit
echo 2 - Sceller le système en mode présentation
:Select
set /p Choice="Entrez le numéro de l'option: "
if "%Choice%"=="1" (goto Audit)
if "%Choice%"=="2" (goto OOBE)
echo.&echo Valeur choisie invalide.&goto Select
exit
:Audit
call :ShowMessage "‡‡‡‡‡Scellage du système en mode audit"
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 "‡‡‡‡‡Scellage du système en mode présentation"
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 Nom d'utilisateur non spécifié&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 minGroup% %UserName% /add
net localgroup %UserGroup% %UserName% /delete
endlocal&exit /b 0
goto :eof
:GetGroupName
if "%~1"=="" (echo SID de groupe non spécifié&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 Erreur de détermination du nom de groupe à partir du 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 :eofLors de l'exécution du script, il vérifiera la présence d'un compte « Admin » et le créera en son absence. Le compte sera ajouté au groupe « Administrateurs ».
Unattend.xml – fichier de réponses pour sysprep.
reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v SetupDisplayedProductKey /t REG_DWORD /d 1 /f
1
Ne pas afficher la page de clé
reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v UnattendCreatedUser /t REG_DWORD /d 1 /f
2
Ne pas créer de compte
cmd.exe /c rd %systemdrive%Sysprep /s /q
3
Supprimer le dossier
true
Admin
en-US; ru-RU
ru-RU
ru-RU
ru-RU
true
true
true
true
true
1Lors de l'activation en mode audit, le script ajoutera au registre une commande pour terminer le processus « sysprep.exe » afin de ne pas avoir à fermer la fenêtre de sysprep manuellement à chaque fois. Lors de l'activation en mode bienvenue, le script supprimera la commande de fermeture de la fenêtre du registre et changera lui-même la valeur de l'architecture dans le fichier de réponses pour qu'elle soit actuelle. Le fichier de réponses contient des paramètres pour démarrer le système sans intervention utilisateur ainsi qu'une commande pour supprimer le dossier « Sysprep » à la racine du disque système.
Je vais maintenant activer le système en mode audit en utilisant « Sysprep.bat » et je vais créer une image système. Je vais créer l'image système avec DISM et je vais faire l'image uniquement du volume système. Si vous créez l'image uniquement du volume système et non pas de tout le disque, n'oubliez pas de copier le contenu du répertoire « WindowsSystem32Recovery » vers le dossier « RecoveryWindowsRE » sur le premier volume après le déploiement du système. Cela doit être fait avant le démarrage du système d'exploitation, car après le démarrage, le répertoire « WindowsSystem32Recovery » sera déjà vide.
Étape 3 – localisation du système
Le package linguistique peut être installé sans connexion Internet, si vous possédez ce package. Sinon, le système le téléchargera automatiquement depuis Internet lorsque vous ajoutez la langue dans les paramètres. Il est important de ne pas utiliser le package linguistique des versions antérieures du système d'exploitation. Pour Windows 10 1809, le package linguistique doit être spécifiquement conçu pour Windows 10 1809.
Microsoft suit son plan – la transition progressive des paramètres du menu classique vers le nouveau, c'est pourquoi vous ne trouverez plus les paramètres pour changer la langue et installer le package linguistique dans le panneau de contrôle classique. Ces paramètres sont désormais uniquement disponibles dans les paramètres système.
En mode audit, vous pourriez rencontrer des problèmes pour ouvrir les paramètres système depuis le menu « Démarrer ». Pour ouvrir les paramètres système, utilisez la commande – « ms-settings: », notez le deux-points à la fin de la commande, sinon celle-ci ne fonctionnera pas. Après avoir ouvert une fois les paramètres système avec cette commande, vous pourrez les ouvrir via le menu graphique.
Mais dans les paramètres système, vous pouvez installer le package linguistique si le système est connecté à Internet. Il n'est pas possible de choisir d'installer un package linguistique depuis un fichier local.
Je ne vais pas décrire le processus de localisation du système, car cela alourdirait considérablement l'article, d'autant plus que le processus est décrit en détail . Cependant, je voudrais attirer votre attention sur une particularité concernant le changement de langue du système après l'installation du paquet linguistique via la console. Cette particularité est décrite dans le même wiki auquel j'ai donné le lien précédemment, dans la sous-partie .
J'installerai le paquet linguistique sans connexion Internet.
Après une localisation complète du système, il est impératif de créer une image système.
Étape 4 – installation des applications nécessaires
Comme il n'y a pas de magasin d'applications dans les systèmes LTSB et LTSC, l'installation des applications à partir de « Microsoft Store » pose certaines difficultés, notamment le téléchargement des applications. Pour faciliter le téléchargement d'applications, la société « Adguard » a créé un service très pratique – , qui permet d'obtenir des liens temporaires pour le téléchargement des applications et de leurs composants.
Pour installer une application, vous aurez besoin de fichiers avec les extensions « Appx » et « AppxBundle ». Avant l'installation de l'application elle-même, il est nécessaire d'installer ses composants. En général, on peut reconnaître intuitivement les composants d'une application par le nom du fichier.
Pour ne pas rendre l'article trop long, je ne vais pas décrire en détail le processus d'installation des applications, d'autant plus qu'il existe une . Mais je vais ajouter un autre moyen d'installer des applications sur le compte actuel. Les applications peuvent être installées à l'aide du programme , mais pour installer des applications, une connexion Internet est nécessaire. En revanche, les applications pourront être installées par un double-clic et vous n'aurez pas besoin de leurs composants, tous les composants nécessaires seront téléchargés et installés. .
Et un petit rappel, lors de l'installation d'une application sur le compte actuel, le système ne pourra pas être scellé. Pour savoir comment installer des applications afin de pouvoir sceller le système, consultez l'instruction mentionnée ci-dessus. Et pour vérifier le fonctionnement du multi-kiosque, les applications déjà disponibles suffisent.
Étape 5 – création du fichier de configuration pour le multi-kiosque
Nous voilà arrivés à la partie la plus intéressante – la configuration du mode kiosque. Nous regardons dans de configuration et voyons. Tout d'abord, nous allons devoir créer un fichier XML de configuration, un exemple complet de celui-ci est disponible. .
Commençons par configurer l'emplacement des tuiles. La manière la plus simple de créer une configuration XML pour les tuiles est de .
Tout d'abord, ajoutons dans le menu « Démarrer » les tuiles des applications dont nous avons besoin. Nous utilisons la recherche « Win+s », trouvons l'application souhaitée, cliquons avec le bouton droit de la souris et choisissons l'option « Épingler à l'écran d'accueil ».
J'ai épinglé les applications suivantes :
- Bloc-notes
- Calculatrice
- Internet Explorer
- Peinture
- WordPad
- Paramètres
- Sécurité Windows
Les deux dernières applications ont été épinglées car il n’y a tout simplement pas d'autres applications universelles dans l'offre standard LTSC. Notez que les tuiles des applications classiques pointent vers des raccourcis. Maintenant, en déplaçant les tuiles directement dans le menu « Démarrer », je vais diviser les tuiles épinglées en deux groupes. Pour créer un nouveau groupe de tuiles, faites glisser une tuile bien au-dessus ou en dessous d'autres tuiles, un séparateur intuitif apparaîtra. Vous pouvez nommer les groupes à votre guise, pour cela placez le curseur de la souris au-dessus du groupe, et lorsque le message « Nommer le groupe » apparaît, cliquez avec le bouton gauche de la souris. Je nommerai le premier groupe « Paramètres », il comprendra les tuiles « Options » et « Sécurité Windows ». Je nommerai le deuxième groupe « Applications bureautiques », qui comprendra toutes les autres tuiles. Au fait, il est possible de déplacer des groupes de tuiles entiers en les faisant glisser par les deux bandes situées en haut à droite du nom du groupe.
Étant donné que le nom de la tuile « Sécurité Windows » ne tient pas entièrement, je vais changer sa taille en « Large ». Pour modifier la taille de la tuile, cliquez avec le bouton droit de la souris sur la tuile et choisissez l’option « Modifier la taille ».
Après la configuration, nous exportons l'état actuel, en exécutant la commande dans l'environnement PowerShell – « Export-StartLayout – path C:\Sysprep\StartLayout.xml ».
Ensuite, le plus simple est de ne pas créer le fichier de configuration soi-même, mais de Des paramètres – cliquez sur le bouton « Copy », collez le contenu dans un bloc-notes et enregistrez-le sous « MultiAppKiosk.xml ». Maintenant, modifiez les paramètres selon vos besoins. Pour modifier les paramètres des tuiles épinglées, copiez tout le bloc « StartLayoutCollection » de « StartLayout.xml » dans « MultiAppKiosk.xml ». Pour ajouter des applications aux autorisées, il est nécessaire d'insérer les identifiants des applications universelles dans la section « AllowedApps » et d'ajouter également le chemin complet vers les fichiers exécutables des applications classiques, qui est indiqué dans les propriétés des raccourcis auxquels les tuiles font référence. Pour un accès rapide au raccourci, faites un clic droit sur la tuile épinglée et suivez le menu « Supplémentaire > Accéder à l'emplacement du fichier ». Notez que pour spécifier l'ID de l'application universelle, le paramètre « AppUserModelId » est utilisé, tandis que pour spécifier le chemin complet vers l'application classique, le paramètre « DesktopAppPath » est utilisé. Un petit détail supplémentaire, si vous prévoyez d'utiliser IE sur un système x64, alors dans la liste des applications autorisées, il est nécessaire d'indiquer deux chemins pour le fichier exécutable « Program FilesInternet Exploreriexplore.exe » et « Program Files (x86)Internet Exploreriexplore.exe ».
Je ne donnerai pas accès aux dossiers, donc je supprime la section « FileExplorerNamespaceRestrictions ».
L'affichage de la barre des tâches ne me dérangera pas, donc dans la section « Taskbar », je laisse tout tel quel.
L'exemple contient deux profils, mais je n'aurai qu'un seul profil, donc la section avec le deuxième profil peut être supprimée. Avant de supprimer, veuillez faire attention à l'exemple de lancement automatique de l'application avec des arguments.
Dans la section « Configs », les comptes sont liés aux profils, notez qu'un profil peut être lié à plusieurs comptes. Mais comme je ne m'intéresse qu'à un seul compte, je vais supprimer toutes les liaisons sauf la première – les blocs « Config ». Dans la liaison restante, je vais indiquer le nom d'utilisateur « User ».
J'ai obtenu un fichier avec les paramètres suivant :
MultiAppKiosk.xml
<![CDATA[
]]>
UserLorsque vous créerez vos fichiers XML de configuration, n'oubliez pas que chaque profil doit avoir un identifiant unique, non seulement au sein d'un fichier XML, mais également dans un même système d'exploitation. Pour éviter toute confusion, il est préférable de créer un nouvel identifiant à chaque fois, ce que vous pouvez faire dans l'environnement PowerShell avec la commande « [guid]::NewGuid() ». Et veillez à enregistrer le fichier en codage « UTF-8 », car si le fichier est enregistré en codage « ANSI », vous rencontrerez une erreur lors de la création du package de préparation en cas de cyrillique dans le fichier XML.
Étape 6 – Application des paramètres du multi-kiosque
Considérons deux méthodes pour appliquer les paramètres décrits dans le fichier de configuration. La première consiste à utiliser un package de préparation, qui doit être créé dans l'ICD. Pour certains, cette méthode peut sembler plus familière. La seconde consiste à utiliser le « MDM Bridge WMI Provider », cette méthode m'a semblé plus pratique.
Méthode n°1
Pour ceux qui n'ont pas d'ICD, et installez-le. L'installation de l'ADK est très simple, vous pouvez laisser le jeu de composants par défaut.
Lancez l'ICD, cliquez sur la tuile « Préparation avancée », indiquez le nom et le dossier du projet, puis cliquez sur « Suivant ». Dans la fenêtre suivante, sélectionnez « Toutes les versions de Windows pour ordinateurs de bureau » et cliquez sur « Suivant ». Vous pouvez ignorer l'importation du package de préparation, cliquez sur « Terminer ».
Développez le menu déroulant « Options d'exécution », puis développez le sous-menu « AssignedAccess » et sélectionnez l'élément « MultiAppAssignedAccessSettings ». En haut de la section médiane de la fenêtre ICD, cliquez sur le bouton « Parcourir » et indiquez l'emplacement du fichier XML avec les paramètres. Au cas où, vous pouvez enregistrer le projet en appuyant sur « Ctrl+s ». En haut à gauche de l'ICD, sélectionnez « Exporter », dans le menu déroulant, choisissez l'option « Package de préparation ». Comme propriétaire, sélectionnez « Administrateur IT », toutes les autres questions peuvent être ignorées en cliquant sur « Suivant » et à la fin cliquez sur « Créer » et « Terminer ».
Dans le système installé, n'oubliez pas de créer l'utilisateur « User », il ne doit pas être ajouté au groupe « Administrateurs », sinon le multi-kiosque ne fonctionnera pas. J'ai créé l'utilisateur dans l'outil « Gestion de l'ordinateur » avec un mot de passe sans limite de durée.
Nous démarrons maintenant le paquet de préparation sur le système déjà installé. Après l'application du paquet de préparation, le menu Démarrer et l'administrateur seront modifiés. Les boutons « Documents », « Images », « Paramètres » devraient disparaître de la colonne de gauche du menu Démarrer. Si le menu Démarrer n'a pas changé, quelque chose ne va pas. Le paquet installé peut être supprimé en ouvrant la fenêtre « Paramètres > Comptes > Accès aux comptes de travail ou d'école > Ajouter ou supprimer un paquet de préparation ».
Si le menu Démarrer a changé, les paramètres ont été appliqués au système, connectez-vous avec le compte pour lequel le multi-kiosque est configuré et regardez le résultat.
Méthode n°2
Application des paramètres via le « fournisseur WMI MDM Bridge » . L'avantage de cette méthode est la flexibilité d'utilisation et la possibilité d'éliminer de nombreuses opérations manuelles nécessaires à la création d'un paquet de préparation. Chacun peut trouver une solution qui lui convienne. Pour ma part, j'ai créé une paire de scripts.
MiltiKiosk.bat – script de lancement
@echo off
chcp 1251>nul
if not exist "%~dp0psexec.exe" call :ShowMessage "‡‡‡‡‡‡‡‡‡‡‡‡‡Le fichier psexec.exe est nécessaire au fonctionnement du script‡‡Appuyez sur une touche pour fermer le script"&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 Aucun fichier PS trouvé avec le début du nom - "%~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 :eofMiltiKiosk_Ver.12.ps1 – script principal
Fonction ConvertEncoding ([string]$From, [string]$To) {
Début {$encFrom = [System.Text.Encoding]::GetEncoding($From);$encTo = [System.Text.Encoding]::GetEncoding($To)}
Processus {$bytes = $encTo.GetBytes($_);$bytes = [System.Text.Encoding]::Convert($encFrom, $encTo, $bytes);$encTo.GetString($bytes) -replace [char]0, ''}
}
Fonction ShowMessage ($Message='', $Align=0) {
Essayez {$Align = [decimal]$Align} Catch {Return 'Pour le paramètre Align, seul un nombre peut être spécifié' | ConvertEncoding 'windows-1251' -To 'UTF-16'}
si ($Message -is [int]) {for ($i=1; $i -le $Message; $i++) {Write-Host}; Return}
si ([System.Text.Encoding]::Default.WindowsCodePage -eq 1252) {$Message = $Message | ConvertEncoding 'windows-1251' -To 'UTF-16'}
si ($Message -is [string]) {[array] $Message = $Message}
foreach ($String in $Message) {
Essayez {$String = [int]$String} Catch {}
si ($String -is [int]) {for ($i=1; $i -le $String; $i++) {Write-Host}; continue}
si ($Host.UI.RawUI.BufferSize.Width -gt $String.Length) {
si ($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
si (-not $MultiAppKiosk) {ShowMessage -Message (3, 'Erreur lors de la récupération de l'objet de configuration', 2, 'Appuyez sur "Enter" pour terminer le script') -Align 2; Read-Host; Exit}
Fonction MainMenu() {
ShowMessage (13, ' 0 - Quitter', ' 1 - Sélectionner un fichier XML pour l'installation', ' 2 - Afficher la configuration actuelle du kiosque multiple', ' 3 - Supprimer les paramètres du kiosque multiple', 1)
$local:PromptText = 'Sélectionnez une action'
si ([System.Text.Encoding]::Default.WindowsCodePage -eq 1252) {$PromptText = $PromptText | ConvertEncoding 'windows-1251' -To 'UTF-16'}
$local:Selections = 1..2
Tant que ($true) {
$Select = Read-Host -Prompt $PromptText
Switch ($Select) {
0 {exit}
1 {XMLSelection}
2 {ShowMessage -Message (1, 'Début de la configuration') -Align 2; Write-Host $MultiAppKiosk.Configuration; ShowMessage -Message ('Fin de la configuration', 1, 'Pour retourner au menu, appuyez sur "Enter"', 1) -Align 2; Read-Host}
3 {$MultiAppKiosk.Configuration = $Null; Set-CimInstance -CimInstance $MultiAppKiosk; ShowMessage -Message (1, 'Commande de suppression des paramètres exécutée', 1) -Align 2}
DEFAULT {ShowMessage 'Valeur sélectionnée non valide'}
}
si ($Selections -contains $Select) {Clear-Host; ShowMessage (15, ' 0 - Quitter', ' 1 - Sélectionner un fichier XML pour l'installation', ' 2 - Afficher la configuration actuelle du kiosque multiple', ' 3 - Supprimer les paramètres du kiosque multiple', 1)}
}
}
Fonction XMLSelection() {
Clear-Host
si (!(Test-Path -Path $PSScriptRoot'XML')) {ShowMessage -Message (13, 'Répertoire introuvable', $('"'+$PSScriptRoot+'XML"'), 1, 'Appuyez sur "Enter" pour revenir au menu précédent') -Align 2; Read-Host; Return}
$local:XMLList = @()
$XMLList += Get-ChildItem -Path $PSScriptRoot'XML' -name -filter '*.xml'
si ($XMLList.Count -eq 0) {ShowMessage -Message (13, 'Aucun fichier XML trouvé dans le répertoire', $('"'+$PSScriptRoot+'XML"'), 1, 'Appuyez sur "Enter" pour revenir au menu précédent') -Align 2; Read-Host; Return}
[int]$local:Indent = 13 - $XMLList.Count / 2; si ($Indent -lt 1) {$Indent = 1}
ShowMessage ($Indent, ' 0 - Retourner au menu précédent')
pour ($i=0; $i -le $XMLList.GetUpperBound(0); $i++) {Write-Host $(' '+($i+1)+' - '+$XMLList[$i])}
Write-Host
$local:PromptText = 'Sélectionnez un fichier pour l'installation'
si ([System.Text.Encoding]::Default.WindowsCodePage -eq 1252) {$PromptText = $PromptText | ConvertEncoding 'windows-1251' -To 'UTF-16'}
$local:Selections = 1..$XMLList.Count
$local:BackToPrevMenu = 0
Tant que ($BackToPrevMenu -eq 0) {
$Select = Read-Host -Prompt $PromptText
Switch ($Select) {
0 {$BackToPrevMenu = 1}
{$Selections -contains $Select} {ShowMessage $('Cette commande est pour appliquer les paramètres à partir du fichier '+$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 ('Valeur sélectionnée non valide')}
}
}
}
MainMenuSi vous souhaitez utiliser ma solution, veillez à enregistrer dans un dossier les scripts mentionnés ci-dessus avec leurs noms d'origine, et placez également le fichier « PsExec.exe » dans ce même dossier. Dans ce même dossier, créez un dossier « XML » et copiez-y les fichiers XML pour configurer le multi-kiosque. J'utiliserai le même fichier que dans la première méthode.
MultiAppKiosk.xml
<![CDATA[
]]>
UserUn peu sur les particularités du script. Le script est prévu pour utiliser des fichiers XML avec l'encodage « UTF8 », si vous souhaitez utiliser l'encodage « ANSI », retirez le paramètre « encoding UTF8 » du paramètre de lecture du fichier. Les fichiers XML doivent être placés dans le dossier « XML » sans remplacement de caractères, le script remplacera lui-même les caractères spéciaux par les désignations appropriées. Pour ne pas vous perdre dans les GUID des liaisons utilisateurs aux profils, vous pouvez simplement indiquer le numéro ou le nom de l'utilisateur entre accolades, tout le contenu entre accolades sera remplacé par des GUID.
Utiliser le script est très simple, vous le lancez et choisissez l'option nécessaire. Pour changer la configuration actuelle par une nouvelle, il n'est pas nécessaire de supprimer l'actuelle, elle sera écrasée. N'oubliez pas de créer les utilisateurs indiqués dans le fichier de configuration.
Lors de l'affichage de la configuration actuelle du multi-kiosque dans la même session où elle a été appliquée, des combinaisons de caractères de remplacement seront affichées à la place des caractères spéciaux. Après un changement de session (redémarrage du script), tous les caractères spéciaux seront affichés dans leur forme originale.
Étape 7 – scellage du système
Le multi-kiosque fonctionne, eh bien voilà, tout semble fini…
Si tout se passe comme prévu, cela signifie que vous ne remarquez rien.
N'oublions pas que nous devons également passer le système du mode audit au mode accueil. Eh bien, nous sommes prêts pour cela, lançons « Sysprep.bat », sélectionnons l'option 2, le système se scelle. Nous allumons l'appareil, le système démarre, nous nous connectons au compte utilisateur pour lequel le multi-kiosque est configuré et nous ne pouvons pas nous connecter. Après le message « Bienvenue », apparaîtra le message « Déconnexion ».
Au départ, je voulais seulement décrire la solution au problème, mais j'ai ensuite décidé de décrire les étapes pour identifier le problème et trouver la solution la plus simple, car beaucoup de lecteurs pourront avoir des doutes – « Et si cela se passe comme ça… ». Je pense qu'une description des différentes expérimentations vous fera gagner un temps considérable si vous souhaitez trouver une autre solution. Pour que l'information soit aussi précise que possible et pour m'assurer qu'il n'y a pas d'erreurs, je vais décrire les expériences au format « j'ai fait – j'ai noté ». C'est-à-dire que je vais refaire les expériences décrites.
Expériences
Qu'avons-nous obtenu. Dans le système, il y a deux comptes :
« Admin » – dans le groupe « Administrateurs »
« User » – dans le groupe « Utilisateurs »
En mode audit, le multi-kiosque fonctionnait, mais lorsque c'est scellé – ça ne marche pas.
Expérience 1
Nous supprimons le paquet de préparation installé, dans la console « Gestion de l'ordinateur », nous supprimons l'utilisateur « User » et créons un nouvel utilisateur nommé « User », nous appliquons le paquet de préparation, nous nous connectons au compte « User » – ça ne fonctionne pas. Nous nous connectons avec le nom « Admin », supprimons l'utilisateur « User » du groupe « Utilisateurs », ajoutons-le au groupe « Administrateurs », nous nous connectons avec le nom « User » – ça ne fonctionne pas. Nous nous connectons avec le nom « Admin », supprimons le paquet de préparation avec le multi-kiosque, nous nous connectons avec le nom « User » – nous avons réussi à nous connecter, mais bien sûr, le mode multi-kiosque ne fonctionne pas car le paquet de préparation a été supprimé.
Expérience 2
Nous chargeons l'image système – francisée en mode audit.
Le système d'exploitation a démarré, appuyons sur « Win+r », car la fenêtre de sysprep s'est fermée automatiquement. Exécutons la commande « sysprep », puis dans la fenêtre qui s'ouvre, lançons « sysprep ». Les paramètres de sysprep dans la fenêtre : « Passer à la fenêtre de bienvenue du système (OOBE) », « Préparation à l'utilisation », « Redémarrage ». Appuyons sur « OK » et attendons la bienvenue du système d'exploitation. Répondons aux questions lors du premier chargement du système : « Continuer dans la langue sélectionnée ? » – « russe » ; région – Russie ; disposition du clavier – Russe ; ajouter une seconde disposition de clavier – ignorer ; « Connectons-vous au réseau » – « Pour l'instant ignorer » ; connexion à Internet – non ; accord de licence – accepter ; « Qui utilisera cet ordinateur ? » – « Test » ; création de mot de passe – laisser le champ vide ; travail confortable sur différents appareils – non ; paramètres de confidentialité – accepter. Le système d'exploitation a démarré, dans l'outil « Gestion de l'ordinateur », créons un utilisateur nommé « User », ajoutons le package de préparation. Résultat – cela ne fonctionne pas.
Expérience 3
Nous chargeons l'image système – francisée en mode audit.
Le système d'exploitation a démarré, connectons le système à Internet, exécutons la commande « gpedit.msc » et dans la section « Centre de mise à jour Windows », activons l'option « Activer les mises à jour recommandées via la mise à jour automatique », par précaution redémarrons. Dans le centre de mise à jour, cliquons sur « Rechercher des mises à jour » et redémarrons jusqu'à ce que toutes les mises à jour soient installées. Déconnectons le système d'Internet. Lançons « sysprep » en mode graphique et répétons toutes les actions décrites à l'étape précédente de lancement de l'outil « sysprep » jusqu'à l'ajout du package de préparation. Résultat – cela ne fonctionne pas.
Expérience 4
Téléchargeons une image système – en anglais en mode audit.
Lançons « sysprep » en mode graphique, scellons le système d'exploitation avec les mêmes paramètres que ceux de l'expérience 2. Lors du premier chargement du système, choisissons les mêmes paramètres que dans l'expérience 2, sauf pour les paramètres régionaux et linguistiques car la langue russe n'est pas disponible. Créons également l'utilisateur « User » et ajoutons le package de préparation. Résultat – cela fonctionne. C'est-à-dire que le problème est lié à la localisation.
Expérience 5
Nous chargeons l'image système – francisée en mode audit.
Dans l'outil « Gestion de l'ordinateur », créons l'utilisateur « User », ajoutons le package de préparation, entrons dans le compte « User », le kiosque multimédia fonctionne.
Déconnexion de votre compte, puis connexion sous le compte «Admin». Lancez PowerShell avec des droits d'administrateur, exécutez la commande «Dism /online /Get-Intl» et constatez «Langue de l'interface utilisateur par défaut : en-US».
Boot sur une clé USB avec WinPE, le système déployé est sur le disque E. Exécutez la commande «Dism /image:E: /Set-UILang:ru-ru». Vérifiez le résultat, exécutez «Dism /image:E: /Get-Intl» et constatez «Langue de l'interface utilisateur système par défaut : ru-RU».
Connectez-vous au système, accédez au compte «User», le multiservice korn ne fonctionne pas.
Pour établir clairement la relation de cause à effet de l'apparition du problème, essayons à nouveau de rendre le multiservice korn fonctionnel puis non fonctionnel.
Boot sur une clé USB avec WinPE, le système déployé est sur le disque E. Exécutez la commande «Dism /image:E: /Set-UILang:en-us». Vérifiez le résultat, exécutez «Dism /image:E: /Get-Intl» et constatez «Langue de l'interface utilisateur système par défaut : en-US».
Connectez-vous au système, accédez au compte «User», le multiservice korn fonctionne.
Boot sur une clé USB avec WinPE, le système déployé est sur le disque E. Exécutez la commande «Dism /image:E: /Set-UILang:ru-ru». Vérifiez le résultat, exécutez «Dism /image:E: /Get-Intl» et constatez «Langue de l'interface utilisateur système par défaut : ru-RU».
Connectez-vous au système, accédez au compte «User», le multiservice korn ne fonctionne pas.
C'est-à-dire qu'on peut voir un lien clair entre la fonctionnalité du kiosque et la valeur de la langue par défaut de l'interface utilisateur. Y a-t-il d'autres facteurs qui influencent la fonctionnalité du multiservice korn ?
Expérience 6
Pour la pureté de l'expérience, réinstruisons le système. Téléchargeons l'image du système en mode audit en russe.
Lancez «sysprep» en mode graphique, emballez le système avec les mêmes paramètres que lors de l'expérience 2. Attendez l'écran de bienvenue du système d'exploitation et répondez aux questions : «Continuer dans la langue sélectionnée ?» – «English (United States)» ; région – Russie ; disposition du clavier – Russe. Ensuite, tous les paramètres sont choisis comme dans l'expérience 2.
Vérifiez les paramètres de langue de l'interface utilisateur par défaut. Exécutez la commande «Dism /online /Get-Intl» et constatez «Langue de l'interface utilisateur par défaut : en-US». Dans l'outil «Gestion de l'ordinateur», créez l'utilisateur «User», ajoutez un package de préparation, connectez-vous au compte «User», le multiservice korn fonctionne.
Essayons de casser le kiosque en changeant la langue par défaut de l'interface utilisateur. Connectez-vous à l'utilisateur «Test», créé lors du premier démarrage du système, et activez l'accès automatique afin que le système ne se connecte pas directement au compte «User». Exécutez «netplwiz», sélectionnez l'utilisateur «Test», décochez «Exiger l'entrée d'un nom d'utilisateur et d'un mot de passe» et appliquez les paramètres.
Nous démarrons à partir d'une clé USB dans WinPE. Nous exécutons la commande « Dism /image:E: /Set-UILang:fr-FR ». Nous vérifions le résultat, exécutons « Dism /image:E: /Get-Intl » et voyons « Langue de l'interface utilisateur système par défaut : fr-FR ».
Nous accédons au système, essayons de nous connecter au compte « User », le kiosque multimédia fonctionne. C'est-à-dire qu'il n'est pas possible de le pirater. Mais peut-on le faire fonctionner ainsi ?
Expérience 7
Nous chargeons l'image système – francisée en mode audit.
Nous exécutons « Sysprep.bat », choisissons l'option 2. Nous accédons au système, dans l'outil « Gestion de l'ordinateur », créons un utilisateur « User », ajoutons le paquet de préparation, nous nous connectons au compte « User », le kiosque multimédia ne fonctionne pas.
Nous démarrons à partir d'une clé USB dans WinPE. Nous exécutons la commande « Dism /image:E: /Set-UILang:en-US ». Nous vérifions le résultat, exécutons « Dism /image:E: /Get-Intl » et voyons « Langue de l'interface utilisateur système par défaut : en-US ».
Nous accédons au système, essayons de nous connecter au compte « User », le kiosque multimédia ne fonctionne pas.
Il s'avère qu'en modifiant le paramètre de langue de l'interface utilisateur par défaut, il est possible d'influencer le fonctionnement du kiosque multimédia uniquement lorsque le système est en mode audit ou lors du premier démarrage après la mise sous scellé du système. Cela signifie qu'il faudra sceller le système avec un fichier de réponses, où la langue du système sera sélectionnée comme anglais, puis modifier les paramètres du système pour que l'interface soit en russe. Ce n'est pas une très bonne solution. Peut-être que le problème peut être résolu par l'installation d'un paquet de langue ou l'installation de paquets de langues supplémentaires ?
Expérience 8
Téléchargeons une image système – en anglais en mode audit.
Nous nous connectons à Internet, dans les paramètres du système, nous accédons à la section « Langue », choisissons « Ajouter une langue », sélectionnons la langue « Russe », cliquons sur « Suivant », la configuration par défaut est conservée, nous cliquons sur « Installer », après l'installation du paquet de langue, nous redémarrons le système, maintenant il est en russe. Nous déconnectons le système d'Internet, exécutons « Sysprep.bat », choisissons l'option 2.
Après le démarrage du système, dans l'outil « Gestion de l'ordinateur », nous créons un utilisateur « User », ajoutons le paquet de préparation, nous nous connectons au compte « User », le kiosque multimédia ne fonctionne pas.
Expérience 9
Essayons de russifier le système avant l'installation, en mode hors ligne. Cela servira aussi de brève initiation à la localisation du distributeur.
Je prends une clé USB avec une distribution originale propre – X21-96381. Elle sera le disque «E». Pour monter les images, je crée des dossiers : «c:MountInstall», «c:MountWinre», «c:MountBoot». Je prends un ensemble de paquets de localisation – X21-87814. Et je copie dans le dossier «c:Mount» les paquets suivants : «Microsoft-Windows-Client-Language-Pack_x86_ru-ru.cab», «lp.cab», «WinPE-Setup_ru-ru.cab». Je lance la console en tant qu'administrateur. Je pense que les commandes suivantes seront compréhensibles sans commentaires.
Commandes de localisation
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 /CommitNous démarrons à partir de la clé USB, choisissons la langue russe et installons le système sur un disque propre. Lorsque le système demande de choisir une région, appuyez sur «Ctrl+Shift+F3». Dans l'outil «Gestion de l'ordinateur», nous créons l'utilisateur «User», ajoutons le paquet de préparation, nous accédons au compte «User», la fonctionnalité de kiosque multimédia ne fonctionne pas.
Nous démarrons à partir de la clé USB en WinPE. Nous exécutons la commande «Dism /image:E: /Set-UILang:en-us».
Nous démarrons dans le système, essayons de nous connecter au compte «User», et la fonctionnalité de kiosque multimédia fonctionne.
Il semblerait que le problème ne réside pas dans les méthodes d'ajout de paquet, essayons d'ajouter des paquets supplémentaires.
Expérience 10
Je prends la clé USB que nous avons préparée à l'étape précédente.
Je prends le paquet «Feat on Demand» – X21-87815. Dans le dossier «c:Mount», je copie les paquets suivants : «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».
Je prends le paquet « Feat on Demand RDX Updt » – X21-99781. Dans le dossier « c:Mount », je copie les paquets suivants : « Microsoft-Windows-RetailDemo-OfflineContent-Content-Package~31bf3856ad364e35~x86~~.cab », « Microsoft-Windows-RetailDemo-OfflineContent-Content-ru-ru-Package~31bf3856ad364e35~x86~~.cab ».
Lançons la console avec des droits d'administrateur et exécutons les commandes :
Commandes
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 /CommitNous démarrons à partir de la clé USB, choisissons la langue russe et installons le système sur un disque vierge. Lorsque le système demande de sélectionner une région, nous appuyons sur « Ctrl+Shift+F3 ». Dans l'outil « Gestion de l'ordinateur », nous créons un utilisateur « User », ajoutons le paquet de préparation, et nous connectons au compte « User ». J'ai obtenu un écran noir qui est resté longtemps, donc j'ai effectué un redémarrage à chaud du système.
Nous supprimons le paquet de préparation, nous nous connectons avec l'utilisateur « User », redémarrons le système, ajoutons le paquet de préparation, le kiosque multimédia ne fonctionne pas.
Nous démarrons à partir de la clé USB en WinPE. Nous exécutons la commande «Dism /image:E: /Set-UILang:en-us».
Nous démarrons dans le système, essayons de nous connecter au compte «User», et la fonctionnalité de kiosque multimédia fonctionne.
Contournement du problème
Les vrais héros. Ils contournent toujours !
Les différentes méthodes d'installation des paquets de localisation n'ont pas résolu le problème, donc il faudra, lors du premier démarrage après l'encapsulation, installer la langue « en-us », puis changer les paramètres linguistiques après le premier démarrage.
Nous chargeons l'image système – francisée en mode audit.
Dans le fichier « Unattend.xml », nous insérons « en-US » dans le paramètre, exécutons « Sysprep.bat », choisissons l'option 2 et voyons ce que nous avons obtenu. L'écran d'accueil est en anglais, le kiosque multimédia fonctionne. Cela signifie qu'il faut ajouter une commande dans « Unattend.xml » pour changer la langue de l'accueil. Pour cela, nous devons exécuter la commande « control intl.cpl,,/f: » en indiquant le fichier de configuration, où il sera spécifié de copier les paramètres actuels vers l'écran d'accueil. Le contenu du fichier de configuration ressemblera à ceci.
Comme il s'agit de copier les paramètres de l'utilisateur actuel, la commande doit être exécutée après la connexion de l'utilisateur au système, ce qui signifie que nous en aurons besoin. Il y a un petit "mais", l'exécution se fera après la connexion de l'utilisateur avec des droits d'administrateur. Et je préférerais ne pas créer un fichier supplémentaire qui serait nécessaire pour l'exécution réussie de la commande. Mieux vaut réaliser toute la solution dans un seul fichier — "Unattend.xml". Pour cela, il suffit d'exécuter la commande qui crée le fichier de configuration. Je pense que je vais créer le fichier de configuration en utilisant la commande « echo » dans l'environnement « cmd », mais il faut échapper les chevrons avec un accent circonflexe. Donc, pour créer le fichier de configuration, cela donne cette commande.
echo ^<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend"^>^<gs:UserList^>^<gs:User UserID="Current" CopySettingsToSystemAcct="true"/ ^>^</gs:UserList^>^</gs:GlobalizationServices^>>Config.xmlMais cette commande doit être incluse dans un XML, qui a ses propres exigences pour l'utilisation des caractères spéciaux :
Caractère spécial
Valeur de remplacement
>
>
<
<
&
&
‘
'
“
"
En fin de compte, pour créer le fichier de configuration, j'ai obtenu cette commande pour les « 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"Ensuite, nous exécutons la commande en utilisant le fichier de configuration.
control intl.cpl,,/f:"%TMP%Config.xml"Ensuite, nous supprimons le fichier créé précédemment et redémarrons le système car les modifications prendront effet après le redémarrage.
cmd.exe /c del "%TMP%Config.xml" /q&shutdown /r /f /t 00Au final, j'ai obtenu ce fichier de réponses pour sysprep.
Unattend.xml
reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v SetupDisplayedProductKey /t REG_DWORD /d 1 /f
1
Ne pas afficher la page de clé
reg add HKLMSoftwareMicrosoftWindowsCurrentVersionSetupOOBE /v UnattendCreatedUser /t REG_DWORD /d 1 /f
2
Ne pas créer de compte
cmd.exe /c rd %systemdrive%Sysprep /s /q
3
Supprimer le dossier
true
Admin
en-US; fr-FR
fr-FR
en-US
fr-FR
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"
CréerConfig
1
control intl.cpl,,/f:"%TMP%Config.xml"
UtiliserConfig
2
cmd.exe /c del "%TMP%Config.xml" /q&shutdown /r /f /t 00
DelConfig
3Vérification en cours…
Nous chargeons l'image système – francisée en mode audit.
Nous remplaçons le fichier Unattend.xml par un nouveau, lançons « Sysprep.bat », sélectionnons l'option 2 et observons le résultat. Lors du premier démarrage, l'écran d'accueil est en anglais, le système redémarre. L'écran d'accueil est en russe, le mode multi-kiosque fonctionne.
Si vous avez des questions concernant la configuration et la licence de Windows 10 IoT Enterprise, contactez-nous à l'adresse ou sur le site .
Vous pouvez trouver des réponses à certaines questions dans ou sur notre
Auteur de l'article : Borisenkov Vladimir, expert technique chez Quarta Technologies.
Source : habr.com
