2009-10-09 7 views
6

J'utilise Visual Studio 2008 pour créer un package d'installation MSI. Au sein de l'installation, j'ai de nombreuses actions personnalisées. Dans l'action personnalisée OnAfterInstall, je tente de démarrer un exe qui est déployé par l'installation. L'exe démarre correctement, mais s'exécute dans un contexte de sécurité de NT AUTHORITY \ SYSTEM (c'est-à-dire sous les privilèges élevés accordés au processus Windows Installer). J'ai en fait besoin de l'exe pour s'exécuter dans le contexte de sécurité de l'utilisateur actuellement connecté qui a démarré l'installation en premier lieu. Est-ce que quelqu'un sait comment démarrer l'exe afin qu'il fonctionne dans ce contexte «réduit». Je veux vraiment éviter d'avoir à demander à l'utilisateur ses informations d'identification si possible.Démarrez exe après l'installation de msi mais en utilisant les privilèges utilisateur actuels

Répondre

2

Vous devez utiliser l'API Remote Desktop Services: http://msdn.microsoft.com/en-us/library/aa383464%28v=VS.85%29.aspx. Il est disponible à partir de WinXP.

Cette API vous permet d'exécuter votre application dans le contexte de tout compte utilisateur connecté. Vous devez être en cours d'exécution en tant que système pour pouvoir l'utiliser. Et tu es. Par exemple, vous pouvez énumérer des sessions en utilisant WTSEnumerateSessions, puis prendre le jeton d'utilisateur par WTSQueryUserToken et exécuter l'application en utilisant ce jeton.

Questions connexes