2008-10-30 6 views

Répondre

4

Votre action personnalisée était en cours d'exécution lorsqu'elle a été rencontrée dans InstallExecuteSequence; au lieu de l'exécution du script d'installation réel. Cela a provoqué l'exécution de votre action personnalisée avec les autorisations des utilisateurs plutôt qu'avec les autorisations élevées du système. Cette série d'articles de blog expliquera en détail ce qui se passe, http://blogs.msdn.com/rflaming/archive/2006/09/23/768146.aspx. Vous ne devez pas avoir d'actions personnalisées affectant l'état de la machine qui ne s'exécute pas en tant qu'actions personnalisées différées.

11

+1 Lance. Pour l'exprimer d'une autre façon et donner plus d'informations

Il y a 2 étapes du processus MSI

  • immédiate - où vous collectez préférences (répertoire d'installation, etc.) - aucune modification de la machine doivent être ici

puis plus tard

  • différés - qui s'exécute après que toutes les préférences ont été recueillies et fait l'installation.

Quelques autres pensées

  • immédiate ne peut pas toujours être exécuté (par exemple installation scriptée) donc ne pas compter sur elle.

Il y a 2 modes qu'un différé l'action peut fonctionner dans

  • NoImpersonate - alias Autorité NT \ System qui a l'autorisation complète sur votre ordinateur

  • Impersonate - Celui qui a lancé l'installation.

Avec UAC activé Impersonate a un kicker. You will only have the standard user token and no admin rights, même si l'utilisateur est en fait un administrateur - alors continuez à NoImpersonate si possible sinon votre action personnalisée ne pourra rien faire.

Questions connexes