Tengo una aplicación C# que se ejecuta y muestra un icono de bandeja. Tengo un instalador para mi aplicación de bandeja que inicia la aplicación después de la instalación. El instalador requiere permisos de administrador, mientras que el icono de la bandeja debe ejecutarse con permisos normales. Mi instalador actualmente lo rompe: cuando se lanza la aplicación de la bandeja instalada, hereda los permisos de administrador del proceso del instalador.Cómo iniciar un programa con permisos de usuario en lugar de permisos activos
Como parte de mi instalador, estoy lanzando una aplicación C# para realizar algunos trabajos personalizados. Esta pequeña aplicación actualmente pone en marcha la aplicación de la bandeja llamando:
Process.Start(@"path/to/my/tray/app.exe");
¿Hay alguna forma para invocar la aplicación bandeja con los permisos del usuario actual en lugar de los permisos elevados dadas al instalador?
He oído que la forma recomendada de hacerlo es tener un contenedor EXE alrededor del instalador que inicia el instalador y luego inicia el programa instalado. Me gustaría evitar esto si es posible.
Estoy usando WiX para construir un instalador MSI, así que también aceptaría soluciones que funcionan directamente desde WiX/MSI.
UseShellExecute aparentemente está predeterminado en true, por lo que parece que esto no ayudará aunque todavía no lo haya intentado. Gracias por su respuesta, pero sospecho que el administrador de paquetes será la única solución "ordenada". – mchr
Ahora lo he probado y no funciona. También probé un dll de C++ llamando a http://msdn.microsoft.com/en-us/library/aa446583%28v=vs.85%29.aspx y lanzando con el nuevo token de seguridad. Sin embargo, esto no puede alterar al usuario que posee el proceso lanzado, solo los permisos que tiene el proceso lanzado. – mchr