Intégrer "Taskmgr.exe" dans WinPE 5.0

Archives de discussions et demandes informatiques.
moums3

Intégrer "Taskmgr.exe" dans WinPE 5.0

Message par moums3 »

Bonjour,
ancien utilisateur de BartPE, je me suis lancé dans la confection d'un WinPE auquel je désire ajouter la gestion des disques (je l'avais fait dans BartPE).
J'avais, à l'époque, trouvé pourquoi les clefs USB n'étaient reconnues qu'au moment du boot et trouvé un correctif efficace (clefs reconnues à chaud).

J'ai déjà ajouté le gestionnaire des tâches (Taskmgr.exe) mais, malgré mes efforts, celui-ci reste en anglais !
J'ai bien ajouté "Taskmgr.exe.mui" dans le sous-répertoire "fr-FR" de "system32".
J'ai bien noté que, sous Windows 8.1, on trouvait, sous la clef "HKEY_CURRENT_USER\Software\Classes\Local Settings\MuiCache\152\E27DDEF7"
la valeur "@C:\Windows\system32\Taskmgr.exe,-32420" dont la donnée (REG_SZ) est : "Gestionnaire des tâches".
Sous WinPE, au moyen de "Regedit.exe" j'ai complété la clef "HKEY_CURRENT_USER\Software\Classes\Local Settings\MuiCache\1\E27DDEF7" avec
la valeur "@%SystemRoot%\system32\Taskmgr.exe,-32420" et la donnée (REG_SZ) "Gestionnaire des tâches". Le gestionnaire des tâches reste en anglais !
Sous Windows j'ai édité la ruche "DEFAULT" de l'mage montée de WinPE, j'ai terminé l'arborescence de la clef et ajouté la valeur et sa donnée... le gestionnaire reste en patois !

Auriez-vous quelques idées à me soumettre ?

D'autre part, j'ai ajouté 2 gestionnaires de fichiers (pour comparer afin de choisir) : A43.exe et Explorer++.exe, aucun des deux ne pouvait correctement faire des "couper-coller" de fichiers ou de répertoires... Il semble, d'après ce que j'ai vu sur le Net, que ce soit un problème sous WinPE.
Or, au cours de mes recherches d'intégration de Taskmgr.exe, je suis tombé sur une curiosité : dans la ruche SOFTWARE de l'image montée, allez à Microsoft\WBEM\CIMON,
vous trouverez une valeur "Autorecover MOFs" visiblement sans donnée (REG_MULTI_SZ)... c'est étrange... clic droit sur cette valeur, "Modifier...", les différentes données apparaissent dans une nouvelle fenêtre mais la première ligne est vide !, vous cliquez sur OK, un message signalant l'anomalie s'affiche et, les données s'affichent correctement dans le volet de droite !
Depuis cette manœuvre, il m'est possible, sous WinPE (recompilé) d'effectuer des copier-coller de répertoires !
Finalement je vais conserver A43 (dont j'ai revu toute la francisation !).

J'ai déjà bricolé mon système d'exploitation : j'ai corrigé "Notepad.exe.mui" ainsi que "Regedit.exe.mui".
Il s'agit de majuscules non accentuées : est-il logique que le titre de la fenêtre qui s'ouvre en lançant "Regedit.exe" soit : "Éditeur du Registre" alors qu'un menu s'intitule "Edition" ?
II suffit de modifier le mot "Edition" par "Édition" dans "Regedit.exe.mui", même chose pour le menu "Edition" du bloc-notes dans "Notepad.exe.mui"...
Sous Windows ces modifications ne peuvent se faire que sur des copies, le remplacement des "mui" ne pouvant se faire que sous WinPE (qui a aussi hérité de ces modifications).

Je rappelle que ce sont les machines à écrire (dont le nombre de caractères était limité) qui ont fait croire à certains que les majuscules n'étaient pas accentuées...
Je regrette que, sur les ordinateurs, le clavier "français", contrairement au clavier "canadien français", ne comporte pas À, È, É ainsi que Ç...

À bientôt
moums3

Re: Intégrer "Taskmgr.exe" dans WinPE 5.0

Message par moums3 »

Bonjour,
la "curiosité" concernant les données de "Autorecover MOFs" n'a rien à voir avec le fonctionnement de "A43.exe" ni de "Explorer++.exe".
Ce matin, le problème des "Copier-coller" est réapparu ! Mystère, il faut que je vérifie toutes les dll ainsi que leurs inscriptions relatives dans le registre, opération assez longue... cela peur durer quelques jours !

À bientôt
Etre_Libre
Administrateur
Messages : 800
Inscription : 13 novembre 2012, 21:44

Re: Intégrer "Taskmgr.exe" dans WinPE 5.0

Message par Etre_Libre »

Bonjour,

Je pense que vous vous embêtez un peu...

En effet, taskmgr.exe est déjà intégré à Windows PE 5, après en anglais c'est plutôt un détail je trouve ;)

Pour ce qui est de la copie de fichiers et dossiers, via Explorer++ cela fonctionne déjà par défaut, MAIS par contre on ne voit pas la fenêtre de progression de copie.
Par contre si on utilise le gestionnaire de copie 7-Zip File Manager (fourni avec le Live Windows complet que j'ai fourni) il a son propre gestionnaire de copie et affiche bien une fenêtre de progression de copie de fichiers / dossiers.

Voilà pour les explications, si ça peut vous aider ;)
moums3

Re: Intégrer "Taskmgr.exe" dans WinPE 5.0

Message par moums3 »

Bonjour,
merci pour votre réponse, mais j'ai trouvé la raison de la version "infrancisable" : le "taskmgr.exe" placé dans WinPE pèse 213 Ko, celui de Windows s'appelle "Taskmgr.exe" et pèse 1040 Ko !

Si la version "lourde" se trouve dans un répertoire "TOTO", elle ne fonctionne que si "Taskmgr.exe.mui" (62 Ko) se trouve dans le répertoire "TOTOT\fr-FR".
Dans le répertoire "média" utilisé par "WADK" j'ai créé deux répertoires supplémentaires : "Programmes" et "Utilitaires", sous WinPE, l'accès à ces répertoires se fait par une lettre (chez moi c'est systématiquement D mais sans disque partitionné je suppose que cela donnerait C) que WinPE ne connaît pas.

J'utilise, comme shell, "Nu2Menu.exe".
"nu2menu.xml" contient la ligne
<MITEM TYPE="ITEM" VISIBILITY="2">@Null(@EXEC(wscript.exe "@GetProgramDir()\init.vbs"),0)</MITEM>
ce qui lance le script "init.vbs" dont le contenu est ci-dessous :

Code : Tout sélectionner

Option Explicit
Dim d,dc,fso,lecteur,wss
Set wss=WScript.CreateObject("WScript.shell")
Set fso=CreateObject("Scripting.FileSystemObject")
Set dc = CreateObject("Scripting.FileSystemObject").Drives
If Not fso.FolderExists("X:\Windows") Then WScript.Echo "À n'utiliser que sous WinPE":WScript.Quit
On Error Resume Next
lecteur=wss.RegRead("HKCU\Environment\BOOT")'cette tentative de lecture crée un erreur à la première exécution
On Error GoTo 0
If VarType(lecteur)=0 Then'0 : variable non initialisée, vrai à la première exécution du script
	For Each d In dc'effectué à la première exécution du script
		lecteur=d.DriveLetter
		If (((d.DriveType=1) OR (d.DriveType=4)) AND (lecteur<>"A") AND (lecteur<>"B")) Then
			lecteur=lecteur&":\"
			If (fso.FileExists(lecteur&"bootmgr") AND fso.FileExists(lecteur&"bootmgr.efi") AND fso.FolderExists(lecteur&"Boot") AND fso.FolderExists(lecteur&"EFI") AND fso.FolderExists(lecteur&"fr-fr") AND fso.FolderExists(lecteur&"sources") AND fso.FolderExists(lecteur&"Programmes") AND fso.FolderExists(lecteur&"Utilitaires")) Then
				wss.RegWrite "HKCU\Environment\BOOT",Left(lecteur,2),"REG_SZ"'pour récupération par Nu2Menu
				Exit For
			End If
		End If
	Next
'affichage des extensions et fichiers/dossiers cachés
	d="HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\"
	wss.RegWrite d&"Hidden",1,"REG_DWORD"
	wss.RegWrite d&"HideFileExt",0,"REG_DWORD"
	wss.RegWrite d&"ShowSuperHidden",1,"REG_DWORD"
'afficher la barre d'état dans Notepad
	wss.RegWrite "HKCU\Software\Microsoft\Notepad\StatusBar",1,"REG_DWORD"
'actualisation de Nu2Menu et donc une nouvelle exécution avortée de ce script
	wss.Run """X:\Program Files\Nu2Menu\Nu2menumsg.exe"" @Reload()",0,FALSE
End If
comme certaines lignes sont trop longues, je l'ai réécrit ce qui donne :

Code : Tout sélectionner

Option Explicit
Dim d,dc,fso,lecteur,wss
Set wss=WScript.CreateObject("WScript.shell")
Set fso=CreateObject("Scripting.FileSystemObject")
Set dc = CreateObject("Scripting.FileSystemObject").Drives
If Not fso.FolderExists("X:\Windows") Then WScript.Echo "À n'utiliser que sous WinPE":WScript.Quit
On Error Resume Next
lecteur=wss.RegRead("HKCU\Environment\BOOT")'cette tentative de lecture crée un erreur à la première exécution
On Error GoTo 0
If VarType(lecteur)=0 Then'0 : variable non initialisée, vrai à la première exécution du script
	For Each d In dc'effectué à la première exécution du script
		lecteur=d.DriveLetter
		If (((d.DriveType=1) OR (d.DriveType=4)) AND (lecteur<>"A") AND (lecteur<>"B")) Then 
			lecteur=lecteur&":\"
			If fso.FileExists(lecteur&"bootmgr") Then
				If fso.FileExists(lecteur&"bootmgr.efi") Then
					If fso.FileExists(lecteur&"Boot") Then
						If fso.FolderExists(lecteur&"EFI") Then
							If fso.FolderExists(lecteur&"fr-fr") Then
								If fso.FolderExists(lecteur&"sources") Then
									If fso.FolderExists(lecteur&"Programmes") Then
										If fso.FolderExists(lecteur&"Utilitaires") Then
											wss.RegWrite "HKCU\Environment\BOOT",Left(lecteur,2),"REG_SZ"'pour récupération par Nu2Menu
											Exit For
										End If
									End If
								End If
							End If
						End If
					End If
				End If
			End If
		End If
	Next
'affichage des extensions et fichiers/dossiers cachés
	d="HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\"
	wss.RegWrite d&"Hidden",1,"REG_DWORD"
	wss.RegWrite d&"HideFileExt",0,"REG_DWORD"
	wss.RegWrite d&"ShowSuperHidden",1,"REG_DWORD"
'afficher la barre d'état dans Notepad
	wss.RegWrite "HKCU\Software\Microsoft\Notepad\StatusBar",1,"REG_DWORD"
'actualisation de Nu2Menu et donc une nouvelle exécution avortée de ce script
	wss.Run """X:\Program Files\Nu2Menu\Nu2menumsg.exe"" @Reload()",0,FALSE
End If

ce qui permet à Nu2Menu, en utilisant "@GetRegKey(HKCU,Environment,BOOT,REG_SZ)", de connaître la désignation du lecteur qui a servi au boot...
Il est évident que Nu2menu et son environnement ainsi que le script VBS sont dans le répertoire "Program Files" donc dans l'image Wim.

Je vais dégrossir mon image Win et revoir les "copier-coller" des explorateurs.

À bientôt,
moums3
Dernière modification par moums3 le 25 février 2014, 11:04, modifié 1 fois.
moums3

Re: Intégrer "Taskmgr.exe" dans WinPE 5.0

Message par moums3 »

Bonjour,
une bonne nouvelle : les copier-coller fonctionnent parfaitement sous A43.exe (ce qui n'est toujours pas le cas d'Explorer++.exe...).

Motif des refus "aléatoires" (y-a-t-il de l'aléatoire en informatique ?) : les variables d'environnement "TMP" et "TEMP" de la clef "HKCU\Environment".
Les données des valeurs "TMP" et "TEMP" sont à changer en "%windir%\Temp" au lieu de "%USERPROFILE%\AppData\Local\Temp" c'est tout !

Je préfère que ces correctifs soient effectués par le vbscript "init.vbs", cela m'évite, à chaque essai de fabrication de l'image "boot.wim", d'avoir à charger des ruches, les modifier puis de les décharger... il faut être fainéant, mais intelligemment !
Il suffit d'ajouter (après la boucle For... Next) les deux lignes suivantes :
wss.RegWrite "HKCU\Environment\TEMP","%windir%\Temp","REG_EXPAND_SZ"
wss.RegWrite "HKCU\Environment\TMP","%windir%\Temp","REG_EXPAND_SZ"
Pour initialiser le réseau vous pouvez ajouter la ligne suivante :
wss.Run "X:\Windows\system32\Wpeutil.exe InitializeNetwork",0,False
Je vais donc reprendre l'assemblage d'un WinPe à partir de l'image "winre.wim" située dans "C:\Recovery\WindowsRE", répertoire auquel j'ai accédé sans problèmes sous WinPE et que j'ai copié grâce à "A43.exe"...;)

Un proche, qui enseigne l'informatique (un fou du langage C), cite souvent : "Quand vous rencontrez un loup, réglez-lui son compte, sinon c'est à la meute que vous devrez faire face !"...

À bientôt
moums3
Etre_Libre
Administrateur
Messages : 800
Inscription : 13 novembre 2012, 21:44

Re: Intégrer "Taskmgr.exe" dans WinPE 5.0

Message par Etre_Libre »

En fait dans le Windows PE généré par Windows ADK, il y a déjà le réseau filaire car dans le \Windows\System32\startnet.cmd on voit dedans la commande :
wpeinit
moums3

Re: Intégrer "Taskmgr.exe" dans WinPE 5.0

Message par moums3 »

Bonjour m'Être_Libre,
cette plaisanterie me brûlait les doigts...

Effectivement "startnet.cmd" lance bien "wpeinit.exe" mais si vous tapez, dans une invite DOS "ipconfig /all", rien n'est renseigné.
Après le lancement de "Wpeutil.exe" avec comme argument "InitializeNztwork", la réponse de "ipconfig /all" est alors bien renseignée...

Je confirme le fonctionnement correct de A43.exe (les copier-coller) conditionné par ce que j'ai indiqué ET par le commande "dism /image:F:\winpe5\mount /Set-ScratchSpace:64"

Encore un détail : dans l'image montée, j'ai supprimé, dans system32, tous les claviers autres que le français (203 dll), j'ai supprimé tous les sous-répertoires de langue autres que "fr-FR" sauf le "en-US" dont son contenu a été réduit à "taskmgr.exe.mui" pour que gestionnaire des tâches présent dans WinPE puisse fonctionner.

J'en suis à incorporer "defrag.exe", sous WinPE, une copie de "defrag.exe" placée dans le répertoire "temp", accompagnée d'un sous-répertoire "fr-FR" contenant "defrag.exe.mui" semble fonctionner...

À bientôt,
moums3
Etre_Libre
Administrateur
Messages : 800
Inscription : 13 novembre 2012, 21:44

Re: Intégrer "Taskmgr.exe" dans WinPE 5.0

Message par Etre_Libre »

Je reste étonné pour le réseau, car de mon côté dans "ipconfig /all" j'ai tout directement...

Par ailleurs pour un défragmenteur pour ma part j'utilise parfois UltraDefrag si cela peut aider.
moums3

Re: Intégrer "Taskmgr.exe" dans WinPE 5.0

Message par moums3 »

Bonjour,
merci "Etre_Libre" pour votre réponse.

C'est effectivement curieux que l'instruction "winpeinit" dans "startnet.cmd" ne donne pas systématiquement les mêmes résultats.

Je continue les vérifications de l'intégration de "defrag.exe", j'ai créé un script VBS pour pouvoir choisir un disque (un lecteur) à défragmenter en laissant la possibilité de défragmenter tous les disques.


Encore une "curiosité" lancez "cmd" puis "defrag /?", vous pourrez lire :

Optimiseur de lecteur Microsoft
Copyright (c) 2013 Microsoft Corp.

Description :

           Optimise et défragmente les fichiers sur les volumes locaux pour
           améliorer les performances du système.

Syntaxe :

           defrag <volumes> | /C | /E <volumes> [<tâche(s)>] [/H] [/M | [/U] [/V]]

           Où <tâche(s)> est omis (dégramentation traditionnelle), ou comme suit :
                         /A | [/D] [/K] [/L] | /O | /X
...

Je ne connais pas la "dégramentation" !

À plus tard
moums3
Etre_Libre
Administrateur
Messages : 800
Inscription : 13 novembre 2012, 21:44

Re: Intégrer "Taskmgr.exe" dans WinPE 5.0

Message par Etre_Libre »

Oui les erreurs de frappe ou de traduction existent en effet...

Exemple : dans Windows 8 et 8.1, quand Windows Defender est désactivé et qu'on souhaite l'activer à nouveau, il dit d'aller dans le "Centre d'Actions".
Or, en anglais ça a beau être "Action Center" dans Windows en français c'est écrit "Centre de Maintenance" donc si on ne connait pas cette histoire on ne trouve jamais le "Centre d'Actions" ;)
Répondre