2016-06-18 3 views
0

De nombreux programmes Windows peuvent exécuter une mise à jour au démarrage, sans invite d'administration. De même, mon programme doit se mettre à jour, sans aucune intervention de l'utilisateur. Tout utilisateur qui se connecte doit pouvoir utiliser le programme.Mise à jour automatique du programme Free Pascal au démarrage du programme, sans invite d'administration

Mon programme peut déjà trouver de nouvelles mises à jour, les télécharger et les exécuter, mais le programme d'installation/mise à jour de NSIS nécessite des droits d'administrateur.

Que devrais-je faire pour implémenter ceci en utilisant Free Pascal et NSIS, à court de donner à tous les utilisateurs l'accès au répertoire d'installation?

+1

installer un service pour faire la mise à jour. Ou installer dans un répertoire que l'utilisateur standard peut écrire. –

+0

@David Que voulez-vous dire par "service", exactement? Pourriez-vous me donner un exemple? –

+1

Si vous ne savez pas ce qu'est un service, vous ne devriez pas en écrire un pour des raisons de sécurité. Prenez la deuxième option. – Marged

Répondre

0

Votre application est-elle si importante que vous avez besoin de faire cela? À quelle fréquence prévoyez-vous réellement de pousser les mises à jour?

La plupart des applications peuvent probablement s'en tirer avec l'élévation avec UAC chaque fois qu'il a besoin d'installer une mise à jour.

Si vous pensez absolument que vous devez "contourner l'UAC", vous pouvez faire ce que Firefox fait; installez un NT Service. Vous ne démarrez pas ce service dans le programme d'installation mais vous devez appeler GetNamedSecurityInfo + SetNamedSecurityInfo afin que vous puissiez ajouter l'accès SERVICE_START pour le groupe Tout le monde à la liste de contrôle d'accès. Votre application s'exécutant en tant qu'utilisateur normal peut alors démarrer ce service lorsqu'il y a une mise à jour et que le service effectue la mise à jour. Du point de vue de la sécurité, il y a certains dangers car le service fonctionne avec un accès complet au système. Vous devez donc vous assurer que vos mises à jour sont signées afin qu'elles ne deviennent pas une porte dérobée facile à utiliser. un homme dans l'attaque du milieu.

Personnellement, je pense que vous devriez envisager de faire des installations par utilisateur si votre programme n'est pas trop grand ...