mars
2008
Au fil des ans et des différentes versions de Windows, nombre d’application ont été conçues pour avoir un accès direct à des emplacements systèmes ou tout simplement à la base de registres.
Sous Vista ces emplacements sont maintenant verrouillés pour réduire la surface d’attaque du système.
Pour garder une comptabilité avec les anciens programmes Vista implémente un service de virtualisation de l’UAC qui redirige de manière transparente les accès aux parties protégées du système (fichier ,base de registres) vers un emplacement virtualisé et non protégé.
Faisant croire ainsi à l’application qu’elle écrit à l’emplacement d’origine.
Un programme exécuté avec des droits utilisateurs s’installe dans le répertoire :
C:\Program Files\ »application »\
L’accès sera automatiquement virtualisé à l’emplacement :
C:\Users\ »votre_compte »\AppData\Local\VirtualStore\Program Files\ »application »
Ce mécanisme de redirection convient pour la plupart des applications.
Si le programme doit impérativement écrire à l’emplacement d’origine il faudra élever les droits de l’application en administrateur.
On procèdera comme suit :
Soit on change les droits d’accès sur le programme par clic droit onglet compatibilité : exécuter en tant qu’administrateur, un peu pénible…
Autre voie cocher « Exécuter le programme en tant qu’administrateur » dans l’onglet mode de compatibilité du programme.
ou bien on rajoutera avec les versions de Visual antérieure à Visual 2008 le fichier manifest suivant à notre application :
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity name="monapplication"
version="1.0.0.0"
processorArchitecture="X86"
type="win32"/>
<description>Mon Application</description>
<!-- Identify the app's security requirements. -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
à intégrer suivant la technique décrite dans la Faq VC
Au moment d’exécuter le programme Vista demandera l’acceptation de l’utilisateur pour l’élévation des droits.
Sauf évidemment si vous avez désactivé l’UAC ..
Pour conclure :
Il faut bien comprendre que ce mécanisme de virtualisation a été implémenté par Microsoft pour permettre une transition en « douceur » des applications.
Mais il ne faut pas compter sur la virtualisation comme étant la solution sachant que rien ne garantie que ce mécanisme soit encore présent dans les futures versions de Windows…
Articles récents
Commentaires récents
Archives
- septembre 2010
- mai 2010
- avril 2010
- février 2010
- août 2009
- juin 2009
- mai 2009
- février 2009
- décembre 2008
- novembre 2008
- octobre 2008
- septembre 2008
- juillet 2008
- juin 2008
- mai 2008
- avril 2008
- mars 2008
- février 2008
- janvier 2008
- décembre 2007
- novembre 2007
- septembre 2007
- août 2007
- juillet 2007
- juin 2007
- mai 2007
- avril 2007
- mars 2007
- février 2007
- janvier 2007
- décembre 2006
- novembre 2006
- octobre 2006
- septembre 2006
- août 2006
- juillet 2006
- juin 2006
- mai 2006
- mars 2006
- février 2006