Deshabilitar el UAC programáticamente

¿Es posible desactivar programáticamente UAC en Vista? O bien, ¿puedo hacer que mi aplicación se ejecute sin restricciones por la configuración de UAC de alguna manera? FYI, la aplicación necesita montar discos duros sobre la marcha, por lo que no puedo pedir permiso de UAC cada vez …

Actualizar:

Estoy buscando algo en línea con lo que mencionó Kosi2801, básicamente para pedirle al usuario que siempre inicie el progtwig en un modo ‘elevado’. Me gustaría que el permiso sea una sola vez, no estoy diciendo que desactive el UAC programáticamente sin pedir permiso primero. Estoy seguro de que hay muchos progtwigs que necesitan operar de esta manera (especialmente progtwigs relacionados con el hardware), por lo que debe haber algún tipo de forma de acomodarlo.

Establezca el valor EnableLUA DWORD en HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System en 0 y reinicie.

esto deshabilitará el UAC sin problema, lo haría con todos tus usuarios, con o sin permiso depende de ti, porque el UAC de vista es tan horrible que creo que hay menos gente que lo tenga (solo en vista) ) ahora es mejor en win7.

Diviértete con mi truco de registro 🙂

también funciona en win7, hágame saber cómo se lleva con usted.

No se puede deshabilitar programáticamente el UAC, pero puede forzar al progtwig a que se ejecute con privilegios elevados desde el inicio, por lo que no se solicita cada vez.

Eso hará que se solicite una vez al inicio, pero no cada vez que necesite acceso.

Para hacer esto, deberá crear un archivo de manifiesto y establecer

Ver MSDN para más detalles.

El propósito de UAC es evitar la ejecución de aplicaciones no deseadas. Si fuera posible desactivarlo programáticamente, no tendría ningún valor.

Publiqué una solución algo granular (pero fea) aquí

 http://stackoverflow.com/questions/5344021/bypass-uac-in-vbscript/34445992#34445992 

Solo funciona si puede iniciar la aplicación desde el progtwigdor de tareas. Lo tengo funcionando en dos computadoras portátiles con Windows 7. Es una solución administrativa. Necesita el privilegio de administrador para implementarlo. Lo uso para Powershell y para mi aplicación de respaldo de energía de UPS. Sospecho que encontraré otros usos.

La desactivación de UAC mediante progtwigción frustraría su propósito, ya que esto también podría ser hecho por malware, gusanos, troyanos y viruses y no tendría ningún efecto real de seguridad.

Puede requerir ejecutar su aplicación bajo la cuenta de administrador o (creo) permitir que Microsoft de alguna manera firme su aplicación.

Puede haber otras formas que no conozco, ¡pero ninguna de ellas es programáticamente!

UAC es un mal necesario al igual que el uso de semáforos en una ciudad. Sugiero adaptarme al nuevo paradigma. Personalmente, no me gusta el UAC; pero entiendo el propósito y los beneficios. Desafortunadamente, todos creamos este monstruo. Para no volver a 1983, hacer una breve evaluación de los cambios a lo largo de los años y luego, lo comprenderemos. Por supuesto, si la intención es para uso privado, todo es posible, como se señaló anteriormente; pero sería arriesgado y se convertiría en una responsabilidad de agujero negro.

Creé una pequeña aplicación para hacer esto, pero básicamente hay 4 claves de registro que necesita establecer.

C # ejemplo:

 Microsoft.Win32.Registry.SetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System","EnableLUA", 0); Microsoft.Win32.Registry.SetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", "ConsentPromptBehaviorAdmin", 0); Microsoft.Win32.Registry.SetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", "PromptOnSecureDesktop", 0); Microsoft.Win32.Registry.SetValue("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Action Center\\Checks\\{C8E6F269-B90A-4053-A3BE-499AFCEC98C4}.check.0", "CheckSetting", StringToByteArray("23004100430042006C006F00620000000000000000000000010000000000000000000000"), RegistryValueKind.Binary); 

Mi aplicación se ejecuta como un servicio cada 5 minutos para “pelear” la Política de grupo en esto, lo cual es una molestia absoluta para una máquina de desarrollador.

https://github.com/zleight1/DisableUAC

Eso vencería el objeto de UAC. Entonces no, no puedes.