2008-10-31 10 views
16

He escrito un archivo msi que ofrece una opción de instalación "por usuario" o "para todos" en la fase de interfaz de usuario, y ahora veo que el instalador falla en Vista:Hacer UAC opcional en Windows Installer en Vista

  • si acabo de volver a utilizar el instalador que funciona para XP, Vista dará lugar a una UAC incluso para la instalación "por usuario", lo que hace que la instalación sentido
  • si apago UAC en el bit 3 de PID_WORDCOUNT , Vista ya no invocará el UAC, por lo que incluso si el usuario tuviera permiso para instalar en el registro de la máquina (por ejemplo), el aumento de privilegios no ocurre, por lo que la instalación falla.

Entonces: ¿cómo puedo evitar que el instalador invoque UAC cuando en realidad no es necesario? Alternativamente, ¿cómo puedo solicitar programáticamente UAC incluso si el bit 3 está configurado?

Respuesta

6

Desafortunadamente, el instalador de Windows no proporciona una forma de crear un único paquete que se puede instalar por equipo y por usuario, pero sólo pedirá UAC en el caso por equipo. El problema es que el bit que puede suprimir la solicitud de UAC se almacena en la corriente SummaryInformation y no se puede modificar mientras se está ejecutando el paquete.

+0

Gracias por la confirmación. ¿Hay una razón seria de diseño para esto, o podemos esperar que esta bandera se convierta en propiedad algún día? –

+1

Escuché que MSI 5.0 está haciendo algo en esta área. Pero necesitaremos Win7 para eso.

3
+0

Por favor entienda que no estoy hablando del UAC de un ejecutable - no hay setup.exe. En cambio, los usuarios inician el archivo MSI directamente. –

+0

nueva referencia provista ... – saschabeaumont

+0

Este es un enlace fantástico a una serie de publicaciones de blog que explican cómo el control de acceso de usuario (UAC) se relaciona con la tecnología de Windows Installer (.msi). Gracias por el enlace, @sascha! – dthrasher

1

Apagué el UAC configurando el bit 3 de PID_WORDCOUNT en mi paquete MSI. Puedo instalarlo para "ALLUSERS" y "PER-USER", y también escribir para HKLM en ambos modos en máquinas VISTA. ¿Es obligatorio que obtenga la ventana emergente de UAC para el usuario con privilegios durante la instalación?

+0

Apagar este bit no funcionó para mí. Los usuarios obtendrían errores de "permiso denegado", aunque sean miembros del grupo de administradores. Solo el administrador puede instalar el paquete correctamente. –

Cuestiones relacionadas