winapi - ser - desactivar uac windows 10 cmd
Evitar el UAC pero iniciar un proceso elevado utilizando un servicio de Windows (1)
Tengo un servicio no interactivo que se ejecuta como un usuario de SISTEMA privilegiado en máquinas con Windows, y necesito que ejecute un ejecutable dado como un proceso elevado.
Logré iniciar un proceso hijo como SYSTEM, usando WTSGetActiveConsoleSessionId (), buscando un proceso de sistema y duplicando su token. Del mismo modo, puedo iniciar un proceso no elevado como usuario habitual. Pero necesito iniciar el proceso como el usuario normal, pero con privilegios elevados, para no tener que mostrar el UAC, pero el proceso se ejecuta como el usuario adecuado.
No estoy tratando de eludir el UAC, ya que el usuario ya acordó instalar el servicio. Estoy tratando de mitigar un inconveniente. Encontré una pregunta similar, sin respuesta , pero volví a preguntar con la esperanza de obtener una respuesta.
Si tiene un token filtrado para el usuario interactivo, por ejemplo, uno recuperado mediante WTSQueryUserToken () , puede recuperar el token no filtrado ("elevado") mediante la función GetTokenInformation con la opción TokenLinkedToken.