Bonjour,
J'ai en ma possession un programme setup.exe qui dispose de deux modes :
- Un mode "Installation", qui va, entre autres, installer SQL Server, IIS, et une application.
- Un mode "Réparation", qui va simplement mettre à jour des fichiers dans le dossier de l'application.
Évidement, pour le mode installation, on a des besoins administrateur, et ça, je ne cherche pas à le contourner.
En revanche, pour le mode "répération", aucun besoin d'administrateur : il s'agit de faire un xcopy de quelques fichiers dans un dossier auquel l'utilisateur a accès.
J'ai besoin de permettre à l'utilisateur, non administrateur de la machine, de le faire tourner en mode "réparation".
Comment faire ?
J'imagine que Windows ne détermine pas si on a besoin des droits administrateur d'un coup de baguette magique : le setup.exe doit contenir une information explicite à ce sujet. Comment la faire sauter ?
Le besoin final est simple : quand on installe le programme, ce dernier va se copier dans program files.
Mais au premier démarrage, une base de données va être créée dans le dossier utilisateur/appdata
Donc après une installation, on interdit à l'administrateur de lancer le programme : l'utilisateur démarre alors le programme et tout fonctionne.
Seulement, en mode réparation, le programme doit mettre à jour cette base. Et si on le lance en tant qu'administrateur, c'est le appdata du compte administrateur qui est patché. Résultat, quand l'utilisateur lance l'application mise à jour, pas moyen de démarrer, car la base et le programme ne sont pas dans la même version...
Partager