2010-03-21 24 views
13

Necesito uno de mis .exe para ejecutar siempre como administrador sin solicitud de UAC. Mi programa se instalará con la configuración, que tendrá derechos de administrador por única vez, y debo realizar dicho paso en esta configuración para que mi ejecutante siempre se ejecute como administrador sin la solicitud de UAC.Win C#: ejecutar la aplicación como administrador sin solicitud de UAC

que he encontrado hasta el momento 2 soluciones:

1. Uso servicio personalizado, lo que elevará el programa para mí.

2. Use Task Scheduler.

¿Hay alguna otra solución? Algunos manifiestan probablemente?

Gracias.

+0

¿Qué tipo de aplicación? – ZippyV

+2

Puede ponerse en contacto con MSFT y solicitar que su aplicación se incluya en una "lista de exclusión de UAC" especial. No estoy tan seguro de que eso funcione, ellos no ponen sus propios programas en esa lista. Sí, tarea programada, se necesitan privilegios de administrador para agregarla. –

Respuesta

8

Por supuesto, lo que se supone que debes hacer si solo quieres conducir la IU es usar el indicador de acceso a la IU en tu manifiesto (ver http://msdn.microsoft.com/en-us/library/ms742884.aspx). Si instala su aplicación en una ubicación confiable (por ejemplo, system32) y está firmada (¡bleh!), Cuando ejecute su aplicación se elevará a alta (para una cuenta de administrador).

El requisito de firma hace que sea ligeramente molesto, pero al menos reduce ligeramente la superficie de ataque a medida que su código se ejecuta con alta integridad, pero no con un token de administrador.

+0

Muchas gracias. Esto se ve muy interesante. Firmaría mi aplicación de todos modos en el futuro. Y si obtuviera un nivel de integridad más alto sin el token de administrador, eso es exactamente lo que necesito. – Paya

+0

BTW He encontrado certificados de COMODO muy baratos aquí: https://secure.ksoftware.net/code_signing.html – Paya

27

Si fuera posible hacer esto, entonces UAC sería completamente ineficaz. La incapacidad de aplicaciones para elevarse sin el consentimiento del usuario es el principio fundamental detrás de UAC.

Además de tener un proceso elevado que lo inicia (es decir, servicio o programador de tareas), la respuesta es no, no se puede hacer.

+7

Parece que alguien quiere escribir un virus. – Karl

+0

+1 Así como @Aaronaught escribió, un objetivo de diseño de UAC es ** no ** proporcionar una forma para que las aplicaciones eludan las indicaciones. –

+4

@Karl: no presumo de su motivación: muchos productos de software legítimos intentan hacer cosas igualmente desagradables que Windows explícitamente prohíbe, como robar el foco o instalar accesos directos en el Inicio rápido. Por supuesto, tales programas generalmente se cuelgan y se queman cuando hay algo "no estándar" sobre la instalación, como la estructura del directorio o el idioma. – Aaronaught

Cuestiones relacionadas