¿Cómo negar la elevación a un programa?

12

¿Windows tiene una lista de "denegar automáticamente la solicitud de elevación" ?

Si un usuario es un "usuario estándar" , es posible que Windows rechace automáticamente cualquier solicitud de elevación cambiando la ConsentPromptBehaviorUserconfiguración de la directiva de grupo a Denegar automáticamente las solicitudes de elevación :

  • Prompt for credentials on the secure desktop.( Predeterminado ) Cuando una operación requiere la elevación de privilegios, se le solicita al usuario en el escritorio seguro que ingrese un nombre de usuario y contraseña diferentes. Si el usuario ingresa credenciales válidas, la operación continúa con el privilegio aplicable
  • Prompt for credentialsCuando una operación requiere la elevación de privilegios, se le solicita al usuario que ingrese un nombre de usuario y contraseña administrativos. Si el usuario ingresa credenciales válidas, la operación continúa con el privilegio aplicable
  • Automatically deny elevation requestsCuando una operación requiere la elevación de privilegios, se muestra un mensaje de error de acceso denegado configurable. Una empresa que ejecuta escritorios como usuario estándar puede elegir esta configuración para reducir las llamadas a la mesa de ayuda

Esto es útil en una situación en la que un programa podría solicitar elevarse, pero eso requeriría que el tipo del servicio de asistencia ejecute tres edificios (para ingresar sus credenciales por encima del hombro ). Solo una vez que llegan allí, descubren que el usuario no debe ejecutar ese programa.

Queremos que la aplicación se ejecute como un usuario estándar (posiblemente obteniendo errores de acceso denegado ), ya que esa es la respuesta correcta.

Pero esa configuración se aplica a todos los programas que elevan. Es posible que

  • marcar un programa o
  • agregarlo a una lista

para que se denieguen automáticamente las solicitudes de elevación y se ejecute como usuario estándar?

El problema ocurre cuando un programa se ha equivocado:

  • marcado como requestedExecutionLevelde requireAdministratoren su manifiesto incrustado o externo
  • ha marcado la opción de compatibilidad "Ejecutar este programa tiene un administrador"
  • se detecta como un programa de instalación (por ejemplo, se nombra installo setup) a través de la EnableInstallerDetectionheurística

Nota: Suponiendo que la aplicación no tiene manifiesto, uno podría sugerir agregar un manifiesto que indique requestedExecutionLevel: asInvoker. Esta solución también deshabilitaría la virtualización de archivos y registros para la aplicación.

Ver también

Ian Boyd
fuente

Respuestas:

4

Una posible solución es utilizar dos políticas en concierto:

  1. Configure la configuración de directiva de grupo ConsentPromptBehaviorUser ya mencionada para denegar automáticamente las solicitudes de elevación . Como se indicó en la pregunta, esto afectará a todos los programas que se ejecutan.

  2. A continuación, HABILITE el Control de cuentas de usuario: solo eleve los archivos ejecutables que estén firmados y validados . (De Microsoft) Esta configuración impone controles de firma de infraestructura de clave pública (PKI) para cualquier aplicación interactiva que solicite la elevación de privilegios. Los administradores de la empresa pueden controlar qué aplicaciones pueden ejecutarse agregando certificados al almacén de certificados de Trusted Publishers en las computadoras locales.

  3. Firme todos los programas de confianza con la clave de su organización y publíquelos en el almacén de certificados de Editores de confianza en todas las computadoras de su organización. Más información.

Jeremy W
fuente
Aceptado porque casi con seguridad no hay respuesta; y estas soluciones serían lo mejor que se puede obtener.
Ian Boyd