Overblog Tous les blogs Top blogs Technologie & Science Tous les blogs Technologie & Science
Editer l'article Suivre ce blog Administration + Créer mon blog
MENU

[W2G] Windows To Go avec W7,W8 avec ou sans clé certifiée.

Publié le par damcuvelier

Go

Ceci est une étude, une réflexion, je ne l'ai pas encore testé. Je mettrai à jour au fur et à mesure de mes tests...

(Toutes les commandes sont à faire en tant qu'administrateur)

Avec Windows 7

1) créer un VHD Windows Lite Portable
utiliser VHD_W7

très bon tuto ici

2) Mettre en place une récupération des pilotes du matériel hote:
Voir "ANNEXE.2) Mettre en place une récupération des pilotes du matériel hote" (en fin de post)

3) Profile utilisateur:
Voir "ANNEXE.3) Gestion de la portabilité du profil utilisateur" (en fin de post)

Avec Windows 8

W2G8 sur usb certifié (facile)

1) créer un windows to go pour windows 8.

2) Mettre en place une récupération des pilotes du matériel hote:
Voir "ANNEXE.2) Mettre en place une récupération des pilotes du matériel hote" (en fin de post)

3) Profile utilisateur:
Voir "ANNEXE.3) Gestion de la portabilité du profil utilisateur" (en fin de post)

W2G8 sur usb non certifié (moins facile)

1) Coût des périph usb certifiés MS pour Windows To Go:

- Kingston DataTraveler Ultimate – US$ 50+
- Super Talent Express RCB – US$ 70
- Western Digital My Passport Enterprise – US$ 110


2) Préparer le disque externe:
Il va être effacé, rassurez vous vous pourrez remettre vos données ensuite.
Récupérer le numéro du disque (%DISK%) avec diskpart, puis clean/format/active:

SELECT DISK %DISK%
CLEAN
CREATE PARTITION PRIMARY
FORMAT FS=NTFS QUICK
ACTIVE
EXIT

3) Outils de création:

a) Récupérez le WAIK Windows 7: http://www.microsoft.com/en-us/download/details.aspx?id=5753
b) extraire les fichier "F1_image" et "NEUTRAL.CAB" (conseil: utilisez un repertoire à la racine de C:\, plus confortable, moi j'utilise C:\W2G)
c) renommer "F1_image" en IMAGEX.EXE
d) récupérer le fichier INSTALL.WIM depuis %sourceWindows8%\SOURCES (où %sourceWindows8% est la votre source de Windows8, un DVD ou share réseau... ou prenez en un que vous avez customisé ;) ), et copiez le à l'endroit où se trouvent IMAGEX.EXE et NEUTRAL.CAB .

4) Création de l'image W2G Bootable:
a) appliquer INSTALL.WIM sur le périph usb:
Il faut connaitre la lettre de votre périph usb cible (ici je mettrai donc %USBDLetter% pour éviter toute confusion).
Avec une cmd en tant qu'administrateur, se rendre dans le répertoire (pour moi C:\W2G) et lancez:

"IMAGEX.EXE /APPLY INSTALL.WIM 1 %USBDLetter%:\"

b) copier les fichiers de boot windows (BCDBOOT) sur le périph usb:
"BCDBOOT.EXE %USBDLetter%:\WINDOWS /S %USBDLetter%: /F ALL"

5) Boot Initial et setup de W2G:
a) booter sur votre clé W2G sur un autre pc (processus de configuration initial assez long)
Attention: 2 boot sont nécessaires, il faudra donc s'assurer que le pc reboot sur l'usb
b) le 2nd boot affiche les étapes de configuration de Windows 8 tel que EULA,config réseau,activation windows, mot de passe du profile...
(c'est là qu'une source personnalisée est utile pour éviter ce bidule long)


6) Initialisation de W2G:
W2G se comporte presque exactement exactement comme Windows 8, normal c'est une installation de Windows 8.
Une notification peut apparaitre pour prévenir qu'il s'agit d'un windows portable et donc qu'il ne faut surtout pas débrancher la clé en cours d'utilisation au risque de perdre toutes ces données (comme avec WinPE).

L'installation d'applications est possible via le Windows Store mais à condition de faire une modification dans l'éditeur de stratégie de groupe (gpedit) pour permettre d'utiliser le "Windows Store":
Faire un Gpedit, et Se rendre dans: "Computer Configuration\Administrative Templates\Windows Components\Store"
et activer "Allow Store to install apps on Windows To Go workspace"
ou
appliquer la règle de registre suivante:
"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsStore"
EnableWindowsStoreOnWTG(DWORD) = 1
-> soit par regedit.exe, soit pas fichier .reg soit par REG ADD (Reg ADD HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsStore /v EnableWindowsStoreOnWTG /t REG_DWORD /d 00000001 /f)

7) Securité
Voir "ANNEXE.4) Gestion de la sécurité " (en fin de post)

------------------------------------------------------------------------------------------------------------

ANNEXE Gestion de la Portabilité

1) conseils:

- Une source x86 est conseillée (ainsi vous êtes sûr de pouvoir booter sur n'importe quel hardware même s'il n'est pas compatible x64...)
- On peut utiliser W2G sur une VM (c'est mieux pour le processus de conception/création/tests)
- L'avantge de l'activation du windows store, est que la licence est partagée sur 5 PC, et donc pour vous faciliter la vie, vous installez tout sur la source physique et ensuite dans W2G vous n'avez qu'à aller dans le windows store et ajouter les applis pour qu'elles soient installées directement.

- En utilisant UE-V vous pouvez avoir votre profil et vos paramètres applicatifs (comme les paramètres de votre messagerie) où que vous soyez.
- En utilisant App-V vous pouvez avoir vos applications à dispo (conseil: utiliser le standalone pour éviter un ping/pong avec le serveur entreprise, et donc l'utilisation de la bande passante) où que vous soyez.

2) Mettre en place une récupération des pilotes du matériel hôte:

a) lors de l'installation:
- Ajoutez le composant Microsoft-Windows-PnpCustomizationNonWinPE à votre fichier de réponses dans l’étape de configuration offlineServicing
- <windir>\system32\DriverStore\FileRepository de la machine hote grace à l'option "Microsoft-Windows-PnpCustomizationsNonWinPE" de l’étape de configuration "auditSystem" dans le unattend.xml de l'installation (<windir> est le chemin de windows sur le PC hote)

Je dois avoir dans mes archives passées un script qui doit permettre de retrouver ça

b) lors du boot sur un autre hardware (après construction):
Démarrer W2G en ignorant les erreurs de pilotes de périphériques et ouvrez la session

b.1) assurez vous que les pilotes réseau sont au moins installés:
- récupérez les pilotes réseau sur internet depuis un autre pc (ou depuis le pc hote)
- installez les pilotes réseau

b.2) installer les pilotes depuis un share:
- en interface:
lancer le gestionnaire de périphérique et fournissez le chemin du share.

- en ligne de commande:
"rundll32 syssetup,SetupInfObjectInstallAction DefaultInstall 128 <share>\<chemin de chaque pilote>\<file>.inf"
<share> est le chemin du share sur le réseau (accessible au minimum en RX à "tout le monde" et pas seulement "utilisateurs authentifiés" car vous n'êtes pas authentifié sur l'infra si vous êtes presta ou commercial chez un client ;) )
<chemin de chaque pilote> est le chemin ou se trouve les fichiers ".inf" des périphériques qui vous concernent
<file> est le nom de chaque fichier ".inf"

b.3) depuis windows update:
- lancer windows update et faite une mise à jour de windows (n'oubliez pas d'activer la mise à jour des pilotes lol)

- Ouvrez un cmd en admin, et executez la commande suivante:
cscript.exe driversupdate.vbs
et le fichier vbs contient ceci:

 

@Set objSearcher = CreateObject("Microsoft.Update.Searcher")
Set objResults = objSearcher.Search("Type='Driver'")
Set colUpdates = objResults.Updates

Wscript.Echo colUpdates.Count

For i = 0 to colUpdates.Count - 1
    Wscript.Echo "Title: " & colUpdates.Item(i).Title
    Wscript.Echo "Autoselect on Web sites: " & _
        colUpdates.Item(i).AutoSelectOnWebSites

    For Each strUpdate in colUpdates.Item(i).BundledUpdates
        Wscript.Echo "Bundled update: " & strUpdate
    Next

    Wscript.Echo "Can require source: " & colUpdates.Item(i).CanRequireSource
    Set objCategories = colUpdates.Item(i).Categories

    For z = 0 to objCategories.Count - 1
        Wscript.Echo "Category name: " & objCategories.Item(z).Name
        Wscript.Echo "Category ID: " & objCategories.Item(z).CategoryID
        For Each strChild in objCategories.Item(z).Children
            Wscript.Echo "Child category: " & strChild
        Next
        Wscript.Echo "Category description: " & _
            objCategories.Item(z).Description
        Wscript.Echo "Category order: " & objCategories.Item(z).Order
        Wscript.Echo "Category type: " & objCategories.Item(z).Type
    Next

    Wscript.Echo "Deadline: " & colUpdates.Item(i).Deadline
    Wscript.Echo "Delta compressed content available: " & _
        colUpdates.Item(i).DeltaCompressedContentAvailable
    Wscript.Echo "Delta compressed content preferred: " & _
        colUpdates.Item(i).DeltaCompressedContentPreferred
    Wscript.Echo "Description: " & colUpdates.Item(i).Description
    Wscript.Echo "EULA accepted: " & colUpdates.Item(i).EULAAccepted
    Wscript.Echo "EULA text: " & colUpdates.Item(i).EULAText
    Wscript.Echo "Handler ID: " & colUpdates.Item(i).HandlerID

    Set objIdentity = colUpdates.Item(i).Identity
    Wscript.Echo "Revision number: " & objIdentity.RevisionNumber
    Wscript.Echo "Update ID: " & objIdentity.UpdateID

    Set objInstallationBehavior = colUpdates.Item(i).InstallationBehavior
    Wscript.Echo "Can request user input: " & _
        objInstallationBehavior.CanRequestUserInput
    Wscript.Echo "Impact: " & objInstallationBehavior.Impact
    Wscript.Echo "Reboot behavior: " & objInstallationBehavior.RebootBehavior
    Wscript.Echo "Requires network connectivity: " & _
        objInstallationBehavior.RequiresNetworkConnectivity
    Wscript.Echo "Is beta: " & colUpdates.Item(i).IsBeta
    Wscript.Echo "Is hidden: " & colUpdates.Item(i).IsHidden
    Wscript.Echo "Is installed: " & colUpdates.Item(i).IsInstalled
    Wscript.Echo "Is mandatory: " & colUpdates.Item(i).IsMandatory
    Wscript.Echo "Is uninstallable: " & colUpdates.Item(i).IsUninstallable

    For Each strLanguage in colUpdates.Item(i).Languages
        Wscript.Echo "Supported language: " & strLanguage
    Next

    Wscript.Echo "Last deployment change time: " & _
        colUpdates.Item(i).LastDeploymentChangeTime
    Wscript.Echo "Maximum download size: " & colUpdates.Item(i).MaxDownloadSize
    Wscript.Echo "Minimum download size: " & colUpdates.Item(i).MinDownloadSize
    Wscript.Echo "Microsoft Security Response Center severity: " & _
        colUpdates.Item(i).MsrcSeverity
    Wscript.Echo "Recommended CPU speed: " & _
        colUpdates.Item(i).RecommendedCPUSpeed
    Wscript.Echo "Recommended hard disk space: " & _
        colUpdates.Item(i).RecommendedHardDiskSpace
    Wscript.Echo "Recommended memory: " & colUpdates.Item(i).RecommendedMemory
    Wscript.Echo "Release notes: " & colUpdates.Item(i).ReleaseNotes
    Wscript.Echo "Support URL: " & colUpdates.Item(i).SupportURL
    Wscript.Echo "Type: " & colUpdates.Item(i).Type
    Wscript.Echo "Uninstallation notes: " & _
        colUpdates.Item(i).UninstallationNotes

    x = 1
    For Each strStep in colUpdates.Item(i).UninstallationSteps
        Wscript.Echo x & " -- " & strStep
        x = x + 1
    Next

    For Each strArticle in colUpdates.Item(i).KBArticleIDs
        Wscript.Echo "KB article: " & strArticle
    Next

    Wscript.Echo "Deployment action: " & colUpdates.Item(i).DeploymentAction
    Wscript.Echo

Next

 

 

3) Gestion de la portabilité du profil utilisateur

a) Soit Personalisation depuis profile utilisateur hote et export USMT
utilisez usmt pour copier votre profil vers windows to go comme s'il s'agissait d'un nouveau pc
faire un scanstate sur votre profile hote
puis faire un loadstate depuis windows to go ;)

(Des infos sur USMT dans ce blog)

 

b) Soit Implémenter UE-V sur le windows portable/sur le profil natif:
b.1) effectuer la procédure de provisionning de l'UE-V depuis machine d'origine
b.2) se connecter à windows to go avec profile utilisateur une première fois pour lancer la première synchro

beaucoup d'info sur UE-V sur le site de Mathieu

 

c) Soit Utiliser un profil vierge avec les données user dans un dropbox/partage réseau/données sur un repertoire du HDD externe
pour une utilisation temporaire

 

4) Gestion de la sécurité

(source NSA, rien que ça ;) )

a) tout d'abord, changer la stratégie de groupe (gpedit) pour autoriser Bitlocker à être utilisé sans TPM:
Faire un Gpedit, et Se rendre dans: "Computer Configuration\Administrative Templates\Windows Components\BitLocker Drive Encryption"
a.1) activer "Control Panel Setup: Enable advanced startup options"
avec les options suivantes:
- Configure TPM startup key option = Require startup key with TPM
- Configure TPM startup PIN option = Disallow startup PIN with TPM

a.2) activer "Control Panel Setup: Configure recovery options"
avec les options suivantes:
- Configure 48-digit recovery password option = Disallow recovery password
- Configure 256-digit recovery password option = Require recovery key (default) // (cette option est plus sécurisée que l'utilisation d'un mot de passe de récupération, vous pouvez toujours utiliser un mot de passe de récupération mais "atyourownrisk")

a.3) Désactiver Bitlocker dans les options de gestion de l'alimentation (pour éviter d'avoir à rentrer à nouveau votre lonnnngue key en cas de mise en veille), ça évite aussi des problèmes en cas de mise en veille dans les boots de configuration initiale... lol

L'avantage du Bitlocker sans TPM est que s'il n'y a pas de puce TPM sur la machine cible ça marchera, et vous pourrez vous connecter. Et si on fait un reset de la puce TPM, vos données seront toujours protégées et donc si perte/vol de votre W2G, il sera crypté et protégé.

Les documents sont pour vista, mais qui peut le plus peut le moins:

How to Securely Configure Microsoft with Bitlocker

Windows_To_Go as a Mobile Desktop Solution

=>> vous pouvez extraire ces règles dans un fichier xml et les intégrer à l'initialisation to W2G au premier boot (enjoy!)
 
 

 

Commenter cet article