2009-10-09 18 views
6

Estoy usando Visual Studio 2008 para compilar un paquete de instalación de MSI. Dentro de la instalación tengo numerosas acciones personalizadas. Dentro de la acción personalizada OnAfterInstall, intento iniciar un exe implementado por la instalación. El exe se inicia correctamente, pero se ejecuta dentro de un contexto de seguridad de NT AUTHORITY \ SYSTEM (es decir, bajo los privilegios elevados otorgados al proceso de Windows Installer). De hecho, necesito el exe para ejecutar en el contexto de seguridad del usuario que actualmente inició sesión y que comenzó la instalación en primer lugar. ¿Alguien sabe cómo iniciar el exe para que se ejecute en este contexto 'reducido'. Realmente quiero evitar tener que pedirle al usuario sus credenciales de inicio de sesión si es posible.Inicie exe después de la instalación de msi pero utilizando los privilegios de usuario actuales

Respuesta

2

Necesita utilizar la API de Servicios de Escritorio remoto: http://msdn.microsoft.com/en-us/library/aa383464%28v=VS.85%29.aspx. Está disponible a partir de WinXP.

Esta API le permite ejecutar su aplicación en el contexto de cualquier cuenta de usuario registrada. Debe ejecutar como un SISTEMA para poder usarlo. Y usted es. Por ejemplo, puede enumerar sesiones usando WTSEnumerateSessions, luego tomar el token de usuario por WTSQueryUserToken y ejecutar la aplicación utilizando este token.

Cuestiones relacionadas