En este artículo, mostraremos cómo deshabilitar selectivamente UAC para una aplicación específica sin deshabilitar por completo el servicio de Control de cuentas de usuario. Considere varias formas de desactivar UAC para una aplicación usando el RunAsInvoker bandera de compatibilidad.
El Control de cuentas de usuario solicita al usuario que confirme cualquier acción que requiera privilegios de administrador. Este es un mecanismo bastante eficaz para proteger Windows de una serie de amenazas (virus, troyanos, gusanos, rootkits, etc.). Algunos usuarios encuentran molestos las ventanas emergentes de UAC y prefieren deshabilitar esta función de seguridad, aunque Microsoft y los expertos en seguridad recomiendan encarecidamente no hacerlo.
La bandera RunAsInvoker le permite ejecutar la aplicación con un marcador heredado del proceso principal. Esto cancela el procesamiento del manifiesto de la aplicación y el descubrimiento de los procesos del instalador. Este parámetro no proporciona privilegios de administrador, pero solo omite el indicador de UAC.
Como ejemplo, deshabilitaremos el indicador de Control de cuentas de usuario para el editor de registro (regedit.exe). A pesar de que mi cuenta tiene privilegios de administrador local, cuando ejecuto la utilidad, todavía aparece una solicitud de UAC para confirmar el inicio.
Si el programa requiere permisos de administrador, ya que cambia la configuración del sistema o los archivos, los privilegios de usuario en la aplicación no se elevarán después de deshabilitar UAC. El programa seguirá ejecutándose con los permisos de usuario actuales y, si no tiene la autoridad para realizar estos cambios, el programa no podrá realizarlos. También hay una pequeña cantidad de aplicaciones que se ejecutan solo en modo «Como administrador», ignorando el indicador de compatibilidad RunAsInvoker.
Deshabilitar UAC para un programa que usa el kit de herramientas de compatibilidad de aplicaciones
Necesitamos instalar el kit de herramientas de compatibilidad de aplicaciones, que es parte de Windows ADK. Descargue la última versión de Windows ADK para Windows 10 aquí.
Ejecute el archivo adksetup.exe y durante la instalación (el programa necesita acceso a Internet), seleccione solo el Herramientas de compatibilidad de aplicaciones Articulo.
Herramientas de compatibilidad de aplicaciones de Microsoft es un conjunto gratuito de herramientas para solucionar problemas de compatibilidad de aplicaciones al migrar a las nuevas versiones de Windows.
Hay dos versiones de Administrador de compatibilidad de aplicaciones en el sistema: 32 bits y 64 bits. Ejecute la versión del Administrador de compatibilidad de aplicaciones según el valor de bits de la aplicación para el que desee deshabilitar la solicitud de UAC.
Ejecute el Administrador de compatibilidad (32 bits) con privilegios de administrador (!). En el Bases de datos personalizadas nodo, clic derecho Nueva base de datos y seleccione Crear nuevo -> Corrección de la aplicación.
En la siguiente ventana, ingrese el nombre de la aplicación (regedit), el nombre del proveedor (Microsoft) y la ruta al archivo ejecutable (C: Windows System32 regedit.exe).
Omita la siguiente ventana (Modo de compatibilidad) del asistente de configuración presionando próximo. En el Correcciones de compatibilidad ventana, marque la opción RunAsInvoker.
Puede asegurarse de que la aplicación se pueda ejecutar sin UAC presionando el Prueba de funcionamiento botón.
En el Información coincidente cuadro de diálogo, puede especificar qué parámetros de la aplicación deben comprobarse (versión, suma de comprobación, tamaño, etc.). Dejé marcadas las opciones COMPANY_NAME, PRODUCT_NAME y ORIGINAL_FILENAME para evitar la recreación del archivo de parche de compatibilidad después de la próxima actualización de Windows 10.
Consejo. Para protegerse contra la falsificación del ejecutable por parte de un pirata informático, puede solicitar comprobaciones adicionales al ejecutar el archivo (por ejemplo, verificación CHECKSUM, FILE_VERSION o FILE_SIZE, etc.). Cabe señalar que las comprobaciones adicionales ralentizarán el inicio de la aplicación.
Hacer clic Terminar y especifique el nombre del archivo en el que se debe guardar el paquete de corrección de compatibilidad, por ejemplo, regedit.sdb. Este archivo contendrá instrucciones para iniciar la aplicación con las opciones de compatibilidad especificadas.
Ahora solo tienes que aplicar el paquete de corrección de compatibilidad a nuestra aplicación. Puede hacerlo desde la consola del Administrador de compatibilidad (eligiendo Instalar en pc en el menú) o desde el símbolo del sistema.
Para hacerlo, ejecute el símbolo del sistema elevado y ejecute el siguiente comando:
sdbinst -q c:psregedit.sdb
Si lo ha hecho bien, aparecerá un mensaje de instalación correcta del paquete.
Installation of regedit complete.
Una vez instalado el paquete, el registro correspondiente aparecerá en la lista de programas de Windows instalados (Programas y características).
Intente ahora ejecutar la aplicación en una sesión de usuario sin permisos de administrador local. Ahora debería comenzar sin una solicitud de UAC.
Ahora verifique los privilegios para ejecutar la aplicación. Ejecute el Administrador de tareas, vaya a la pestaña Proceso, agregue la columna «Elevado». Asegúrese de que el proceso regedit.exe se inicie desde el usuario en el modo sin privilegios (Elevado = No).
En este proceso de editor de registro, el usuario solo puede editar sus propias claves y parámetros de registro. Pero si intenta editar / crear algo en la clave HKLM del sistema, aparece un error: «No tiene los permisos necesarios».
Posteriormente, esta corrección de compatibilidad se puede distribuir a todos los equipos de los usuarios mediante las políticas de grupo. Por lo tanto, puede deshabilitar las comprobaciones de UAC para las aplicaciones específicas en varias computadoras en un dominio de Active Directory.
Para eliminar la corrección de compatibilidad, ejecute el comando:
sdbinst –u c:psregedit.sdb
Habilite la bandera de la aplicación RunAsInvoker a través del registro
Puede habilitar la marca de compatibilidad RUNASINVOKER en Windows 10 / 8.1 / 7 a través del registro. El indicador de compatibilidad de la aplicación se puede configurar para uno o para todos los usuarios de computadoras.
Por ejemplo, para la aplicación regedit, debe crear un nuevo parámetro de registro (REG_SZ) en la siguiente clave de registro HKEY_CURRENT_USER Software Microsoft Windows NT CurrentVersion AppCompatFlags Layers:
- Nombre del valor: C: windows regedit.exe
- Datos de valor: RunAsInvoker
Si desea habilitar el modo de compatibilidad de aplicaciones para todos los usuarios de computadoras locales, debe crear este parámetro en la clave de registro diferente:
HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows NT CurrentVersion AppCompatFlags Layers.
En el dominio, puede importar / implementar estas configuraciones de registro para los usuarios a través de un GPO.
Murciélagoch archivo para ejecutar la aplicación en el modo RunAsInvoker
Hay otra forma de ejecutar el programa sin privilegios de administrador y sin pasar por el indicador de UAC (consulte el artículo).
Simplemente cree un archivo .bat con el siguiente código:
Set ApplicationPath="C:windowsregedit.exe"
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %ApplicationPath%"
Cuando este archivo bat se ejecuta bajo un usuario común, la aplicación especificada se iniciará sin un mensaje de UAC.
Entonces, vimos cómo deshabilitar UAC para un programa específico sin deshabilitar completamente el Control de cuentas de usuario. Esto le permitirá ejecutar programas de Windows sin un administrador sin un mensaje de UAC y sin ingresar una contraseña de administrador.
Artículos Interesantes
Contenido