2010-05-06 12 views
7

Tengo una aplicación que se implementará como paquete MSI (creado en WiX).¿Es posible instalar en Archivos de programa con privilegios limitados?

Estoy decidiendo si especificar privilegios elevated o limited según sea necesario para el instalador.

La aplicación no incluye nada que requiera privilegios elevados además de la ubicación de instalación predeterminada, que se encuentra en Archivos de programa.

Ahora el problema:

  • Si especifico privilegios elevados, a continuación, se solicita al usuario por UAC de contraseña de administrador durante la instalación. Esto no es necesario e impide que los usuarios que no son administradores se instalen.

  • Si especifico privilegios limitados, entonces el usuario se presenta con un cuadro de diálogo para seleccionar la ubicación de instalación con Program Files siendo por defecto. En caso de que no cambien la ubicación de instalación (probablemente el 95% de los usuarios finales no lo hará), el instalador no responderá con un mensaje que indique que debe ponerse en contacto con el Administrador o ejecutar la aplicación como administrador. Si inician el instalador como administrador, pueden instalarse en los archivos de programa sin problemas, pero la mayoría de los usuarios probablemente no sabrán cómo iniciar un instalador como administrador.

Puedo establecer potencialmente la ubicación de instalación predeterminada, p. C: \ Company name \ Program \, pero esto me parece no estándar y probablemente a la mayoría de los usuarios no les guste (probablemente estén acostumbrados a instalarlo en Archivos de programa).

¿Cómo resuelve este problema con la instalación de aplicaciones en cuentas de usuario limitadas?

Respuesta

6

Es probable que la ubicación alternativa que usted propone, directamente desde la unidad C, también requiera privilegios elevados. Antes de Windows 7, sugeriría usar una acción personalizada temprana para cambiar su ubicación predeterminada para instalaciones limitadas. Condicione fuera de la propiedad Privileged (o posiblemente AdminUser), verifique si necesita establecer MSIUSEREALADMINDETECTION para su caso, y use algo como [LocalAppDataFolder]Company\Product. Lamentablemente, este enfoque dará como resultado un paquete que es difícil de instalar para todos los usuarios, ya que debe preelevar, y en el caso limitado aún podrían seleccionar una ubicación de destino que requiera elevación. Deben pre-elevarse porque el paquete debe estar marcado para no elevarse.

Si solo puede orientar Windows 7 y versiones posteriores, puede establecer condicionalmente MSIINSTALLPERUSER para anular la ubicación de instalación y el requisito de elevación, y en su lugar instalar por usuario. En este escenario, al usuario se le podría preguntar si instalar para todos los usuarios (requiere elevación) o solo para él mismo. El paquete se puede marcar para elevación, y la configuración MSIINSTALLPERUSER anulará eso y omitirá el aviso de UAC.

+1

No, la ubicación alternativa no requiere privilegios elevados. Actualmente estoy instalando de forma predeterminada en C: \ Company name \ Product y el instalador de MSI está construido con privilegios limitados y no aparece ningún UAC, ni ningún cuadro de diálogo de error. – Marek

+0

Eso suena como un entorno personalizado, pero está bien si sabe que estará en su lugar en cualquier lugar donde esté instalado su producto. El resto de la respuesta aplica; simplemente ignore la sugerencia de ubicación de privilegio limitado. –

-2

Ejecute el símbolo del sistema (cmd) como administrador.

Luego use el comando msiexec para ejecutar el archivo msi.

+0

No puedo pedirle al usuario final que haga esto – Marek

+0

puede pedirle al usuario que haga esto ... como para instalar cualquier s/w uno debe tener privilegios de administrador. Así que no hay nada de malo en pedirle que lo haga. O puede pedirle al usuario que inicie sesión con las credenciales de administrador y luego instale s/w –

3

Es probablemente más importante que su software se ejecute con privilegios de usuario normales, que veo que ha mencionado no es un problema.

No hay nada de malo en pedir derechos de administrador para instalar algo.

O bien, el usuario tendrá los detalles, ya que están ejecutando una cuenta limitada por razones de seguridad o el software será instalado por el departamento de TI de su empresa de todos modos.

Cuestiones relacionadas