windows vista - instalar - Haga que el UAC sea opcional en Windows Installer en Vista
uac windows (3)
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:
- si solo vuelvo a usar el instalador que funciona para XP, Vista activará un aviso de UAC incluso para la instalación "por usuario", haciendo que la instalación no tenga sentido
- si apago el UAC en el bit 3 de PID_WORDCOUNT, Vista ya no invocará el UAC, por lo tanto, 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 el UAC cuando en realidad no es necesario? Alternativamente, ¿cómo puedo solicitar programáticamente UAC incluso si el bit 3 está configurado?
Lamentablemente, Windows Installer no proporciona una forma de crear un paquete único que pueda instalarse por máquina y por usuario, sino que solo solicita el 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.
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 aparezca el menú emergente de UAC para usuarios con privilegios durante la instalación?