¿Hay alguna forma de crear o modificar una tarea programada para que prefiera comenzar dentro de una sesión de inicio de sesión de escritorio específica, si hay más de una sesión iniciada para el mismo usuario?
En Windows 2012 R2 (y algunas versiones anteriores también), tengo algunas tareas programadas que se ejecutan con la opción "Ejecutar solo cuando el usuario ha iniciado sesión" para que alguna aplicación proporcionada por el proveedor (que solo se iniciará en modo de escritorio interactivo) pueda funcionar una tarea semiautomática diaria. La sesión iniciada es incluso una sesión que se origina en RDP, no la sesión de la consola, y está funcionando bien.
Sería aún mejor si pudiera tener tareas programadas particulares que solo se adjuntan a una sesión de inicio de sesión de escritorio específica, como se identifica por la ID de la sesión, o tal vez incluso por el Nombre de la sesión. Una especie de ID de sesión "afinidad" o "condición". El problema aquí es que un usuario en particular se registraría simultáneamente, en tres sesiones separadas, cada una con una ID de sesión y un nombre de sesión diferentes, y no quiero que sea "aleatorio" o "más recientemente activo" la base de cómo El Programador de tareas selecciona una sesión para iniciar el proceso de acción.
No veo una opción como esta en la GUI del Programador de tareas.
A veces, la herramienta de línea de comandos schtasks expone características no expuestas en la GUI. Sin embargo, un vistazo a schtasks / create /? no parece revelar una opción que brinde esta funcionalidad. Como ilustración de lo que creo que sería una buena solución, esto es lo que creo que son los interruptores de schtasks que faltan:
/ SIA SessionID: Modo SessionID Affinity Si el usuario tiene más de una sesión simultánea de escritorio interactiva iniciada, prefiera o restrinja la Acción para ejecutar dentro de la sesión de inicio de sesión identificada por sessionID. El modo puede ser "PREFERIDO" (todavía permite que la acción se ejecute dentro de la sesión de inicio de sesión que tiene un nombre de usuario coincidente, pero no coincide con el ID de sesión) o "SÓLO" (la acción no se ejecutará a menos que la ID de la sesión coincida exactamente con el Nombre de usuario).
/ SNA SessionName: Modo Nombre de sesión Afinidad Si el usuario tiene más de una sesión de escritorio interactiva concurrente conectada, prefiera o restrinja la Acción para ejecutar dentro de la sesión de inicio de sesión identificada por sessionID. El modo es el mismo que en la opción / SIA.
Preferiría una de esas características no bastante documentadas pero que aún proporcionan las características de Microsoft para lograr esto, pero definitivamente también estoy interesado en una solución creativa o magia de PowerShell o similar.