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.)
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.)