Changer les permissions dans un fichier .MSI

Permissions

 

      On a besoin des fois d'écrire quelque chose dans les fichiers (ex: mdb, txt, …), on ne fait pas que les lire. Si vous développez une application qui a besoin de mettre à jour ou d'insérer des données dans un fichier mdb, lors de l'installation dans le répertoire C:\Program files (ou C:\Program files(X86), Si vous installez une application X86 sur un windows X64), elle marchera très bien dans un environnement Windows XP. Mais qu'en ait il pour Windows Vista ou Windows 7? En fait vous allez avoir une exception comme celle ci:

 

      Ceci est causé par l'accés du compte utilisateur (UAC), quand vous installez un logiciel dans un répertoire spécifique (pour notre cas c'est le répertoire C:\Program files), les fichiers seront sous le control de l'UAC. Même si vous vous connectez avec le compte administrateur sur Windows 7, les permissions sur les fichiers seront changées comme le groupe d'utilisateur, sauf si vous exécuter le programme avec le click droit "exécuter en tant qu'administrateur". En regardant les propriétés de “ConditionDB.mdb”, on peut connaître les différents paramètres de sécurité pour les groupes d'utilisateurs comme on peut le voir sur la photo ci dessous: 

 

Si on avait changé les permissions en control total manel pour les utilisateurs, cette simple application demo aurait marché parfaitement pour Windows Vista/7.

Le but de cet article est de savoir comme changer les permissions quand l'application est installée via l'AppUp Center!

Pour cela, on a besoin d'un outil dit "Orca" que vous pourrez trouver dans le SDK Microsoft Windows (http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c17ba869-9671-4330-a63e-1fd44e0e2505&displaylang=en ). La taille du fichier est très grande, si vous ne voulez pas installer entièrement le package du SDK, vous pouvez chercher "Orca.exe" sur internet.

Après l'installation d'Orca, veuillez suivre les étapes suivantes:

Etape 1: Exécution d'Orca.exe en tant qu'administrateur

Etape 2: Ouvrir le fichier MSI [File] ->[Open]

 

Etape 3: Sélectionner "File" dans la partie Tables sur la gauche

Etape 4: Récupérer le texte dans la colonne File correspondant à notre fichier. Pour notre example, c'est le texte “_701D306E457E40CA8C7AE986C149B80C” qui correspond au fichier ConditionDB.mdb dont on veux changer les permissions:

 

Etape 5: Sélectionner "LockPermissions" dans la partie Tables sur la gauche.

 

Etape 6: Cliquer avec le bouton droit de la souris pour ajouter une colonne "Add Row" 

 

Etape 7: Dans le champ "LockObject" Coller le texte récupérer lors de l'étape 4.

 

Etape 8: Dans le champ "Table", écrire "File".

 

Etape 7: Dans le champ "User", écrire "users" afin de paramétrer les permissions pour un groupe d'utilisateur.

 

Etape 10: Dans le champ "Permission", écrire "2032127" qui signifie Control total.

 

Etape 11: Valider avec le bouton "OK" pour voir le résultat suivant:

 

Etape 12: Cliquer sur [File]->[Save] pour enregistrer les changements apportés au fichier MSI.

 

Etape 13: Télécharger le fichier MSI dans IADP, puis télécharger et installer le de la boutique d'applications AppUp, ça devrait marcher comme vous le souhaitiez!

Pour avoir plus d'informations sur l'attribution des permissions aux utilisateurs, regarder les documents MSDN en cliquant ici.

 

Ce post est la traduction d'un article de l'un de nos blogueurs: Bill Chung qu'il a écrit suite à ses tests.

Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.