Cómo iniciar la aplicación de administración GUI al iniciar sesión en Windows

Cómo iniciar la aplicación de administración GUI al iniciar sesión en Windows

Escribí una pequeña aplicación en C# para controlar el tiempo que mi hijo pasaba jugando en la PC.

Ahora estoy buscando una manera de ejecutar esta aplicación como administrador cuando el niño inicia sesión en su perfil. La aplicación muestra algunas advertencias en la pantalla y almacena algunas estadísticas en un archivo. Por lo tanto, no se puede ejecutar oculto/en segundo plano (es necesario mostrar mensajes en pantalla) ni ejecutar con privilegios de usuario estándar (los registros se pueden eliminar...)

Pasé horas intentando que esto funcionara a través del programador de tareas de Windows, pero no pude hacer que esta aplicación fuera visible...

Cualquier tipo de propina serámuyapreciado!

PD: Si no es posible ejecutar aplicaciones de administración GUI en el escritorio de otro usuario, tal vez alguien pueda aconsejarme dónde y cómo puedo almacenar el archivo de registro para que sea fácilmente accesible para Kido (inteligente):)

Respuesta1

La forma correcta de hacerlo es ejecutar la aplicación como un servicio o como otro usuario y luego enviar ventanas al escritorio del usuario (niño). Ver elPágina de MSDN sobre servicios interactivos; Si bien ya no se permite que los servicios se ejecuten de manera verdaderamente interactiva, aún pueden interactuar indirectamente con los usuarios, incluidos los usuarios que se ejecutan con diferentes cuentas. ElWTSSendMessageLa función se puede usar para mostrar un cuadro de mensaje en una sesión actualmente iniciada, o su proceso puede usarCreateProcessAsUser(si tiene acceso) para crear un proceso en la sesión del usuario con el que se pueda interactuar (mientras que el proceso principal aún puede crear archivos de registro que el usuario no puede eliminar, etc.).

EDITAR: No es necesario que un proceso se esté ejecutando como un servicio para utilizar esas funciones. Son útiles para los servicios, pero también para cualquier otro proceso que se ejecute (de forma no interactiva) como otro usuario.

EDITAR 2: En cuanto a los archivos de registro, estos pueden (y deben) configurarse con permisos de solo agregar para el proceso de registro. De esa manera, incluso si el programa se ejecuta con los permisos del niño, sólo podrá agregarlo al archivo (no eliminarlo, sobrescribirlo, truncarlo, etc.). Puede abrir un archivo solicitando únicamente acceso para agregar.

Por supuesto, eso no evita que el niño simplemente termine el proceso. No hay manera de preveniresosin ejecutarlo como otra cuenta, aunque un proceso de vigilancia (que se ejecuta, potencialmente, como otro usuario) podría intentar reiniciarlo inmediatamente a pedido.

información relacionada