2012-09-29 26 views
14

Utilicé "highestAvailable" en el manifiesto de mi ejecutor. Pero en standard user and UAC ON no está elevando el exe.Diferencia entre "highestAvailable" y "requireAdministrator" en manifiesto en términos de elevación?

¿Este es el comportamiento de "highestAvailable"?

Remití este MSDN link pero no está claro si "alta disponibilidad" elevará el exe o no. Mi requisito es elevar el exe si UAC está activado.

Cambié a "requireAdministrator" y mi exe se está elevando en usuario estándar con UAC ON.

¿Puede alguien explicarme en detalle sobre el comportamiento de elevación de estas dos opciones "highestAvailabe" y "requireAdministrator"?

+1

highestAvailable es solo eso, el permiso más alto disponible; el usuario es un usuario estándar, así que eso es lo más alto. Si siempre necesita permisos de administrador, use requireAdministrator. – CMircea

Respuesta

20

highestAvailable se elevará si el usuario actual es un administrador. Lo cual es consistente con lo que has observado. Cuando un usuario estándar ejecuta el proceso, no se muestra el cuadro de diálogo UAC y el proceso se ejecuta con el token estándar. Cuando se ejecuta un usuario administrador, se muestra el cuadro de diálogo de consentimiento de UAC y el proceso se ejecutará elevado.

Si su programa requiere derechos de administrador para funcionar, entonces necesita usar requireAdministrator. Cuando un usuario estándar inicia dicho proceso, se muestra el cuadro de diálogo sobre el hombro UAC. Eso le da al usuario la oportunidad de pedirle a un administrador que le proporcione sus credenciales.

Solo debe usar highestAvailable si su programa es capaz de ejecutarse con una funcionalidad limitada en caso de que el usuario no pueda elevarlo. Esto es lo que significa modo mixto en el tema de MSDN vinculado por su pregunta.

+1

Un ejemplo de 'highestAvailable' es el editor de registro que se puede ejecutar como todos los usuarios, pero para los usuarios administradores, necesita acceso completo como ese usuario. – Deanna

+0

Esto significa que * no * puede ejecutar este programa como limitado cuando es administrador, ¿no es así? – Medinoc

+0

@Medinoc Eso es correcto. Un ejemplo de un programa configurado de esta manera es regedit. –

Cuestiones relacionadas