OS impactés :
Windows 7 & Windows Server 2008 R2
Quelle nouvelle approche ?
Œuvrer pour Limiter l’adhérence de la couche applicative avec la couche système, on ajoute une étape de plus dans le cloisonnement lors de l’installation et de l’utilisation d’une application.
Descriptif :
Peut exécuter un unique package qui peut à la fois installer une application pour le contexte “machine” ou pour le contexte “utilisateur”.
Une application étant prévue d’être installée, mise à jour, exécutée et supprimée par un utilisateur standard sans élévation de privilèges est appelée “a per user Application” (PUA). Une PUA minimise les effets sur le système ainsi que pour les autres utilisateurs sur l’ordinateur. Elle réserve l’UAC à des situations qui ont réellement besoin de l'élévation de privilèges de l'utilisateur.
Lorsque Windows Installer 5.0 installe un package à double choix dans le contexte de l’utilisateur, il dirige les fichiers et les entrées de Registre vers les emplacements prévus pour l’utilisateur et n'affiche pas l'UAC pour l’élévation de privilèges.
Lorsque Windows Installer 5.0 installe un package à double choix dans le contexte machine, il dirige les fichiers et les entrées de registre aux emplacements prévus pour le contexte machine et affiche l’UAC pour certifier que l'utilisateur a bien des privilèges suffisants pour installer le logiciel packagé pour tous les utilisateurs de l’ordinateur.
Une fois que Windows Installer 5.0 installe une application, il utilise le même contexte d'installation pour toutes les mises à jour ultérieures, les réparations, ou la suppression de l’application.
Redirection des éléments en fonction du contexte d’installation :
Installation « Per Machine »
- HKEY_LOCAL_MACHINE
- HKLM\Software\Classes
- ProgramFilesFolder
- CommonFilesFolder
- ProgramFiles64Folder
- CommonFiles64Folder
Installation « Per User »
- HKEY_CURRENT_USER
- HKCU\Software\Classes
- %LocalAppData%\Programs
- %LocalAppData%\Programs\Common
- %LocalAppData%\Programs\ISV _Name\App_Name\x86
- %LocalAppData%\Programs\ISV_Name\App_Name\x64
- C:\Users\%username%\AppData : pour les configurations de données utilisateur de l’application
- C:\Users\%username%
Par contre :
- Pas de “Custom Actions” fonctionnant avec des privilèges élevés
- Pas d’écriture dans les répertoires système suivants : AdminToolsFolder; CommonAppDataFolder; FontsFolder; System16Folder; System64Folder; SystemFolder; TempFolder; WindowsFolder; WindowsVolume
- Pas d’installation de “Win32 assemblies” dans le “global assembly cache (GAC.)
- Pas d’installation de sources ODBC
- Pas d’installation de services
Parmi les nombreuses fonctionnalités cachées de Windows 7 on retrouve le GodMode, il s’agit en fait d’un dossier spécial permettant de personaliser divers réglages. Ce dossier est aussi accessible sous Windows 2008R2.
Pour cela, il faut créer un nouveau dossier et de le nommer
ModeDieu.{ED7BA470-8E54-465E-825C-99712043E01C}
Une icone similaire à celle du panneau de configuration apparait.
Pour les autres dossiers spéciaux : http://msdn.microsoft.com/en-us/library/ee330741(VS.85).aspx
La problématique
Lors de l’exécution de la commande Sysprep sur une machine virtuelle Windows Seven fraîchement installée, j’ai rencontré l’erreur suivante :
A fatal error occurred while trying to sysprep the machine.
Le sysprep était exécuté avec les options suivantes :
- /generalize
- /oobe
- /unattend
Suite à des recherches sur le site http://support.microsoft.com, j’ai localisé plusieurs articles traitant d’une problématique proche mais appliquées à Windows Vista. Aucune ne m’a été utile.
La solution
J’ai finalement trouvé la solution sur un forum Technet dont voici le lien :
http://social.technet.microsoft.com/Forums/en/w7itproinstall/thread/6208afb1-8f3e-4657-a618-0e4a52e9f546
Le problème semblerait venir du service “Windows Media Player Network Sharing Service” et à mon grand étonnement la désactivation de ce service (ou bien la suppression du processus associé : wmpnetwk.exe) a bel et bien résolu mon problème !
En proie au doute, j’ai ré-exécuté l’opération plusieurs fois sur la même machine (en utilisant un snapshot Hyper-V pour revenir en arrière) et ce tips semble bel et bien viable !
N’hésitez pas à laisser un commentaire ou un retour d’expérience si vous avez déjà été confronté à ce problème avec la commande sysprep de Windows 7 ou si ce billet vous a aidé !