Cómo suprimir los avisos del UAC para ciertas aplicaciones en Windows

Desde que Microsoft hizo que el Control de Cuentas de Usuario (UAC) fuera un poco más persistente en Windows 10 y versiones posteriores, intentar ejecutar algunas aplicaciones sin las molestas indicaciones se ha vuelto un poco complicado. Especialmente si estás probando cosas o simplemente quieres una forma rápida de evitar el UAC para una aplicación específica, no para todo el sistema. Esta guía profundiza en cómo se han manipulado las omisiones del UAC (principalmente usando el indicador RunAsInvoker ) para que ciertas aplicaciones se ejecuten con mayor fluidez, sin eliminar por completo la seguridad. Es un poco complicado, pero en algunas configuraciones, esto puede evitar que tengas que hacer clic en «Sí» cada vez que inicias, especialmente con aplicaciones que no deberían necesitar permisos de administrador, pero que sí requieren la aprobación del UAC. Spoiler: Algunos programas simplemente ignoran este indicador, o necesitan permisos de administrador de todos modos, así que no esperes milagros. Pero si tienes una aplicación que se resiste a cooperar, esto podría ayudarte a ejecutarla sin que se dirija al administrador cada vez.

Cómo deshabilitar los mensajes del Control de cuentas de usuario (UAC) para aplicaciones específicas en Windows

Deshabilitar el UAC de un programa mediante el Kit de herramientas de compatibilidad de aplicaciones

Este método puede parecer excesivo, pero en realidad es bastante fiable para forzar la ejecución de aplicaciones con una configuración de compatibilidad específica. Primero, necesitará Windows ADK. Descargue la versión más reciente, que incluye el Kit de herramientas de compatibilidad de aplicaciones. Al instalarlo, seleccione solo las Herramientas de compatibilidad de aplicaciones. Esto le proporcionará el Administrador de compatibilidad, crucial para crear correcciones de compatibilidad.

En un sistema de 64 bits, ejecute el Administrador de compatibilidad (x64) o la versión de 32 bits si la aplicación es de 32 bits. Necesitará permisos de administrador para esto. Abra la herramienta y, en Bases de datos personalizadas, haga clic con el botón derecho y seleccione Nueva base de datos. Asígnele un nombre (como «NoUAC-Regedit») y cree una nueva «Aplicación Fix». Indique el nombre de la aplicación (p.ej., regedit ), el proveedor (Microsoft) y la ruta exacta del ejecutable (probablemente C:\Windows\System32\regedit.exe ).

En el siguiente paso (Correcciones de compatibilidad), marque la casilla RunAsInvoker. Esto básicamente le indica a Windows que ejecute la aplicación sin intentar elevar privilegios ni solicitarle permiso. Puede probarla directamente desde la herramienta haciendo clic en » Ejecutar prueba». Una vez que se vea bien, guarde la base de datos (por ejemplo, regedit_fix.sdb ) e instálela mediante la línea de comandos ejecutando el siguiente comando:

sdbinst -q c:\path\to\regedit_fix.sdb

Esto registra la corrección en todo el sistema. Ahora, abre regedit y, ¡hola!, no aparece el mensaje de control de cuentas de usuario (UAC).Ten en cuenta que esta corrección solo funcionará si la aplicación no solicita explícitamente permisos de administrador para ciertas acciones. Además, no todas las aplicaciones cumplen con el indicador RunAsInvoker ; algunas simplemente lo ignoran, sobre todo si solicitan explícitamente permisos de administrador.

Habilite el indicador de aplicación RunAsInvoker a través del Registro

Si modificar el Administrador de Compatibilidad le parece excesivo, puede configurar manualmente el mismo comportamiento a través del registro. Este método es más rápido para pruebas o configuraciones a pequeña escala. Básicamente, se crea o edita una entrada del registro de la siguiente manera:

  • Abra el Editor del Registro ( Win + R, escriba regedit)
  • Vaya a HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
  • Crear un nuevo valor REG_SZ :
  • Nómbrelo exactamente como la ruta completa a su ejecutable, por ejemplo, C:\Windows\regedit.exe
  • Establezca sus datos en RunAsInvoker

¿Lo quieres para todo el sistema? Haz lo mismo en HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers. Por supuesto, en un entorno empresarial, puedes implementarlo mediante las Preferencias de directiva de grupo, sin necesidad de modificarlo manualmente en cada equipo. Ten en cuenta que este proceso está bastante oculto, por lo que tardarás un minuto en acostumbrarte a editar las entradas del registro.

Script por lotes para iniciar la aplicación en modo RunAsInvoker

Esto es bastante sencillo, pero práctico. Simplemente crea un archivo *.bat* con la siguiente línea, reemplazando la ruta de tu aplicación:

Set ApplicationPath="C:\windows\regedit.exe" cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %ApplicationPath%"

Al hacer doble clic en este script, la aplicación se iniciará sin solicitar la elevación, gracias a la variable de entorno RunAsInvoker. Este método es un poco impredecible según la aplicación, pero es bastante fácil de probar antes de complicarse con modificaciones más profundas del registro o correcciones de compatibilidad.

Nota: No todas las aplicaciones ignoran las solicitudes del Control de Cuentas de Usuario (UAC) de esta manera; algunas están programadas para solicitar siempre la elevación si detectan ciertos comportamientos o solicitan permisos de administrador explícitamente. Sin embargo, en configuraciones más sencillas, especialmente al probar un programa, estos trucos pueden reducir considerablemente los clics.

Además, ten en cuenta que omitir el aviso no significa que la aplicación tenga ahora privilegios de administrador. Si necesita realizar cambios en todo el sistema, no podrá hacerlo a menos que se ejecute como administrador. Aun así, estos trucos pueden ahorrarte el paso adicional de acceder al Control de Cuentas de Usuarios (UAC) si solo estás probando o desactivando temporalmente los avisos para una aplicación.