But de ce jour : Investigation autour de win81-RAMOS et Construction manuelle
Kullenen_Ask : http://www.msfn.org/...d-from-winpe-30
Win81SE : http://spam/index.php (pour winpe et ramos)
Mon propos s'adresse à qui veut, comme moi, tenter de comprendre un peu les grands principes.
Win81SE est un produit "clé en main" qui propose une solution efficace.
En lisant les scripts du projet Win81SE, les diverses informations de Kullenen_Ask, je suis arrivé
à mieux comprendre comment construire un win81ramOs, ainsi que les différences avec un winpe.
On peut dire que cela ne sert à rien de comprendre, que c'est de la "philosophie", inutile...
Et à l'heure de windows ToGo, a-t-on encore besoin de winpe ?
Mais pour ceux qui restent intéressés, je propose un guide pour débutant comme moi.
On apprend vite à utiliser les commandes élémentaires, dism, bcdedit, bcdboot, diskpart (ou l'ihm)
Les commandes de base de bcdedit : "/store, /copy, /set, /deletevalue, /delete"
Les paramètres à maîtriser : device (et osdevice ) PARITION | VHD | RAMDISK = [lettre]\...
avec lettre = la lettre de la partition cible actuelle au moment de la commande.
Le programme va la remplacer par la signature du disque et/ou de la partition.
Donc 'lettre' n'a pas de persistance au delà de l'instant où l'on tape la commande bcdedit.
Les incontournables : procmon, proexp, depends
Le choix du but à atteindre : winpe81 ou win81ramos ?
- Winpe81 : tout le monde sait ce que c'est.
- win81RamOs : à partir de la version d'évaluation windows8.1 Entreprise et en appliquant les modifications dans les ruches comme le suggère le site chinois cité par Kullenen_Ask, on peut démarrrer sur un windows81. Cela ressemble à un windowsToGo. Et si on le met dans un RAMDISK et non dans un disque Flat, on a un win81RamOs comme le fait le projet Win81SE qui le fait mieux que moi mais poursuit un autre but.
Différences : la gestion de la sécurité est un point de divergence important.
- winpe : pas de gestion de la sécurité au sein de l'OS.
C'est le compte system qui est actif. L'ouverture de session est complètement spécifique.
Winlogon.exe ne semble pas être opérationel bien que présent en RAM.
Les ruches SAM et SECURITY sont vides.
Présence de "SAC Special Administration Console" ( driver, service ... ) : ca sert à quoi ?
Mon avis : l'absence de gestion de la sécurité 'perturbe' les mécanismes DCOM utilisés par "explorer".
Je n'ai pas trouvé de site traitant de dcomcfg.exe ou de runas.exe ( seclogon ne suffit pas ) sous winpe.
Je ne sais pas si le projet "Win81SE option winpe" traite ces 2 points.
- win81Ramos : la sécurité est bien présente.
Les ruches SAM et SECURITY ne sont pas vides. Winlogon gére bien l'ouverture de session. TOUT est opérationnel. On peut installer ce que l'on veut...pour 90 jours. Avec le projet "Win81SE option ramos", on peut réduire la taille de l'Os sur disque, le mettre dans un ramdisk.
Un mot sur Windows81 ToGo
Sur une clé usb, on a un windows 8.1 COMPLET
En moins d'une heure, on a un "vrai" windows sur une clé qui démarre sur tous les PC. Les drivers sont mis à jour si besoin.
La procédure normale propose d'utiliser une clé "certifiée" de 32Go.
Mais on trouve rapidement sur internet comment utiliser une clé de 16Go ordinaire. De mémoire :
un 'dism /apply-image' depuis un install.wim de la version d'évaluation windows8.1 Entreprise
un 'bcdboot'
Attention : sur ma clé Emtec 16Go, j'ai dû utiliser le logiciel "phison" pour changer le type ( fixe et non amovible mais pourquoi ?)
Le choix pour la mise en oeuvre : Ramdisk ou Flat ?
Le suport physique contient les répertoires \boot qui contient le fichier BCD, \sources qui contient boot.wim
Au démarrage de Winpe, sur une clè USB, au travers de PXE, sur un CDROM, l'OS est monté en RAMDISK.
Le chargeur contenu sur le support ( clé usb, cdrom, via pxe ) installe d'abord ce RAMDISK.
Puis il éclate le contenu du fichier BOOT.WIM dans l'unité X: affecté au RAMDISK.
Cela se manifeste par un bcd qui contient la ligne :
ramdisk=[boot]\sources\boot.wim,{7619dcc8- ...
Le mode Flat est documenté dans AIK mais est peu utilisé.
Il permet pourtant une investigation plus facile qui évite de regénérer la WIM à chaque modification.
Il convient bien à l'utilisation d'une VM. Et avec hyperV de WIN81, on dispose d'un certain confort.
Les ruches ne sont pas persistantes avec winpe en mode Flat. Mais les fichiers le sont.
Et on constatera que les ruches sont persistantes avec win81RamOS.
Le support physique contient les répertoires habituels de WIN81, \windows, \users, \programmes
Pour utiliser l'OS en mode Flat, le plus simple est de le mettre dans un VHD.
On peut alors le monter avec Windows81 avec "explorer" et un clic droit "monter"
Puis faire une modification. Le démonter avec un clic droit "éjecter".
Et ensuite redémarrer la VM.
Note : Ensuite on peut mettre le vhd sur une clé usb et démarrer sur cette clé.
Il faut mettre la bonne ligne dans le bcd, quelques chose comme :
device ( et osdevice ) vhd=[la bonne lettre au moment de la commande bcdedit]\le chemin du vhd
-->>> C'est donc l'emploi d'un RamOs en mode Flat dans un vhd que je propose ici.
Le principe de la mise en oeuvre (proche de windows ToGo)
- créer un vhd avec l'ihm "gestionnaire de disque" ( menu "action" )
- appliquer une image dans ce disque virtuel
- préparer son démarrage avec un bcd
- modifier les ruches
- créer une vm avec ce disque virtuel
Avec plus de détails :
Il faut disposer :
- de la version d'évaluation windows81Entrprise
- d'un os win81 actif pour faire l'investigation
- d'un hyperV dans cet os ( donc d'un matériel disposant du SLAT niv 2 voir coreinfo.exe/systeminfo.exe )
1 - créer un vhd de 20Go (dynamique), créer une partition ntfs, la formater, l'initialiser, la rendre active -->> h:
2 - dism /apply-image /imagefile:D:\W81Entreprise\install.wim /index:1 /applydir:H:\
3 - bcdboot h:\windows /s H: /f ALL
Rq : les 4 ruches issues de install.wim seront modifiées.
4 - prendre possession des fichiers
icacls h:\*.* /setowner administrateurs /T /C /Q
->> 7667 fichiers correctement traités ; échec du traitement de 94417 fichiers --->> accès refusés !
donc je prends :
TAKEOWN /F h:\windows\system32\*.* /R /A ---->>>> mais pose trop de questions et ne réussit pas avec winsxs..
5 - modifier acl des fichiers
icacls h:\windows\system32\*.* /grant:r Administrateurs:F /T /C /Q
6 - remplacer utilman.exe par cmd.exe ( c'est l'habitude ! )
move h:\windows\system32\utilman.exe h:\windows\system32\utilman.exe.org
copy h:\windows\system32\cmd.exe h:\windows\system32\utilman.exe
7 - modifier/copier les ruches SAM et Security de install.wim d'une version W8.1 Entreprise Evaluation
>>> Comment modifier ...\1F4 pour activer le compte "adminstrator" ?
changer le "F4 01...11" par "F4 01...10 : -->>>> voir win81SE ( le script 2config ) ou créer/injecter un fichier .reg
[HKEY_USERS\SAM\SAM\Domains\Account\Users\000001F4]
"F"=hex:02,00,01,00,00,00,00,00,17,42,cd,7a,46,9f,ce,01,00,00,00,00,00,00,00,\
00,85,c0,1a,7f,46,9f,ce,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
>>> f4,01,00,00,01,02,00,00,10,02,00,00,00,00,00,00,00,00,01,00,01,00,00,00,00,\
00,00,00,00,00,00,00
copy /Y D:\RruchesModifiees\SAM H:\Windows\System32\config
copy /Y D:\RuchesModifiees\Security H:\Windows\System32\config
- autre "bonne vieille" méthode qui fonctionne bien dans le cas "manuel" :
"cliquer sur l'icone "utilman" et taper "net user administrator /ACTIVE:YES"
Pas de copie des ruches SAM et Security dans ce cas
8 - modifier la ruche SYSTEM selon le site chinois repris par kullenen_ask et chrisR dans win81SE
- la monter dans HKEY_USERS\sys
- prendre possession de la ruche
C:\Users\Noël\Desktop\subinacl\subinacl.exe /subkeyreg HKEY_USERS\sys /owner=administrateurs
- donner le contrôle total au groupe administrateurs
C:\Users\Noël\Desktop\subinacl\subinacl.exe /subkeyreg HKEY_USERS\sys /grant=administrateurs=F
- modifier 'System\Setup' ( ce sont en gros les différences majeures avec windows ToGo ) :
HKEY_USERS\sys\System\Setup,OOBEInProgress,0
HKEY_USERS\sys\System\Setup,SystemSetupInProgress,0
HKEY_USERS\sys\System\Setup,SetupPhase,0
// SetupType (0=Do nothing, show login screen, 1=Run CMDLine then REBOOT, 2=Run CMDLine then show login screen)
HKEY_USERS\sys\System\Setup,SetupType,0
HKEY_USERS\sys\System\Setup,CmdLine,""
//RegDelete,HKLM,Tmp_System\Setup,WorkingDirectory
- modifier ...
HKEY_USERS\sys\ControlSet001\Services\gpsvc\start 3
HKEY_USERS\sys\ControlSet001\Services\TrustedInstaller\start 3
suppression de :
HKEY_USERS\sys\System\ControlSet001\Services\rdyboost
modif pour retirer rdyboost dans LowerFilters
HKEY_USERS\sys\System\ControlSet001\Control\Class\{71a27cdd-812a-11d0-bec7-08002be2092f},LowerFilters,fvevol
suppression de : ( start = 4 pour l'instant )
HKEY_USERS\sysSystem\ControlSet001\Services\hwpolicy
HKEY_USERS\sysSystem\ControlSet001\Services\PEAUTH
HKEY_USERS\sysSystem\ControlSet001\Services\storflt
HKEY_USERS\sysSystem\ControlSet001\Services\WdBoot
HKEY_USERS\sysSystem\ControlSet001\Services\WdFilter
Ajout de 3 services : FBWF RAMDISK WIMFS
-->>> pour utiliser win81RamOs en ramdisk et non en mode flat
-->>> voir plus loin en annexe les fichiers reg
HKEY_USERS\sys\ControlSet001\Control\Power HibernateEnabled = 0
HKEY_USERS\sys\ControlSet001\Control\CrashControl AutoReboot = 0
9 - remplacer c: par x: dans les ruches software et system
>>> bizarre : la première fois j'avais x: comme %systemDrive% et maintenant j'ai "c:"
- avec, par exemple, un éditeur de texte hexa comme "frhed" qui est "libre"
10 - éjecter le VHD
11 - contruire une vm pointant sur ce disque.
remarques :
le nom de machine est défini dans la ruche security : WINDOWS-MRT14B2
et il est repris dans la ruche System ...\computername
Annexes : les fichiers pour le ramdisk, le filter writter, et le filtre pour Wim mais quelle utilité pour le vhd Flat?
FBWF.reg
Windows Registry Editor Version 5.00
[HKEY_USERS\sys\ControlSet001\Services\FBWF]
"DisplayName"="fbwf"
"ErrorControl"=dword:00000001
"Group"="FSFilter System Recovery"
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
52,00,49,00,56,00,45,00,52,00,53,00,5c,00,66,00,62,00,77,00,66,00,2e,00,73,\
00,79,00,73,00,00,00
"Start"=dword:00000000
"Tag"=dword:00000005
"Type"=dword:00000002
"Description"="File Based Write Filter Driver"
"DependOnService"=hex(7):66,00,6c,00,74,00,6d,00,67,00,72,00,00,00,00,00
"WinPECacheThreshold"=dword:00000200
[HKEY_USERS\sys\ControlSet001\Services\FBWF\Instances]
"DefaultInstance"="Fbwf Instance"
[HKEY_USERS\sys\ControlSet001\Services\FBWF\Instances\Fbwf Instance]
"Altitude"="226000"
"Flags"=dword:00000000
RAMDISK.reg
Windows Registry Editor Version 5.00
[HKEY_USERS\sys\ControlSet001\Services\Ramdisk]
"DisplayName"="Windows RAM Disk Driver"
"ErrorControl"=dword:00000001
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
52,00,49,00,56,00,45,00,52,00,53,00,5c,00,72,00,61,00,6d,00,64,00,69,00,73,\
00,6b,00,2e,00,73,00,79,00,73,00,00,00
"Start"=dword:00000000
"Type"=dword:00000001
[HKEY_USERS\sys\ControlSet001\Services\Ramdisk\Debug]
"DebugLevel"=dword:00000005
"DebugComponents"=dword:7fffffff
WIMFSF.reg
Windows Registry Editor Version 5.00
[HKEY_USERS\sys\ControlSet001\Services\WimFsf]
"DisplayName"="Windows Imaging File System Filter Driver"
"ErrorControl"=dword:00000001
"Group"="FSFilter Compression"
"Start"=dword:00000000
"Type"=dword:00000002
"DependOnService"=hex(7):46,00,6c,00,74,00,4d,00,67,00,72,00,00,00,00,00
[HKEY_USERS\sys\ControlSet001\Services\WimFsf\Instances]
"DefaultInstance"="Wimfsf Instance"
[HKEY_USERS\sys\ControlSet001\Services\WimFsf\Instances\Wimfsf Instance]
"Altitude"="161000"
"Flags"=dword:00000000
[HKEY_USERS\sys\ControlSet001\Services\WimFsf\Parameters]
Fin mode op
Je n'ai pas compris le but des modifications de Kullenen_Ask :
"
Only changing "HKLM\System\Setup\cmdline=winpeshl.exe" and i use "HKLM\System\Setup\SetupType=2".
It has nearly all windows drivers and most of the services. Mediaplayer, wireless, recovery environment,
photo viewer all exist it its small size 226mb. Media player capable to play Divx and MP4.
"
Je vais proposer un mode opératoire pour construire manuellement Winpe-RamOs ...