¿Mostrar el% username% para el usuario registrado en un símbolo del sistema elevado en lugar de usuarios elevados% username%?

1

En una máquina Windows Vista Business, tengo la tarea del Programador de tareas de Windows configurada para ejecutarse cada vez que cualquier usuario inicie sesión. La tarea se ejecuta como un determinado usuario administrador elevado porque la secuencia de comandos se ejecuta desde un servidor de archivos que requiere la autenticación de ese usuario para acceder y El script en cuestión realizará operaciones que necesitan el control total de la máquina en la que se está ejecutando. El script se ejecuta a la perfección, accede a los recursos de la red y realiza tareas administrativas de manera fantástica, sin embargo, el% username% y otras variables de entorno son para usuario elevado y no el usuario que realmente ha iniciado sesión.

¿Hay alguna manera de ejecutar la tarea elevada con las variables de entorno del usuario que ha iniciado sesión actualmente? ¿O hay alguna forma de averiguar qué cuenta se ha ejecutado desde dentro del prompt elevado (si puedo averiguarlo, puedo obtener las variables de entorno para ese usuario)?

Para ayudar a aclarar mi pregunta, aquí hay un escenario y una línea de mi script. Supongamos que el usuario regular no administrador nombrado Mover inicia sesión. Task Scheduler inicia el script como usuario elevado iAmAdmin . El script ejecuta un comando:

eventcreate /t information /id 118 /l SYSTEM /so "My Script" /d "%username% logged in on %date% at %time%"

El% username% en la descripción aparece como iAmAdmin en lugar de Mover . ¿Hay alguna manera de obtener el% username% (o cualquier otra variable de entorno) para la cuenta desde la cual se inició el indicador elevado (es decir, Mover aparece para% username% en lugar de iAmAdmin ya que Mover ¿La cuenta de 's es la que está registrada?

( Nota: el uso de evento creado Solo fue un ejemplo. El script hace mucho más que eso, por lo que el problema aquí no es con evento creado , pero algunas de las operaciones requieren las variables de entorno de los usuarios registrados reales.)

Trav
fuente
¿Toda la tarea programada está configurada para ejecutarse en "Bob" o "iAmAdmin"?
grawity
iAmAdmin es la cuenta de usuario que inicia la tarea. El disparador es cuando cualquier usuario inicia sesión.
Trav
En ese caso, "¿O hay alguna manera de averiguar qué cuenta ha sido ejecutada desde dentro del prompt elevado?" no, porque no era ejecutado desde otra cuenta: en realidad se ejecuta "al costado", iniciado por el Programador de tareas en "iAmAdmin".
grawity
(Además, con respecto al ejemplo específico de eventcreate - el registro de seguridad en Windows ya realiza el mismo tipo de registro, si la auditoría de inicio de sesión está habilitada.)
grawity
Bueno, mis razones para usar evento creado es que quiero poder verificar para ver cuándo se ejecuta el script. La ID personalizada, Source, y otros me facilita el seguimiento de las cosas que suceden en el script. El mensaje de inicio de sesión fue solo un ejemplo :)
Trav