Nous avons une application Windows avec un composant qui écrit dans le dossier ProgramData. Lorsque le programme de désinstallation est exécuté, les fichiers générés par ce composant ne sont pas supprimés. En utilisant l'UAC de RunElevated, nous avons d'abord installer un composant tiers dans ProgramDataNSIS RMDir n'a pas réussi à supprimer les fichiers créés par l'utilisateur dans ProgramData
SetOutPath "$RENDERER_INSTALL_DIR"
LogSet On
File /r "${MAGNIFY_DIR}/secRenderer/Arelle/*"
LogSet Off
AccessControl::GrantOnFile "$RENDERER_INSTALL_DIR" "(S-1-5-32-545)" "FullAccess"
Pendant le fonctionnement, ce composant écrit dans son propre répertoire d'installation dans ProgramData
Pendant la désinstallation, nous essayons de supprimer le dossier créé ci-dessus , utilisant de nouveau UAC :: RunElevated
RMDir /r $RENDERER_INSTALL_DIR
Cependant, les fichiers créés en actionnant le composant ne sont pas supprimés.
Nous avons observé que ces fichiers appartiennent à l'utilisateur qui a utilisé le composant, et non à l'administrateur, qui possède néanmoins des autorisations de lecture, d'écriture et de suppression complètes.
Comment pouvons-nous faire ce travail?
Je vous recommande de ne pas utiliser le plug-in UAC. – Anders